diff --git a/.branding b/.branding new file mode 100644 index 000000000..2c4bb8aab --- /dev/null +++ b/.branding @@ -0,0 +1,2 @@ +https://github.com/Keavon/graphite-branded-assets/archive/f8b02e68c92f5bbd27626bdd7a51102303b70a40.tar.gz +d06fd7b79fa9b7509c23072fa56745415fdc6eb98575d15214b0acc47ea4dd42 diff --git a/.cargo/config.toml b/.cargo/config.toml index 4087f77f9..b6ad2fee2 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -10,3 +10,6 @@ rustflags = [ "link-arg=--max-memory=4294967296", "--cfg=web_sys_unstable_apis", ] + +[env] +CARGO_WORKSPACE_DIR = { value = "", relative = true } diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6b4ee383f..bddfffaf1 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -23,7 +23,6 @@ "streetsidesoftware.code-spell-checker", // Helpful "mhutchie.git-graph", - "waderyan.gitblame", "qezhu.gitlink", "wmaurer.change-case" ] diff --git a/.github/workflows/build-dev-and-ci.yml b/.github/workflows/build-dev-and-ci.yml index 016d42cbb..365eb76fe 100644 --- a/.github/workflows/build-dev-and-ci.yml +++ b/.github/workflows/build-dev-and-ci.yml @@ -7,7 +7,7 @@ on: pull_request: {} env: CARGO_TERM_COLOR: always - INDEX_HTML_HEAD_REPLACEMENT: + INDEX_HTML_HEAD_REPLACEMENT: jobs: build: @@ -34,10 +34,10 @@ jobs: with: node-version: "latest" - - name: ๐Ÿšง Install Node dependencies + - name: ๐Ÿšง Install build dependencies run: | cd frontend - npm ci + npm run setup - name: ๐Ÿฆ€ Install the latest Rust run: | @@ -47,6 +47,11 @@ jobs: echo "Latest updated version:" rustc --version + - name: ๐Ÿฆ€ Fetch Rust dependencies + run: | + echo "If it fails here, the committed Cargo.lock may be out of date" + cargo fetch --locked + - name: โœ‚ Replace template in of index.html run: | # Remove the INDEX_HTML_HEAD_REPLACEMENT environment variable for build links (not master deploys) @@ -103,7 +108,7 @@ jobs: - name: ๐Ÿงช Run Rust tests run: | - mold -run cargo test --all-features --workspace + mold -run cargo test --all-features - name: ๐Ÿ“ƒ Generate code documentation info for website if: github.ref == 'refs/heads/master' diff --git a/.github/workflows/build-nix-package.yml b/.github/workflows/build-nix-package.yml new file mode 100644 index 000000000..2da86b2d3 --- /dev/null +++ b/.github/workflows/build-nix-package.yml @@ -0,0 +1,17 @@ +name: Build Nix Package + +on: + workflow_dispatch: {} + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@v4 + - uses: DeterminateSystems/nix-installer-action@main + - uses: DeterminateSystems/magic-nix-cache-action@main + + - name: Build Nix Package Dev + run: nix build .nix#graphite-dev --print-build-logs diff --git a/.github/workflows/build-production.yml b/.github/workflows/build-production.yml index fa58e1865..1be2e3e94 100644 --- a/.github/workflows/build-production.yml +++ b/.github/workflows/build-production.yml @@ -18,7 +18,7 @@ jobs: RUSTC_WRAPPER: /usr/bin/sccache CARGO_INCREMENTAL: 0 SCCACHE_DIR: /var/lib/github-actions/.cache - INDEX_HTML_HEAD_REPLACEMENT: + INDEX_HTML_HEAD_REPLACEMENT: steps: - name: ๐Ÿ“ฅ Clone and checkout repository @@ -32,10 +32,10 @@ jobs: with: node-version: "latest" - - name: ๐Ÿšง Install Node dependencies + - name: ๐Ÿšง Install build dependencies run: | cd frontend - npm ci + npm run setup - name: ๐Ÿฆ€ Install the latest Rust run: | diff --git a/.github/workflows/comment-!build-commands.yml b/.github/workflows/comment-!build-commands.yml index 8d8a0ae09..87b8581b1 100644 --- a/.github/workflows/comment-!build-commands.yml +++ b/.github/workflows/comment-!build-commands.yml @@ -59,10 +59,10 @@ jobs: with: node-version: "latest" - - name: ๐Ÿšง Install Node dependencies + - name: ๐Ÿšง Install build dependencies run: | cd frontend - npm ci + npm run setup - name: ๐Ÿฆ€ Install the latest Rust run: | diff --git a/.github/workflows/comment-profiling-changes.yaml b/.github/workflows/comment-profiling-changes.yaml index e51341538..76b12265a 100644 --- a/.github/workflows/comment-profiling-changes.yaml +++ b/.github/workflows/comment-profiling-changes.yaml @@ -2,6 +2,10 @@ name: Profiling Changes on: pull_request: + paths: + - 'node-graph/**' + - 'Cargo.toml' + - 'Cargo.lock' env: CARGO_TERM_COLOR: always @@ -9,6 +13,7 @@ env: jobs: profile: runs-on: ubuntu-latest + continue-on-error: true steps: - uses: actions/checkout@v4 with: @@ -33,12 +38,12 @@ jobs: uses: actions/cache@v4 with: path: ~/.cargo/bin/iai-callgrind-runner - key: ${{ runner.os }}-iai-callgrind-runner-0.12.3 + key: ${{ runner.os }}-iai-callgrind-runner-0.16.1 - name: Install iai-callgrind if: steps.cache-iai.outputs.cache-hit != 'true' run: | - cargo install iai-callgrind-runner@0.12.3 + cargo install iai-callgrind-runner@0.16.1 - name: Checkout master branch run: | @@ -49,21 +54,30 @@ jobs: id: master-sha run: echo "sha=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + - name: Get CPU info + id: cpu-info + run: | + # Get CPU model and create a short hash for cache key + CPU_MODEL=$(cat /proc/cpuinfo | grep "model name" | head -1 | cut -d: -f2 | xargs) + CPU_HASH=$(echo "$CPU_MODEL" | sha256sum | cut -c1-8) + echo "cpu-hash=$CPU_HASH" >> $GITHUB_OUTPUT + echo "CPU: $CPU_MODEL (hash: $CPU_HASH)" + - name: Cache benchmark baselines id: cache-benchmark-baselines uses: actions/cache@v4 with: path: target/iai - key: ${{ runner.os }}-benchmark-baselines-master-${{ steps.master-sha.outputs.sha }} + key: ${{ runner.os }}-${{ runner.arch }}-${{ steps.cpu-info.outputs.cpu-hash }}-benchmark-baselines-master-${{ steps.master-sha.outputs.sha }} restore-keys: | - ${{ runner.os }}-benchmark-baselines-master- + ${{ runner.os }}-${{ runner.arch }}-${{ steps.cpu-info.outputs.cpu-hash }}-benchmark-baselines-master- - name: Run baseline benchmarks if: steps.cache-benchmark-baselines.outputs.cache-hit != 'true' run: | # Compile benchmarks cargo bench --bench compile_demo_art_iai -- --save-baseline=master - + # Runtime benchmarks cargo bench --bench update_executor_iai -- --save-baseline=master cargo bench --bench run_once_iai -- --save-baseline=master @@ -74,34 +88,18 @@ jobs: git checkout ${{ github.event.pull_request.head.sha }} - name: Run PR benchmarks - id: benchmark run: | # Compile benchmarks - COMPILE_OUTPUT=$(cargo bench --bench compile_demo_art_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g') - - # Runtime benchmarks - UPDATE_OUTPUT=$(cargo bench --bench update_executor_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g') - RUN_ONCE_OUTPUT=$(cargo bench --bench run_once_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g') - RUN_CACHED_OUTPUT=$(cargo bench --bench run_cached_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g') - - # Store outputs - echo "COMPILE_OUTPUT<> $GITHUB_OUTPUT - echo "$COMPILE_OUTPUT" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - echo "UPDATE_OUTPUT<> $GITHUB_OUTPUT - echo "$UPDATE_OUTPUT" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - echo "RUN_ONCE_OUTPUT<> $GITHUB_OUTPUT - echo "$RUN_ONCE_OUTPUT" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT - - echo "RUN_CACHED_OUTPUT<> $GITHUB_OUTPUT - echo "$RUN_CACHED_OUTPUT" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT + cargo bench --bench compile_demo_art_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/compile_output.json + + # Runtime benchmarks + cargo bench --bench update_executor_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/update_output.json + cargo bench --bench run_once_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/run_once_output.json + cargo bench --bench run_cached_iai -- --baseline=master --output-format=json | jq -sc | sed 's/\\"//g' > /tmp/run_cached_output.json - name: Make old comments collapsed by default + # Only run if we have write permissions (not a fork) + if: github.event.pull_request.head.repo.full_name == github.repository uses: actions/github-script@v7 with: github-token: ${{secrets.GITHUB_TOKEN}} @@ -126,17 +124,79 @@ jobs: }); } + - name: Analyze profiling changes + id: analyze + uses: actions/github-script@v7 + with: + script: | + const fs = require('fs'); + + function isSignificantChange(diffPct, absoluteChange, benchmarkType) { + const meetsPercentageThreshold = Math.abs(diffPct) > 5; + const meetsAbsoluteThreshold = absoluteChange > 200000; + const isCachedExecution = benchmarkType === 'run_cached' || + benchmarkType.includes('Cached Execution'); + + return isCachedExecution + ? (meetsPercentageThreshold && meetsAbsoluteThreshold) + : meetsPercentageThreshold; + } + + const allOutputs = [ + JSON.parse(fs.readFileSync('/tmp/compile_output.json', 'utf8')), + JSON.parse(fs.readFileSync('/tmp/update_output.json', 'utf8')), + JSON.parse(fs.readFileSync('/tmp/run_once_output.json', 'utf8')), + JSON.parse(fs.readFileSync('/tmp/run_cached_output.json', 'utf8')) + ]; + const outputNames = ['compile', 'update', 'run_once', 'run_cached']; + const sectionTitles = ['Compilation', 'Update', 'Run Once', 'Cached Execution']; + + let hasSignificantChanges = false; + let regressionDetails = []; + + for (let i = 0; i < allOutputs.length; i++) { + const benchmarkOutput = allOutputs[i]; + const outputName = outputNames[i]; + const sectionTitle = sectionTitles[i]; + + for (const benchmark of benchmarkOutput) { + if (benchmark.profiles?.[0]?.summaries?.parts?.[0]?.metrics_summary?.Callgrind?.Ir?.diffs?.diff_pct) { + const diffPct = parseFloat(benchmark.profiles[0].summaries.parts[0].metrics_summary.Callgrind.Ir.diffs.diff_pct); + const oldValue = benchmark.profiles[0].summaries.parts[0].metrics_summary.Callgrind.Ir.metrics.Both[1].Int; + const newValue = benchmark.profiles[0].summaries.parts[0].metrics_summary.Callgrind.Ir.metrics.Both[0].Int; + const absoluteChange = Math.abs(newValue - oldValue); + + if (isSignificantChange(diffPct, absoluteChange, outputName)) { + hasSignificantChanges = true; + regressionDetails.push({ + module_path: benchmark.module_path, + id: benchmark.id, + diffPct, + absoluteChange, + sectionTitle + }); + } + } + } + } + + core.setOutput('has-significant-changes', hasSignificantChanges); + core.setOutput('regression-details', JSON.stringify(regressionDetails)); + - name: Comment PR + if: github.event.pull_request.head.repo.full_name == github.repository uses: actions/github-script@v7 with: github-token: ${{secrets.GITHUB_TOKEN}} script: | - const compileOutput = JSON.parse(`${{ steps.benchmark.outputs.COMPILE_OUTPUT }}`); - const updateOutput = JSON.parse(`${{ steps.benchmark.outputs.UPDATE_OUTPUT }}`); - const runOnceOutput = JSON.parse(`${{ steps.benchmark.outputs.RUN_ONCE_OUTPUT }}`); - const runCachedOutput = JSON.parse(`${{ steps.benchmark.outputs.RUN_CACHED_OUTPUT }}`); - - let significantChanges = false; + const fs = require('fs'); + + const compileOutput = JSON.parse(fs.readFileSync('/tmp/compile_output.json', 'utf8')); + const updateOutput = JSON.parse(fs.readFileSync('/tmp/update_output.json', 'utf8')); + const runOnceOutput = JSON.parse(fs.readFileSync('/tmp/run_once_output.json', 'utf8')); + const runCachedOutput = JSON.parse(fs.readFileSync('/tmp/run_cached_output.json', 'utf8')); + + const hasSignificantChanges = '${{ steps.analyze.outputs.has-significant-changes }}' === 'true'; let commentBody = ""; function formatNumber(num) { @@ -160,13 +220,31 @@ jobs: let sectionBody = ""; let hasResults = false; let hasSignificantChanges = false; + + function isSignificantChange(diffPct, absoluteChange, benchmarkType) { + const meetsPercentageThreshold = Math.abs(diffPct) > 5; + const meetsAbsoluteThreshold = absoluteChange > 200000; + const isCachedExecution = benchmarkType === 'run_cached' || + benchmarkType.includes('Cached Execution'); + + return isCachedExecution + ? (meetsPercentageThreshold && meetsAbsoluteThreshold) + : meetsPercentageThreshold; + } for (const benchmark of benchmarkOutput) { - if (benchmark.callgrind_summary && benchmark.callgrind_summary.summaries) { - const summary = benchmark.callgrind_summary.summaries[0]; - const irDiff = summary.events.Ir; - - if (irDiff.diff_pct !== null) { + if (benchmark.profiles && benchmark.profiles.length > 0) { + const profile = benchmark.profiles[0]; + if (profile.summaries && profile.summaries.parts && profile.summaries.parts.length > 0) { + const part = profile.summaries.parts[0]; + if (part.metrics_summary && part.metrics_summary.Callgrind && part.metrics_summary.Callgrind.Ir) { + const irData = part.metrics_summary.Callgrind.Ir; + if (irData.diffs && irData.diffs.diff_pct !== null) { + const irDiff = { + diff_pct: parseFloat(irData.diffs.diff_pct), + old: irData.metrics.Both[1].Int, + new: irData.metrics.Both[0].Int + }; hasResults = true; const changePercentage = formatPercentage(irDiff.diff_pct); const color = irDiff.diff_pct > 0 ? "red" : "lime"; @@ -178,19 +256,23 @@ jobs: sectionBody += "
\nDetailed metrics\n\n```\n"; sectionBody += `Baselines: master| HEAD\n`; - for (const [eventKind, costsDiff] of Object.entries(summary.events)) { - if (costsDiff.diff_pct !== null) { - const changePercentage = formatPercentage(costsDiff.diff_pct); - const line = `${padRight(eventKind, 20)} ${padLeft(formatNumber(costsDiff.old), 11)}|${padLeft(formatNumber(costsDiff.new), 11)} ${padLeft(changePercentage, 15)}`; + for (const [metricName, metricData] of Object.entries(part.metrics_summary.Callgrind)) { + if (metricData.diffs && metricData.diffs.diff_pct !== null) { + const changePercentage = formatPercentage(parseFloat(metricData.diffs.diff_pct)); + const oldValue = metricData.metrics.Both[1].Int || metricData.metrics.Both[1].Float; + const newValue = metricData.metrics.Both[0].Int || metricData.metrics.Both[0].Float; + const line = `${padRight(metricName, 20)} ${padLeft(formatNumber(Math.round(oldValue)), 11)}|${padLeft(formatNumber(Math.round(newValue)), 11)} ${padLeft(changePercentage, 15)}`; sectionBody += `${line}\n`; } } sectionBody += "```\n
\n\n"; - - if (Math.abs(irDiff.diff_pct) > 5) { - significantChanges = true; - hasSignificantChanges = true; + + if (isSignificantChange(irDiff.diff_pct, Math.abs(irDiff.new - irDiff.old), sectionTitle)) { + significantChanges = true; + hasSignificantChanges = true; + } + } } } } @@ -236,7 +318,7 @@ jobs: if (commentBody.length > 0) { const output = `
\nPerformance Benchmark Results\n\n${commentBody}\n
`; - if (significantChanges) { + if (hasSignificantChanges) { github.rest.issues.createComment({ issue_number: context.issue.number, owner: context.repo.owner, @@ -250,3 +332,13 @@ jobs: } else { console.log("No benchmark results to display."); } + + - name: Fail on significant regressions + if: steps.analyze.outputs.has-significant-changes == 'true' + uses: actions/github-script@v7 + with: + script: | + const regressionDetails = JSON.parse('${{ steps.analyze.outputs.regression-details }}'); + const firstRegression = regressionDetails[0]; + + core.setFailed(`Significant performance regression detected: ${firstRegression.module_path} ${firstRegression.id} increased by ${firstRegression.absoluteChange.toLocaleString()} instructions (${firstRegression.diffPct.toFixed(2)}%)`); diff --git a/.github/workflows/library-rawkit.yml b/.github/workflows/library-rawkit.yml index b7b4bb315..569d59650 100644 --- a/.github/workflows/library-rawkit.yml +++ b/.github/workflows/library-rawkit.yml @@ -38,6 +38,13 @@ jobs: - name: ๐Ÿ“ฆ Run sccache-cache uses: mozilla-actions/sccache-action@v0.0.6 + continue-on-error: true + + - name: ๐Ÿ”ง Fallback if sccache fails + if: failure() + run: | + echo "sccache failed, disabling it" + echo "RUSTC_WRAPPER=" >> $GITHUB_ENV - name: ๐Ÿ”ฌ Check Rust formatting run: | @@ -56,4 +63,4 @@ jobs: - name: ๐Ÿ“ˆ Run sccache stat for check shell: bash - run: sccache --show-stats + run: sccache --show-stats || echo "sccache stats unavailable" diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index 5e5c27ffb..9cd800857 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -12,7 +12,7 @@ on: workflow_dispatch: {} env: CARGO_TERM_COLOR: always - INDEX_HTML_HEAD_INCLUSION: + INDEX_HTML_HEAD_INCLUSION: jobs: build: @@ -26,6 +26,14 @@ jobs: - name: ๐Ÿ“ฅ Clone and checkout repository uses: actions/checkout@v3 + # We can remove this step once `ubuntu-latest` has Node.js 22 or newer for its native TypeScript support. See: + # https://github.com/actions/runner-images?tab=readme-ov-file#available-images + # https://nodejs.org/en/learn/typescript/run-natively + - name: ๐Ÿ“ฆ Install the latest Node.js + uses: actions/setup-node@v4 + with: + node-version: "latest" + - name: ๐Ÿ•ธ Install Zola uses: taiki-e/install-action@v2 with: @@ -63,55 +71,24 @@ jobs: mkdir artifacts mv hierarchical_message_system_tree.txt artifacts/hierarchical_message_system_tree.txt - - name: ๐Ÿšš Move `artifacts` contents to `website/other/editor-structure` + - name: ๐Ÿšš Move `artifacts` contents to the project root run: | - mv artifacts/* website/other/editor-structure + mv artifacts/* . - name: ๐Ÿ”ง Build auto-generated code docs artifacts into HTML run: | - cd website/other/editor-structure - node generate.js hierarchical_message_system_tree.txt replacement.html + cd website + npm run generate-editor-structure - name: ๐ŸŒ Build Graphite website with Zola env: MODE: prod run: | cd website - npm run install-fonts + npm ci + npm run lint zola --config config.toml build --minify - - name: ๐Ÿ’ฟ Restore cache of `website/other/dist` directory, if available and `website/other` didn't change - if: steps.changes.outputs.website-other != 'true' - id: cache-website-other-dist - uses: actions/cache/restore@v3 - with: - path: website/other/dist - key: website-other-dist-${{ runner.os }} - - - name: ๐ŸŸข Set up Node only if we are going to build in the next step - if: steps.cache-website-other-dist.outputs.cache-hit != 'true' - uses: actions/setup-node@v4 - with: - node-version: "latest" - - - name: ๐Ÿ“ Build `website/other` directory only if changed or not cached - if: steps.cache-website-other-dist.outputs.cache-hit != 'true' - id: build-website-other - run: | - sh website/other/build.sh - - - name: ๐Ÿ’พ Save cache of `website/other/dist` directory if it was built above - if: steps.cache-website-other-dist.outputs.cache-hit != 'true' - uses: actions/cache/save@v3 - with: - path: website/other/dist - key: ${{ steps.cache-website-other-dist.outputs.cache-primary-key }} - - - name: ๐Ÿšš Move `website/other/dist` contents to `website/public` - run: | - mkdir -p website/public - mv website/other/dist/* website/public - - name: ๐Ÿ“ค Publish to Cloudflare Pages id: cloudflare uses: cloudflare/pages-action@1 diff --git a/.gitignore b/.gitignore index 3fa518041..f410829a7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ +branding/ target/ +result/ *.spv *.exrc perf.data* @@ -7,4 +9,6 @@ profile.json.gz flamegraph.svg .idea/ .direnv +.DS_Store hierarchical_message_system_tree.txt +hierarchical_message_system_tree.html diff --git a/.nix/deps/cef.nix b/.nix/deps/cef.nix new file mode 100644 index 000000000..f31219be5 --- /dev/null +++ b/.nix/deps/cef.nix @@ -0,0 +1,26 @@ +{ pkgs, inputs, ... }: + +let + cef = pkgs.cef-binary.overrideAttrs (_: _: { + postInstall = '' + strip $out/Release/*.so* + ''; + }); + + cefPath = pkgs.runCommand "cef-path" {} '' + mkdir -p $out + + ln -s ${cef}/include $out/include + find ${cef}/Release -name "*" -type f -exec ln -s {} $out/ \; + find ${cef}/Resources -name "*" -maxdepth 1 -exec ln -s {} $out/ \; + + echo '${builtins.toJSON { + type = "minimal"; + name = builtins.baseNameOf cef.src.url; + sha1 = ""; + }}' > $out/archive.json + ''; +in +{ + env.CEF_PATH = cefPath; +} diff --git a/.nix/deps/crane.nix b/.nix/deps/crane.nix new file mode 100644 index 000000000..368827082 --- /dev/null +++ b/.nix/deps/crane.nix @@ -0,0 +1,5 @@ +{ pkgs, inputs, ... }: + +{ + lib = inputs.crane.mkLib pkgs; +} diff --git a/.nix/deps/rust-gpu.nix b/.nix/deps/rust-gpu.nix new file mode 100644 index 000000000..2970d515a --- /dev/null +++ b/.nix/deps/rust-gpu.nix @@ -0,0 +1,58 @@ +{ pkgs, inputs, ... }: + +let + extensions = [ + "rust-src" + "rust-analyzer" + "clippy" + "cargo" + "rustc-dev" + "llvm-tools" + ]; + toolchain = pkgs.rust-bin.nightly."2025-06-23".default.override { + inherit extensions; + }; + cargo = pkgs.writeShellScriptBin "cargo" '' + #!${pkgs.lib.getExe pkgs.bash} + + filtered_args=() + for arg in "$@"; do + case "$arg" in + +nightly|+nightly-*) ;; + *) filtered_args+=("$arg") ;; + esac + done + + exec ${toolchain}/bin/cargo ${"\${filtered_args[@]}"} + ''; + rustc_codegen_spirv = + (pkgs.makeRustPlatform { + cargo = toolchain; + rustc = toolchain; + }).buildRustPackage + (finalAttrs: { + pname = "rustc_codegen_spirv"; + version = "0-unstable-2025-08-04"; + src = pkgs.fetchFromGitHub { + owner = "Firestar99"; + repo = "rust-gpu-new"; + rev = "c12f216121820580731440ee79ebc7403d6ea04f"; + hash = "sha256-rG1cZvOV0vYb1dETOzzbJ0asYdE039UZImobXZfKIno="; + }; + cargoHash = "sha256-AEigcEc5wiBd3zLqWN/2HSbkfOVFneAqNvg9HsouZf4="; + cargoBuildFlags = [ + "-p" + "rustc_codegen_spirv" + "--features=use-compiled-tools" + "--no-default-features" + ]; + doCheck = false; + }); +in +{ + toolchain = toolchain; + env = { + RUST_GPU_PATH_OVERRIDE = "${cargo}/bin:${toolchain}/bin"; + RUSTC_CODEGEN_SPIRV_PATH = "${rustc_codegen_spirv}/lib/librustc_codegen_spirv.so"; + }; +} diff --git a/.nix/dev.nix b/.nix/dev.nix new file mode 100644 index 000000000..d80d7793e --- /dev/null +++ b/.nix/dev.nix @@ -0,0 +1,22 @@ +{ + pkgs, + deps, + libs, + tools, + ... +}: + +pkgs.mkShell ( + { + packages = tools.all ++ libs.all; + + LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath libs.all}:${deps.cef.env.CEF_PATH}"; + XDG_DATA_DIRS = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:$XDG_DATA_DIRS"; + + shellHook = '' + alias cargo='mold --run cargo' + ''; + } + // deps.cef.env + // deps.rustGPU.env +) diff --git a/.nix/flake.lock b/.nix/flake.lock index dc9b85378..2d6d42777 100644 --- a/.nix/flake.lock +++ b/.nix/flake.lock @@ -1,5 +1,20 @@ { "nodes": { + "crane": { + "locked": { + "lastModified": 1763938834, + "narHash": "sha256-j8iB0Yr4zAvQLueCZ5abxfk6fnG/SJ5JnGUziETjwfg=", + "owner": "ipetkov", + "repo": "crane", + "rev": "d9e753122e51cee64eb8d2dddfe11148f339f5a2", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "flake-compat": { "locked": { "lastModified": 1733328505, @@ -34,11 +49,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1754214453, - "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=", + "lastModified": 1764242076, + "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376", + "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4", "type": "github" }, "original": { @@ -50,6 +65,7 @@ }, "root": { "inputs": { + "crane": "crane", "flake-compat": "flake-compat", "flake-utils": "flake-utils", "nixpkgs": "nixpkgs", @@ -63,11 +79,11 @@ ] }, "locked": { - "lastModified": 1753238793, - "narHash": "sha256-jmQeEpgX+++MEgrcikcwoSiI7vDZWLP0gci7XiWb9uQ=", + "lastModified": 1764297505, + "narHash": "sha256-qrLpVu2/hA9Cu6IovMEsgh9YRyvmmWS+bSx7C1JGChA=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "0ad7ab4ca8e83febf147197e65c006dff60623ab", + "rev": "9623580f8ce09ec444b9aca107566ec5db110e62", "type": "github" }, "original": { diff --git a/.nix/flake.nix b/.nix/flake.nix index d8fb88ed5..83f8c448b 100644 --- a/.nix/flake.nix +++ b/.nix/flake.nix @@ -12,8 +12,6 @@ # - Development shell: `nix develop .nix` from the project root # - Run in dev shell with direnv: add `use flake` to .envrc { - description = "Development environment and build configuration"; - inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; rust-overlay = { @@ -21,102 +19,141 @@ inputs.nixpkgs.follows = "nixpkgs"; }; flake-utils.url = "github:numtide/flake-utils"; + crane.url = "github:ipetkov/crane"; # This is used to provide a identical development shell at `shell.nix` for users that do not use flakes flake-compat.url = "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"; }; - outputs = { nixpkgs, rust-overlay, flake-utils, ... }: - flake-utils.lib.eachDefaultSystem (system: + outputs = + inputs: + inputs.flake-utils.lib.eachDefaultSystem ( + system: let - overlays = [ (import rust-overlay) ]; - pkgs = import nixpkgs { - inherit system overlays; - }; - - rustc-wasm = pkgs.rust-bin.stable.latest.default.override { - targets = [ "wasm32-unknown-unknown" ]; - extensions = [ "rust-src" "rust-analyzer" "clippy" "cargo" ]; + info = { + pname = "graphite"; + version = "unstable"; + src = ./..; }; - libcef = pkgs.libcef.overrideAttrs (finalAttrs: previousAttrs: { - version = "138.0.26"; - gitRevision = "84f2d27"; - chromiumVersion = "138.0.7204.158"; - srcHash = "sha256-d9jQJX7rgdoHfROD3zmOdMSesRdKE3slB5ZV+U2wlbQ="; + pkgs = import inputs.nixpkgs { + inherit system; + overlays = [ (import inputs.rust-overlay) ]; + }; - __intentionallyOverridingVersion = true; + deps = { + crane = import ./deps/crane.nix { inherit pkgs inputs; }; + cef = import ./deps/cef.nix { inherit pkgs inputs; }; + rustGPU = import ./deps/rust-gpu.nix { inherit pkgs inputs; }; + }; - postInstall = '' - strip $out/lib/* - ''; - }); + libs = rec { + desktop = [ + pkgs.wayland + pkgs.openssl + pkgs.vulkan-loader + pkgs.libraw + pkgs.libGL + ]; + desktop-x11 = [ + pkgs.libxkbcommon + pkgs.xorg.libXcursor + pkgs.xorg.libxcb + pkgs.xorg.libX11 + ]; + desktop-all = desktop ++ desktop-x11; + all = desktop-all; + }; - libcefPath = pkgs.runCommand "libcef-path" {} '' - mkdir -p $out + tools = rec { + desktop = [ + pkgs.pkg-config + ]; + frontend = [ + pkgs.lld + pkgs.nodejs + pkgs.nodePackages.npm + pkgs.binaryen + pkgs.wasm-bindgen-cli_0_2_100 + pkgs.wasm-pack + pkgs.cargo-about + ]; + dev = [ + pkgs.rustc + pkgs.cargo + pkgs.rust-analyzer + pkgs.clippy + pkgs.rustfmt - ln -s ${libcef}/include $out/include - find ${libcef}/lib -type f -name "*" -exec ln -s {} $out/ \; - find ${libcef}/libexec -type f -name "*" -exec ln -s {} $out/ \; - cp -r ${libcef}/share/cef/* $out/ + pkgs.git - echo '${builtins.toJSON { - type = "minimal"; - name = builtins.baseNameOf libcef.src.url; - sha1 = ""; - }}' > $out/archive.json - ''; + pkgs.cargo-watch + pkgs.cargo-nextest + pkgs.cargo-expand - # Shared build inputs - system libraries that need to be in LD_LIBRARY_PATH - buildInputs = with pkgs; [ - # System libraries - wayland - openssl - vulkan-loader - libraw - libGL - ]; + # Linker + pkgs.mold - # Development tools that don't need to be in LD_LIBRARY_PATH - buildTools = [ - rustc-wasm - pkgs.nodejs - pkgs.nodePackages.npm - pkgs.binaryen - pkgs.wasm-bindgen-cli - pkgs.wasm-pack - pkgs.pkg-config - pkgs.git - pkgs.cargo-about + # Profiling tools + pkgs.gnuplot + pkgs.samply + pkgs.cargo-flamegraph - # Linker - pkgs.mold - ]; - # Development tools that don't need to be in LD_LIBRARY_PATH - devTools = with pkgs; [ - cargo-watch - cargo-nextest - cargo-expand - - # Profiling tools - gnuplot - samply - cargo-flamegraph - ]; + # Plotting tools + pkgs.graphviz + ]; + all = desktop ++ frontend ++ dev; + }; in { - # Development shell configuration - devShells.default = pkgs.mkShell { - packages = buildInputs ++ buildTools ++ devTools; + packages = rec { + graphiteWithArgs = + args: + (import ./pkgs/graphite.nix { + pkgs = pkgs // { + inherit raster-nodes-shaders; + }; + inherit + info + inputs + deps + libs + tools + ; + }) + args; + graphite = graphiteWithArgs { }; + graphite-dev = graphiteWithArgs { dev = true; }; + graphite-without-resources = graphiteWithArgs { embeddedResources = false; }; + graphite-without-resources-dev = graphiteWithArgs { + embeddedResources = false; + dev = true; + }; + #TODO: graphene-cli = import ./pkgs/graphene-cli.nix { inherit info pkgs inputs deps libs tools; }; + raster-nodes-shaders = import ./pkgs/raster-nodes-shaders.nix { + inherit + info + pkgs + inputs + deps + libs + tools + ; + }; - LD_LIBRARY_PATH = "${pkgs.lib.makeLibraryPath buildInputs}:${libcefPath}"; - CEF_PATH = libcefPath; - XDG_DATA_DIRS="${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}:${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}:$XDG_DATA_DIRS"; - - shellHook = '' - alias cargo='mold --run cargo' - ''; + default = graphite; }; + + devShells.default = import ./dev.nix { + inherit + pkgs + deps + libs + tools + ; + }; + + formatter = pkgs.nixfmt-tree; } ); } diff --git a/.nix/pkgs/graphite.nix b/.nix/pkgs/graphite.nix new file mode 100644 index 000000000..31fd50725 --- /dev/null +++ b/.nix/pkgs/graphite.nix @@ -0,0 +1,136 @@ +{ + info, + pkgs, + inputs, + deps, + libs, + tools, + ... +}: + +{ + embeddedResources ? true, + dev ? false, +}: + +let + brandingTar = pkgs.fetchurl ( + let + lockContent = builtins.readFile "${info.src}/.branding"; + lines = builtins.filter (s: s != [ ]) (builtins.split "\n" lockContent); + url = builtins.elemAt lines 0; + hash = builtins.elemAt lines 1; + in + { + url = url; + sha256 = hash; + } + ); + branding = pkgs.runCommand "${info.pname}-branding" { } '' + mkdir -p $out + tar -xvf ${brandingTar} -C $out --strip-components 1 + ''; + resourcesCommon = { + pname = "${info.pname}-resources"; + inherit (info) version src; + strictDeps = true; + doCheck = false; + nativeBuildInputs = tools.frontend; + env.CARGO_PROFILE = if dev then "dev" else "release"; + cargoExtraArgs = "--target wasm32-unknown-unknown -p graphite-wasm --no-default-features --features native"; + }; + resources = deps.crane.lib.buildPackage ( + resourcesCommon + // { + cargoArtifacts = deps.crane.lib.buildDepsOnly resourcesCommon; + + # TODO: Remove the need for this hash by using individual package resolutions and hashes from package-lock.json + npmDeps = pkgs.fetchNpmDeps { + inherit (info) pname version; + src = "${info.src}/frontend"; + hash = "sha256-D8VCNK+Ca3gxO+5wriBn8FszG8/x8n/zM6/MPo9E2j4="; + }; + + npmRoot = "frontend"; + npmConfigScript = "setup"; + makeCacheWritable = true; + + nativeBuildInputs = tools.frontend ++ [ pkgs.npmHooks.npmConfigHook ]; + + prePatch = '' + mkdir branding + cp -r ${branding}/* branding + cp ${info.src}/.branding branding/.branding + ''; + + buildPhase = '' + export HOME="$TMPDIR" + + pushd frontend + npm run native:build-${if dev then "dev" else "production"} + popd + ''; + + installPhase = '' + mkdir -p $out + cp -r frontend/dist/* $out/ + ''; + } + ); + common = { + inherit (info) pname version src; + strictDeps = true; + buildInputs = libs.desktop-all; + nativeBuildInputs = tools.desktop ++ [ pkgs.makeWrapper ]; + env = deps.cef.env // { + CARGO_PROFILE = if dev then "dev" else "release"; + }; + cargoExtraArgs = "-p graphite-desktop${ + if embeddedResources then "" else " --no-default-features --features recommended" + }"; + doCheck = false; + }; +in + +deps.crane.lib.buildPackage ( + common + // { + cargoArtifacts = deps.crane.lib.buildDepsOnly common; + + env = + common.env + // { + RASTER_NODES_SHADER_PATH = pkgs.raster-nodes-shaders; + } + // ( + if embeddedResources then + { + EMBEDDED_RESOURCES = resources; + } + else + { } + ); + + postUnpack = '' + mkdir ./branding + cp -r ${branding}/* ./branding + ''; + + installPhase = '' + mkdir -p $out/bin + cp target/${if dev then "debug" else "release"}/graphite $out/bin/graphite + + mkdir -p $out/share/applications + cp $src/desktop/assets/*.desktop $out/share/applications/ + + mkdir -p $out/share/icons/hicolor/scalable/apps + cp ${branding}/app-icons/graphite.svg $out/share/icons/hicolor/scalable/apps/ + ''; + + postFixup = '' + wrapProgram "$out/bin/graphite" \ + --prefix LD_LIBRARY_PATH : "${pkgs.lib.makeLibraryPath libs.desktop-all}:${deps.cef.env.CEF_PATH}" \ + --set CEF_PATH "${deps.cef.env.CEF_PATH}" + ''; + } +) diff --git a/.nix/pkgs/raster-nodes-shaders.nix b/.nix/pkgs/raster-nodes-shaders.nix new file mode 100644 index 000000000..46e2f90a2 --- /dev/null +++ b/.nix/pkgs/raster-nodes-shaders.nix @@ -0,0 +1,36 @@ +{ + info, + pkgs, + inputs, + deps, + libs, + tools, + ... +}: + +(deps.crane.lib.overrideToolchain (_: deps.rustGPU.toolchain)).buildPackage { + pname = "raster-nodes-shaders"; + inherit (info) version src; + + cargoVendorDir = deps.crane.lib.vendorMultipleCargoDeps { + inherit (deps.crane.lib.findCargoFiles (deps.crane.lib.cleanCargoSource info.src)) cargoConfigs; + cargoLockList = [ + "${info.src}/Cargo.lock" + "${deps.rustGPU.toolchain.passthru.availableComponents.rust-src}/lib/rustlib/src/rust/library/Cargo.lock" + ]; + }; + + strictDeps = true; + + env = deps.rustGPU.env; + + buildPhase = '' + cargo build -r -p raster-nodes-shaders + ''; + + installPhase = '' + cp target/spirv-builder/spirv-unknown-naga-wgsl/release/deps/raster_nodes_shaders_entrypoint.wgsl $out + ''; + + doCheck = false; +} diff --git a/.nix/shell.nix b/.nix/shell.nix index 17dae9531..5b13af2e2 100644 --- a/.nix/shell.nix +++ b/.nix/shell.nix @@ -16,16 +16,13 @@ # > nix-shell .nix --command "npm start" # Uses flake compat to provide a development shell that is identical to the one defined in the flake -(import - ( - let - lock = builtins.fromJSON (builtins.readFile ./flake.lock); - nodeName = lock.nodes.root.inputs.flake-compat; - in - fetchTarball { - url = lock.nodes.${nodeName}.locked.url; - sha256 = lock.nodes.${nodeName}.locked.narHash; - } - ) - { src = ./.; } -).shellNix +(import ( + let + lock = builtins.fromJSON (builtins.readFile ./flake.lock); + nodeName = lock.nodes.root.inputs.flake-compat; + in + fetchTarball { + url = lock.nodes.${nodeName}.locked.url; + sha256 = lock.nodes.${nodeName}.locked.narHash; + } +) { src = ./.; }).shellNix diff --git a/.vscode/extensions.json b/.vscode/extensions.json index e37a0efd1..25148f729 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -13,7 +13,6 @@ "streetsidesoftware.code-spell-checker", // Helpful "mhutchie.git-graph", - "waderyan.gitblame", "qezhu.gitlink", "wmaurer.change-case" ] diff --git a/.vscode/settings.json b/.vscode/settings.json index 7f48a1c56..a9ae60798 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -33,18 +33,21 @@ }, // Rust Analyzer config "rust-analyzer.cargo.allTargets": false, + "rust-analyzer.procMacro.ignored": { + "serde_derive": ["Serialize", "Deserialize"], + "specta_macros": ["Type"] // Disabled because of: https://github.com/specta-rs/specta/issues/387 + }, // ESLint config "eslint.format.enable": true, - "eslint.workingDirectories": ["./frontend", "./website/other/bezier-rs-demos", "./website"], + "eslint.workingDirectories": ["./frontend", "./website"], "eslint.validate": ["javascript", "typescript", "svelte"], // Svelte config "svelte.plugin.svelte.compilerWarnings": { - // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts` - "css-unused-selector": "ignore", - "vite-plugin-svelte-css-no-scopable-elements": "ignore", - "a11y-no-static-element-interactions": "ignore", - "a11y-no-noninteractive-element-interactions": "ignore", - "a11y-click-events-have-key-events": "ignore" + "css-unused-selector": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts` + "vite-plugin-svelte-css-no-scopable-elements": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts` + "a11y-no-static-element-interactions": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts` + "a11y-no-noninteractive-element-interactions": "ignore", // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts` + "a11y-click-events-have-key-events": "ignore" // NOTICE: Keep this list in sync with the list in `frontend/vite.config.ts` }, // VS Code config "html.format.wrapLineLength": 200, diff --git a/Cargo.lock b/Cargo.lock index b9a131eba..24637bbd8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,9 +10,9 @@ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" [[package]] name = "ab_glyph" -version = "0.2.30" +version = "0.2.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0f4f6fbdc5ee39f2ede9f5f3ec79477271a6d6a2baff22310d51736bda6cea" +checksum = "e074464580a518d16a7126262fffaaa47af89d4099d4cb403f8ed938ba12ee7d" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -20,9 +20,9 @@ dependencies = [ [[package]] name = "ab_glyph_rasterizer" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2187590a23ab1e3df8681afdf0987c48504d80291f002fcdb651f0ef5e25169" +checksum = "366ffbaa4442f4684d91e2cd7c5ea7c4ed8add41959a31447066e279e432b618" [[package]] name = "addr2line" @@ -83,7 +83,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046" dependencies = [ "android-properties", - "bitflags 2.9.1", + "bitflags 2.9.3", "cc", "cesu8", "jni", @@ -92,7 +92,7 @@ dependencies = [ "log", "ndk", "ndk-context", - "ndk-sys 0.6.0+11769913", + "ndk-sys", "num_enum", "thiserror 1.0.69", ] @@ -126,9 +126,9 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstream" -version = "0.6.19" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301af1932e46185686725e0fad2f8f2aa7da69dd70bf6ecc44d6b703844a3933" +checksum = "3ae563653d1938f79b1ab1b5e668c87c76a9930414574a6583a7b7e11a8e6192" dependencies = [ "anstyle", "anstyle-parse", @@ -156,35 +156,35 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" +checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.9" +version = "3.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" +checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "anyhow" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" +checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100" [[package]] name = "arbitrary" -version = "1.4.1" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dde20b3d026af13f561bdd0f15edf01fc734f0dafcedbaf42bba506a9517f223" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" [[package]] name = "arg_enum_proc_macro" @@ -194,7 +194,7 @@ checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -221,7 +221,7 @@ version = "0.38.0+1.3.281" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0bb44936d800fea8f016d7f2311c6a4f97aebd5dc86f09906139ec848cf3a46f" dependencies = [ - "libloading", + "libloading 0.8.8", ] [[package]] @@ -235,7 +235,7 @@ dependencies = [ "enumflags2", "futures-channel", "futures-util", - "rand 0.9.1", + "rand 0.9.2", "raw-window-handle", "serde", "serde_repr", @@ -272,9 +272,9 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.2" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb812ffb58524bdd10860d7d974e2f01cc0950c2438a74ee5ec2e2280c6c4ffa" +checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" dependencies = [ "async-task", "concurrent-queue", @@ -308,16 +308,16 @@ dependencies = [ "futures-lite", "parking", "polling", - "rustix 1.0.7", + "rustix", "slab", "windows-sys 0.60.2", ] [[package]] name = "async-lock" -version = "3.4.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" +checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" dependencies = [ "event-listener", "event-listener-strategy", @@ -350,7 +350,7 @@ dependencies = [ "cfg-if", "event-listener", "futures-lite", - "rustix 1.0.7", + "rustix", ] [[package]] @@ -361,7 +361,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -376,7 +376,7 @@ dependencies = [ "cfg-if", "futures-core", "futures-io", - "rustix 1.0.7", + "rustix", "signal-hook-registry", "slab", "windows-sys 0.60.2", @@ -390,13 +390,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.88" +version = "0.1.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -427,9 +427,9 @@ dependencies = [ [[package]] name = "avif-serialize" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ea8ef51aced2b9191c08197f55450d830876d9933f8f48a429b354f1d496b42" +checksum = "47c8fbc0f831f4519fe8b810b6a7a91410ec83031b8233f730a0480029f6a23f" dependencies = [ "arrayvec", ] @@ -449,39 +449,12 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - [[package]] name = "base64" version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" -[[package]] -name = "bezier-rs" -version = "0.4.0" -dependencies = [ - "dyn-any", - "glam", - "kurbo", - "serde", -] - -[[package]] -name = "bezier-rs-wasm" -version = "0.0.0" -dependencies = [ - "bezier-rs", - "glam", - "js-sys", - "log", - "wasm-bindgen", -] - [[package]] name = "bincode" version = "1.3.3" @@ -508,9 +481,9 @@ checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" [[package]] name = "bit_field" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61" +checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" [[package]] name = "bitflags" @@ -520,9 +493,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.1" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" +checksum = "34efbcccd345379ca2868b2b2c9d3782e9cc58ba87bc7d79d5b53d9c9ae6f25d" dependencies = [ "serde", ] @@ -533,6 +506,18 @@ version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" +[[package]] +name = "blending-nodes" +version = "0.1.0" +dependencies = [ + "core-types", + "glam", + "graphic-types", + "node-macro", + "serde", + "vector-types", +] + [[package]] name = "block" version = "0.1.6" @@ -563,7 +548,7 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "340d2f0bdb2a43c1d3cd40513185b2bd7def0aa1052f956455114bc98f82dcf2" dependencies = [ - "objc2 0.6.1", + "objc2 0.6.3", ] [[package]] @@ -579,6 +564,29 @@ dependencies = [ "piper", ] +[[package]] +name = "borsh" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" +dependencies = [ + "cfg_aliases", +] + +[[package]] +name = "brush-nodes" +version = "0.1.0" +dependencies = [ + "core-types", + "dyn-any", + "glam", + "node-macro", + "raster-nodes", + "raster-types", + "serde", + "tokio", +] + [[package]] name = "built" version = "0.7.7" @@ -593,22 +601,22 @@ checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytemuck" -version = "1.23.1" +version = "1.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" +checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.9.3" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" +checksum = "4f154e572231cb6ba2bd1176980827e3d5dc04cc183a75dea38109fbdd672d29" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -640,30 +648,98 @@ dependencies = [ [[package]] name = "calloop" -version = "0.13.0" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec" +checksum = "cb9f6e1368bd4621d2c86baa7e37de77a938adf5221e5dd3d6133340101b309e" dependencies = [ - "bitflags 2.9.1", - "log", + "bitflags 2.9.3", "polling", - "rustix 0.38.44", + "rustix", "slab", - "thiserror 1.0.69", + "tracing", ] [[package]] name = "calloop-wayland-source" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20" +checksum = "138efcf0940a02ebf0cc8d1eff41a1682a46b431630f4c52450d6265876021fa" dependencies = [ "calloop", - "rustix 0.38.44", + "rustix", "wayland-backend", "wayland-client", ] +[[package]] +name = "camino" +version = "1.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0b03af37dad7a14518b7691d81acb0f8222604ad3d1b02f6b4bed5188c0cd5" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-gpu" +version = "0.1.0" +source = "git+https://github.com/Firestar99/cargo-gpu?rev=3952a22d16edbd38689f3a876e417899f21e1fe7#3952a22d16edbd38689f3a876e417899f21e1fe7" +dependencies = [ + "anyhow", + "cargo_metadata", + "clap", + "crossterm", + "directories", + "dunce", + "env_logger", + "log", + "relative-path", + "semver", + "serde", + "serde_json", + "spirv-builder", +] + +[[package]] +name = "cargo-platform" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84982c6c0ae343635a3a4ee6dedef965513735c8b183caa7289fa6e27399ebd4" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-util-schemas" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dc1a6f7b5651af85774ae5a34b4e8be397d9cf4bc063b7e6dbd99a841837830" +dependencies = [ + "semver", + "serde", + "serde-untagged", + "serde-value", + "thiserror 2.0.16", + "toml 0.8.23", + "unicode-xid", + "url", +] + +[[package]] +name = "cargo_metadata" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cfca2aaa699835ba88faf58a06342a314a950d2b9686165e038286c30316868" +dependencies = [ + "camino", + "cargo-platform", + "cargo-util-schemas", + "semver", + "serde", + "serde_json", + "thiserror 2.0.16", +] + [[package]] name = "cast" version = "0.3.0" @@ -672,9 +748,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.29" +version = "1.2.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" +checksum = "42bc4aea80032b7bf409b0bc7ccad88853858911b7713a8062fdc0623867bedc" dependencies = [ "jobserver", "libc", @@ -683,19 +759,30 @@ dependencies = [ [[package]] name = "cef" -version = "138.5.0+138.0.26" +version = "142.5.0+142.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bfa138b538b29584b02e990a631ef44261d9a70d35a77ce4ef624410046fe91" +checksum = "32eab60854609591d365051497b1fb78b77b129d9e39ba69b1f71ee3f4ae9345" dependencies = [ + "ash", "cef-dll-sys", - "windows-sys 0.60.2", + "libc", + "libloading 0.9.0", + "metal", + "objc", + "objc2 0.6.3", + "objc2-io-surface", + "thiserror 2.0.16", + "tracing", + "wgpu", + "windows 0.58.0", + "windows-sys 0.61.2", ] [[package]] name = "cef-dll-sys" -version = "138.5.0+138.0.26" +version = "142.5.0+142.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "658450855d0ef25af50420b95fbdfacb5df17c7eb20a1615ec995470c26ed643" +checksum = "5a8c418c8eb6abff55f52668dbb8cba3cd5fcf057cf3eed46c04013a08ad9004" dependencies = [ "anyhow", "cmake", @@ -721,9 +808,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9" [[package]] name = "cfg_aliases" @@ -742,7 +829,7 @@ dependencies = [ "js-sys", "num-traits", "wasm-bindgen", - "windows-link", + "windows-link 0.1.3", ] [[package]] @@ -774,9 +861,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.41" +version = "4.5.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" +checksum = "2c5e4fcf9c21d2e544ca1ee9d8552de13019a42aa7dbf32747fa7aaf1df76e57" dependencies = [ "clap_builder", "clap_derive", @@ -784,9 +871,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.41" +version = "4.5.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" +checksum = "fecb53a0e6fcfb055f686001bc2e2592fa527efaf38dbe81a6a9563562e57d41" dependencies = [ "anstream", "anstyle", @@ -796,14 +883,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.41" +version = "4.5.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" +checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -812,6 +899,45 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +[[package]] +name = "clipboard-win" +version = "5.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde03770d3df201d4fb868f2c9c59e66a3e4e2bd06692a0fe701e7103c7e84d4" +dependencies = [ + "error-code", +] + +[[package]] +name = "clipboard_macos" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7f4aaa047ba3c3630b080bb9860894732ff23e2aee290a418909aa6d5df38f" +dependencies = [ + "objc2 0.5.2", + "objc2-app-kit 0.2.2", + "objc2-foundation 0.2.2", +] + +[[package]] +name = "clipboard_wayland" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003f886bc4e2987729d10c1db3424e7f80809f3fc22dbc16c685738887cb37b8" +dependencies = [ + "smithay-clipboard", +] + +[[package]] +name = "clipboard_x11" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4274ea815e013e0f9f04a2633423e14194e408a0576c943ce3d14ca56c50031c" +dependencies = [ + "thiserror 1.0.69", + "x11rb", +] + [[package]] name = "cmake" version = "0.1.54" @@ -834,9 +960,9 @@ dependencies = [ [[package]] name = "color" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ae467d04a8a8aea5d9a49018a6ade2e4221d92968e8ce55a48c0b1164e5f698" +checksum = "a18ef4657441fb193b65f34dc39b3781f0dfec23d3bd94d0eeb4e88cde421edb" [[package]] name = "color_quant" @@ -901,6 +1027,15 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "convert_case" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baaaa0ecca5b51987b9423ccdc971514dd8b0bb7b4060b983d3664dad3f1f89f" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "cookie" version = "0.18.1" @@ -914,9 +1049,9 @@ dependencies = [ [[package]] name = "cookie_store" -version = "0.21.1" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eac901828f88a5241ee0600950ab981148a18f2f756900ffba1b125ca6a3ef9" +checksum = "3fc4bff745c9b4c7fb1e97b25d13153da2bc7796260141df62378998d070207f" dependencies = [ "cookie", "document-features", @@ -940,6 +1075,16 @@ dependencies = [ "libc", ] +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -947,27 +1092,45 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] -name = "core-graphics" -version = "0.23.2" +name = "core-graphics-types" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081" +checksum = "3d44a101f213f6c4cdc1853d4b78aef6db6bdfa3468798cc1d9912f4735013eb" dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-graphics-types", - "foreign-types 0.5.0", + "bitflags 2.9.3", + "core-foundation 0.10.1", "libc", ] [[package]] -name = "core-graphics-types" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45390e6114f68f718cc7a830514a96f903cccd70d02a8f6d9f643ac4ba45afaf" +name = "core-types" +version = "0.1.0" dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "libc", + "base64", + "bitflags 2.9.3", + "bytemuck", + "ctor", + "dyn-any", + "glam", + "image", + "kurbo 0.12.0", + "log", + "lyon_geom", + "no-std-types", + "node-macro", + "num-traits", + "parley", + "petgraph 0.7.1", + "polycool", + "rand 0.9.2", + "rand_chacha 0.9.0", + "rustc-hash 2.1.1", + "serde", + "serde_json", + "skrifa 0.36.0", + "specta", + "tinyvec", + "tokio", ] [[package]] @@ -988,6 +1151,16 @@ dependencies = [ "libc", ] +[[package]] +name = "crate-hierarchy-viz" +version = "0.0.0" +dependencies = [ + "anyhow", + "clap", + "serde", + "toml 0.8.23", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -999,25 +1172,22 @@ dependencies = [ [[package]] name = "criterion" -version = "0.5.1" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +checksum = "e1c047a62b0cc3e145fa84415a3191f628e980b194c2755aa12300a4e6cbd928" dependencies = [ "anes", "cast", "ciborium", "clap", "criterion-plot", - "is-terminal", - "itertools 0.10.5", + "itertools 0.13.0", "num-traits", - "once_cell", "oorandom", "plotters", "rayon", "regex", "serde", - "serde_derive", "serde_json", "tinytemplate", "walkdir", @@ -1025,12 +1195,21 @@ dependencies = [ [[package]] name = "criterion-plot" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +checksum = "9b1bcc0dc7dfae599d84ad0b1a55f80cde8af3725da8313b528da95ef783e338" dependencies = [ "cast", - "itertools 0.10.5", + "itertools 0.13.0", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", ] [[package]] @@ -1058,6 +1237,33 @@ version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" +[[package]] +name = "crossterm" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" +dependencies = [ + "bitflags 2.9.3", + "crossterm_winapi", + "derive_more", + "document-features", + "mio", + "parking_lot", + "rustix", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b" +dependencies = [ + "winapi", +] + [[package]] name = "crunchy" version = "0.2.4" @@ -1081,7 +1287,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ "quote", - "syn 2.0.104", + "syn 2.0.106", +] + +[[package]] +name = "ctrlc" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73736a89c4aff73035ba2ed2e565061954da00d4970fc9ac25dcc85a2a20d790" +dependencies = [ + "dispatch2", + "nix", + "windows-sys 0.61.2", ] [[package]] @@ -1095,9 +1312,9 @@ dependencies = [ [[package]] name = "data-url" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c297a1c74b71ae29df00c3e22dd9534821d60eb9af5a0192823fa2acea70c2a" +checksum = "be1e0bca6c3637f992fc1cc7cbc52a78c1ef6db076dbf1059c4323d6a2048376" [[package]] name = "deranged" @@ -1119,6 +1336,27 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive_more" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +dependencies = [ + "derive_more-impl", +] + +[[package]] +name = "derive_more-impl" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +dependencies = [ + "convert_case 0.7.1", + "proc-macro2", + "quote", + "syn 2.0.106", +] + [[package]] name = "diff" version = "0.1.13" @@ -1135,6 +1373,15 @@ dependencies = [ "crypto-common", ] +[[package]] +name = "directories" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f5094c54661b38d03bd7e50df373292118db60b585c08a411c6d840017fe7d" +dependencies = [ + "dirs-sys", +] + [[package]] name = "dirs" version = "6.0.0" @@ -1153,25 +1400,19 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - [[package]] name = "dispatch2" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "block2 0.6.1", "libc", - "objc2 0.6.1", + "objc2 0.6.3", ] [[package]] @@ -1182,7 +1423,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1191,7 +1432,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412" dependencies = [ - "libloading", + "libloading 0.8.8", ] [[package]] @@ -1211,9 +1452,9 @@ checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "download-cef" -version = "2.0.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eecc63fbfbe85b1767a8eeb4118408ee4452280c069b4c73301cf2efda4db0d6" +checksum = "d98178d9254efef0f69c1f584713d69c790ec00668cd98f783a5085fbefdbddc" dependencies = [ "bzip2", "clap", @@ -1224,19 +1465,24 @@ dependencies = [ "serde_json", "sha1_smol", "tar", - "thiserror 2.0.12", + "thiserror 2.0.16", "ureq", ] [[package]] name = "dpi" version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b14ccef22fc6f5a8f4d7d768562a182c04ce9a3b3157b91390b52ddfdf1a76" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" dependencies = [ "serde", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + [[package]] name = "dyn-any" version = "0.3.1" @@ -1253,7 +1499,7 @@ dependencies = [ "dyn-any", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1301,7 +1547,7 @@ checksum = "67c78a4d8fdf9953a5c9d458f9efe940fd97a0cab0941c075a813ac594733827" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1344,7 +1590,7 @@ checksum = "44f23cf4b44bfce11a86ace86f8a73ffdec849c9fd00a386a53d278bd9e81fb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1353,6 +1599,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "erased-serde" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +dependencies = [ + "serde", + "typeid", +] + [[package]] name = "errno" version = "0.3.13" @@ -1363,6 +1619,12 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "error-code" +version = "3.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dea2df4cf52843e0452895c455a1a2cfbb842a1e7329671acf418fdc53ed4c59" + [[package]] name = "euclid" version = "0.22.11" @@ -1374,9 +1636,9 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.4.0" +version = "5.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae" +checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" dependencies = [ "concurrent-queue", "parking", @@ -1444,14 +1706,14 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.25" +version = "0.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35c0522e981e68cbfa8c3f978441a5f34b30b96e146b33cd3359176b50fe8586" +checksum = "bc0505cd1b6fa6580283f6bdf70a73fcf4aba1184038c90902b92b3dd0df63ed" dependencies = [ "cfg-if", "libc", "libredox", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -1488,6 +1750,12 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + [[package]] name = "font-types" version = "0.9.0" @@ -1498,13 +1766,12 @@ dependencies = [ ] [[package]] -name = "fontconfig-cache-parser" -version = "0.2.0" +name = "font-types" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7f8afb20c8069fd676d27b214559a337cc619a605d25a87baa90b49a06f3b18" +checksum = "511e2c18a516c666d27867d2f9821f76e7d591f762e9fc41dd6cc5c90fe54b0b" dependencies = [ "bytemuck", - "thiserror 1.0.69", ] [[package]] @@ -1531,26 +1798,40 @@ dependencies = [ ] [[package]] -name = "fontique" -version = "0.5.0" +name = "fontdb" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39f97079e1293b8c1e9fb03a2875d328bd2ee8f3b95ce62959c0acc04049c708" +checksum = "457e789b3d1202543297a350643cf459f836cade38934e7a4cf6a39e7cde2905" +dependencies = [ + "fontconfig-parser", + "log", + "memmap2", + "slotmap", + "tinyvec", + "ttf-parser 0.25.1", +] + +[[package]] +name = "fontique" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff3336bc0b87fe42305047263fa60d2eabd650d29cbe62fdeb2a66c7a0a595f9" dependencies = [ "bytemuck", - "fontconfig-cache-parser", - "hashbrown", - "icu_locid", + "hashbrown 0.15.5", + "icu_locale_core", + "linebender_resource_handle", "memmap2", - "objc2 0.6.1", + "objc2 0.6.3", "objc2-core-foundation", "objc2-core-text", - "objc2-foundation 0.3.1", - "peniko", - "read-fonts 0.29.3", + "objc2-foundation 0.3.2", + "read-fonts 0.35.0", "roxmltree", "smallvec", - "windows", + "windows 0.58.0", "windows-core 0.58.0", + "yeslogic-fontconfig-sys", ] [[package]] @@ -1580,7 +1861,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1597,13 +1878,22 @@ checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] +[[package]] +name = "fsevent-sys" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2" +dependencies = [ + "libc", +] + [[package]] name = "futures" version = "0.3.31" @@ -1665,9 +1955,9 @@ checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5edaec856126859abb19ed65f39e90fea3a9574b9707f13539acf4abf7eb532" +checksum = "f78e10609fe0e0b3f4157ffab1876319b5b0db102a2c60dc4626306dc46b44ad" dependencies = [ "fastrand", "futures-core", @@ -1684,7 +1974,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -1729,12 +2019,12 @@ dependencies = [ [[package]] name = "gethostname" -version = "0.4.3" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818" +checksum = "fc257fdb4038301ce4b9cd1b3b51704509692bb3ff716a410cbd07925d9dae55" dependencies = [ - "libc", - "windows-targets 0.48.5", + "rustix", + "windows-targets 0.52.6", ] [[package]] @@ -1760,7 +2050,7 @@ dependencies = [ "js-sys", "libc", "r-efi", - "wasi 0.14.2+wasi-0.2.4", + "wasi 0.14.3+wasi-0.2.4", "wasm-bindgen", ] @@ -1797,15 +2087,16 @@ version = "0.29.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8babf46d4c1c9d92deac9f7be466f76dfc4482b6452fc5024b5e8daf6ffeb3ee" dependencies = [ + "bytemuck", "libm", "serde", ] [[package]] name = "glob" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "glow" @@ -1834,7 +2125,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "gpu-alloc-types", ] @@ -1844,7 +2135,7 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", ] [[package]] @@ -1856,7 +2147,7 @@ dependencies = [ "log", "presser", "thiserror 1.0.69", - "windows", + "windows 0.58.0", ] [[package]] @@ -1865,9 +2156,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b89c83349105e3732062a895becfc71a8f921bb71ecbbdd8ff99263e3b53a0ca" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "gpu-descriptor-types", - "hashbrown", + "hashbrown 0.15.5", ] [[package]] @@ -1876,33 +2167,35 @@ version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdf242682df893b86f33a73828fb09ca4b2d3bb6cc95249707fc684d27484b91" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", ] [[package]] name = "graph-craft" version = "0.1.0" dependencies = [ - "bezier-rs", + "brush-nodes", + "core-types", "criterion", "dyn-any", "glam", "graph-craft", "graphene-application-io", - "graphene-brush", "graphene-core", - "graphene-path-bool", - "graphene-raster-nodes", - "graphene-svg-renderer", + "graphic-types", "iai-callgrind", "js-sys", "log", + "path-bool-nodes", "pretty_assertions", + "raster-nodes", + "rendering", "reqwest", "rustc-hash 2.1.1", "serde", "serde_json", "specta", + "text-nodes", "tokio", "url", "wasm-bindgen", @@ -1915,28 +2208,17 @@ dependencies = [ name = "graphene-application-io" version = "0.1.0" dependencies = [ + "core-types", "dyn-any", "glam", - "graphene-core", "log", "serde", + "text-nodes", + "vector-types", "web-sys", "wgpu", ] -[[package]] -name = "graphene-brush" -version = "0.1.0" -dependencies = [ - "dyn-any", - "glam", - "graphene-core", - "graphene-raster-nodes", - "node-macro", - "serde", - "tokio", -] - [[package]] name = "graphene-cli" version = "0.1.0" @@ -1946,8 +2228,8 @@ dependencies = [ "fern", "futures", "graph-craft", - "graphene-core", "graphene-std", + "image", "interpreted-executor", "log", "preprocessor", @@ -1960,124 +2242,48 @@ dependencies = [ name = "graphene-core" version = "0.1.0" dependencies = [ - "base64 0.22.1", - "bezier-rs", - "bytemuck", - "ctor", + "core-types", "dyn-any", "glam", - "graphene-core-shaders", - "image", - "kurbo", + "graphic-types", "log", "node-macro", - "num-traits", - "parley", - "petgraph 0.7.1", - "rand 0.9.1", - "rand_chacha 0.9.0", - "rustc-hash 2.1.1", + "raster-types", "serde", "serde_json", - "skrifa 0.32.0", "specta", - "tinyvec", - "tokio", - "wgpu", -] - -[[package]] -name = "graphene-core-shaders" -version = "0.1.0" -dependencies = [ - "bytemuck", - "dyn-any", - "glam", - "graphene-core", - "half", - "log", - "num-derive", - "num-traits", - "serde", - "specta", -] - -[[package]] -name = "graphene-math-nodes" -version = "0.1.0" -dependencies = [ - "glam", - "graphene-core", - "log", - "math-parser", - "node-macro", - "rand 0.9.1", -] - -[[package]] -name = "graphene-path-bool" -version = "0.1.0" -dependencies = [ - "bezier-rs", - "dyn-any", - "glam", - "graphene-core", - "log", - "node-macro", - "path-bool", - "serde", - "specta", -] - -[[package]] -name = "graphene-raster-nodes" -version = "0.1.0" -dependencies = [ - "bezier-rs", - "bytemuck", - "dyn-any", - "fastnoise-lite", - "futures", - "glam", - "graphene-core", - "graphene-core-shaders", - "image", - "ndarray", - "node-macro", - "rand 0.9.1", - "rand_chacha 0.9.0", - "serde", - "specta", - "tokio", ] [[package]] name = "graphene-std" version = "0.1.0" dependencies = [ - "base64 0.22.1", - "bytemuck", + "base64", + "blending-nodes", + "brush-nodes", + "core-types", "dyn-any", - "fastnoise-lite", - "futures", "glam", "graph-craft", "graphene-application-io", - "graphene-brush", "graphene-core", - "graphene-math-nodes", - "graphene-path-bool", - "graphene-raster-nodes", - "graphene-svg-renderer", + "graphic-nodes", + "graphic-types", "image", "log", - "ndarray", + "math-nodes", "node-macro", - "rand 0.9.1", - "rand_chacha 0.9.0", + "path-bool-nodes", + "raster-nodes", + "rendering", "reqwest", + "text-nodes", "tokio", + "transform-nodes", + "vector-nodes", + "vector-types", "vello", + "vello_encoding", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -2085,19 +2291,32 @@ dependencies = [ ] [[package]] -name = "graphene-svg-renderer" +name = "graphic-nodes" version = "0.1.0" dependencies = [ - "base64 0.22.1", - "bezier-rs", + "core-types", "dyn-any", "glam", - "graphene-core", - "log", - "num-traits", + "graphic-types", + "node-macro", + "raster-types", "serde", - "usvg", - "vello", + "vector-types", +] + +[[package]] +name = "graphic-types" +version = "0.1.0" +dependencies = [ + "core-types", + "dyn-any", + "glam", + "node-macro", + "raster-types", + "serde", + "serde_json", + "specta", + "vector-types", ] [[package]] @@ -2106,33 +2325,101 @@ version = "0.1.0" dependencies = [ "bytemuck", "cef", + "cef-dll-sys", + "clap", + "ctrlc", "derivative", "dirs", "futures", "glam", - "graph-craft", - "graphene-std", - "graphite-editor", - "include_dir", + "graphite-desktop-embedded-resources", + "graphite-desktop-wrapper", + "muda", + "objc2 0.6.3", + "objc2-app-kit 0.3.2", + "objc2-foundation 0.3.2", "open", + "pidlock", + "rand 0.9.2", "rfd", "ron", - "thiserror 2.0.12", + "serde", + "thiserror 2.0.16", "tracing", "tracing-subscriber", "vello", "wgpu", - "wgpu-executor", + "window_clipboard", + "windows 0.58.0", "winit", ] +[[package]] +name = "graphite-desktop-bundle" +version = "0.0.0" +dependencies = [ + "cef-dll-sys", + "plist", + "serde", +] + +[[package]] +name = "graphite-desktop-embedded-resources" +version = "0.1.0" +dependencies = [ + "include_dir", +] + +[[package]] +name = "graphite-desktop-platform-linux" +version = "0.0.0" +dependencies = [ + "graphite-desktop", +] + +[[package]] +name = "graphite-desktop-platform-mac" +version = "0.0.0" +dependencies = [ + "graphite-desktop", +] + +[[package]] +name = "graphite-desktop-platform-win" +version = "0.0.0" +dependencies = [ + "graphite-desktop", + "winres", +] + +[[package]] +name = "graphite-desktop-wrapper" +version = "0.1.0" +dependencies = [ + "base64", + "dirs", + "futures", + "graph-craft", + "graphene-std", + "graphite-editor", + "image", + "keyboard-types", + "ron", + "serde", + "serde_json", + "thiserror 2.0.16", + "tracing", + "vello", + "wgpu", + "wgpu-executor", +] + [[package]] name = "graphite-editor" version = "0.0.0" dependencies = [ - "bezier-rs", - "bitflags 2.9.1", - "bytemuck", + "base64", + "bitflags 2.9.3", "derivative", "dyn-any", "env_logger", @@ -2141,25 +2428,23 @@ dependencies = [ "graph-craft", "graphene-std", "graphite-proc-macros", + "image", "interpreted-executor", "js-sys", - "kurbo", + "kurbo 0.12.0", "log", "num_enum", "once_cell", "preprocessor", - "ron", "serde", "serde_json", "specta", "spin", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", - "tracing", - "usvg", + "usvg 0.45.1", "vello", "wasm-bindgen", - "wasm-bindgen-futures", "web-sys", "wgpu-executor", ] @@ -2172,7 +2457,7 @@ dependencies = [ "proc-macro2", "quote", "serde", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2188,6 +2473,7 @@ dependencies = [ "ron", "serde", "serde-wasm-bindgen", + "serde_json", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -2206,9 +2492,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" +checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" dependencies = [ "atomic-waker", "bytes", @@ -2237,14 +2523,36 @@ dependencies = [ ] [[package]] -name = "hashbrown" -version = "0.15.4" +name = "harfrust" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "92c020db12c71d8a12a3fe7607873cade3a01a6287e29d540c8723276221b9d8" +dependencies = [ + "bitflags 2.9.3", + "bytemuck", + "core_maths", + "read-fonts 0.35.0", + "smallvec", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" dependencies = [ "allocator-api2", "equivalent", - "foldhash", + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +dependencies = [ + "foldhash 0.2.0", ] [[package]] @@ -2313,19 +2621,21 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" [[package]] name = "hyper" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" dependencies = [ + "atomic-waker", "bytes", "futures-channel", - "futures-util", + "futures-core", "h2", "http", "http-body", "httparse", "itoa", "pin-project-lite", + "pin-utils", "smallvec", "tokio", "want", @@ -2345,7 +2655,7 @@ dependencies = [ "tokio", "tokio-rustls", "tower-service", - "webpki-roots 1.0.1", + "webpki-roots", ] [[package]] @@ -2366,11 +2676,11 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" +checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e" dependencies = [ - "base64 0.22.1", + "base64", "bytes", "futures-channel", "futures-core", @@ -2392,34 +2702,36 @@ dependencies = [ [[package]] name = "iai-callgrind" -version = "0.12.3" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "283f598a969822c70af13aae1272ba09c97014c7344d3b24652e5b1d7b771c36" +checksum = "0b1e4910d3a9137442723dfb772c32dc10674c4181ca078d2fd227cd5dce9db0" dependencies = [ "bincode", + "derive_more", "iai-callgrind-macros", "iai-callgrind-runner", ] [[package]] name = "iai-callgrind-macros" -version = "0.3.1" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04e2ff2e86bdba764b66d94b65f2caa03da60d971a6930fdc2e67f12582c5bb8" +checksum = "4d03775318d3f9f01b39ac6612b01464006dc397a654a89dd57df2fd34fb68c3" dependencies = [ - "proc-macro-error", + "derive_more", + "proc-macro-error2", "proc-macro2", "quote", "serde", "serde_json", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "iai-callgrind-runner" -version = "0.12.3" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb92a65def0d3a0ef41029c411dc2ecdd3518708c062f8bd576fd4143be1c56b" +checksum = "b74c9743c00c3bca4aaffc69c87cae56837796cd362438daf354a3f785788c68" dependencies = [ "serde", ] @@ -2468,24 +2780,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", - "litemap 0.8.0", - "tinystr 0.8.1", - "writeable 0.6.1", + "litemap", + "tinystr", + "writeable", "zerovec", ] -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap 0.7.5", - "tinystr 0.7.6", - "writeable 0.5.5", -] - [[package]] name = "icu_normalizer" version = "2.0.0" @@ -2538,8 +2838,8 @@ dependencies = [ "displaydoc", "icu_locale_core", "stable_deref_trait", - "tinystr 0.8.1", - "writeable 0.6.1", + "tinystr", + "writeable", "yoke", "zerofrom", "zerotrie", @@ -2548,9 +2848,9 @@ dependencies = [ [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -2578,7 +2878,7 @@ dependencies = [ "color_quant", "exr", "gif", - "image-webp 0.2.3", + "image-webp 0.2.4", "num-traits", "png", "qoi", @@ -2602,9 +2902,9 @@ dependencies = [ [[package]] name = "image-webp" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6970fe7a5300b4b42e62c52efa0187540a5bef546c60edaf554ef595d2e6f0b" +checksum = "525e9ff3e1a4be2fbea1fdf0e98686a6d98b4d8f937e1bf7402245af1909e8c3" dependencies = [ "byteorder-lite", "quick-error", @@ -2643,12 +2943,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" +checksum = "f2481980430f9f78649238835720ddccc57e52df14ffce1c6f37391d61b563e9" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.15.5", ] [[package]] @@ -2670,6 +2970,26 @@ version = "2.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4c7245a08504955605670dbf141fceab975f15ca21570696aebe9d2e71576bd" +[[package]] +name = "inotify" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" +dependencies = [ + "bitflags 2.9.3", + "inotify-sys", + "libc", +] + +[[package]] +name = "inotify-sys" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb" +dependencies = [ + "libc", +] + [[package]] name = "interpolate_name" version = "0.2.4" @@ -2678,35 +2998,37 @@ checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "interpreted-executor" version = "0.1.0" dependencies = [ + "core-types", "criterion", "dyn-any", "futures", "glam", "graph-craft", "graphene-core", - "graphene-path-bool", "graphene-std", "iai-callgrind", "log", "once_cell", + "path-bool-nodes", + "preprocessor", "serde", "wgpu-executor", ] [[package]] name = "io-uring" -version = "0.7.8" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "cfg-if", "libc", ] @@ -2736,17 +3058,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "is-terminal" -version = "0.4.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.59.0", -] - [[package]] name = "is-wsl" version = "0.4.0" @@ -2765,18 +3076,18 @@ checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" [[package]] name = "itertools" -version = "0.10.5" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" dependencies = [ "either", ] @@ -2808,7 +3119,7 @@ checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -2835,9 +3146,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.33" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ "getrandom 0.3.3", "libc", @@ -2859,6 +3170,16 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "keyboard-types" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53cea01d04c8251f945a9f16c5364da6cdb8bce69a61382663302c62f4186d13" +dependencies = [ + "bitflags 2.9.3", + "serde", +] + [[package]] name = "khronos-egl" version = "6.0.0" @@ -2866,7 +3187,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76" dependencies = [ "libc", - "libloading", + "libloading 0.8.8", "pkg-config", ] @@ -2877,12 +3198,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc" [[package]] -name = "kurbo" -version = "0.11.2" +name = "kqueue" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1077d333efea6170d9ccb96d3c3026f300ca0773da4938cc4c811daa6df68b0c" +checksum = "eac30106d7dce88daf4a3fcb4879ea939476d5074a9b7ddd0fb97fa4bed5596a" +dependencies = [ + "kqueue-sys", + "libc", +] + +[[package]] +name = "kqueue-sys" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b" +dependencies = [ + "bitflags 1.3.2", + "libc", +] + +[[package]] +name = "kurbo" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62026ae44756f8a599ba21140f350303d4f08dcdcc71b5ad9c9bb8128c13c62" dependencies = [ "arrayvec", + "euclid", + "smallvec", +] + +[[package]] +name = "kurbo" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce9729cc38c18d86123ab736fd2e7151763ba226ac2490ec092d1dd148825e32" +dependencies = [ + "arrayvec", + "euclid", "serde", "smallvec", ] @@ -2901,15 +3254,15 @@ checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8" [[package]] name = "libbz2-rs-sys" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775bf80d5878ab7c2b1080b5351a48b2f737d9f6f8b383574eebcc22be0dfccb" +checksum = "2c4a545a15244c7d945065b5d392b2d2d7f21526fba56ce51467b06ed445e8f7" [[package]] name = "libc" -version = "0.2.174" +version = "0.2.175" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543" [[package]] name = "libfuzzer-sys" @@ -2928,7 +3281,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.53.2", + "windows-targets 0.53.3", +] + +[[package]] +name = "libloading" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "754ca22de805bb5744484a5b151a9e1a8e837d5dc232c2d7d8c2e3492edc8b60" +dependencies = [ + "cfg-if", + "windows-link 0.2.1", ] [[package]] @@ -2939,20 +3302,20 @@ checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" [[package]] name = "libredox" -version = "0.1.4" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" +checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "libc", - "redox_syscall 0.5.13", + "redox_syscall", ] [[package]] -name = "linux-raw-sys" -version = "0.4.15" +name = "linebender_resource_handle" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" +checksum = "d4a5ff6bcca6c4867b1c4fd4ef63e4db7436ef363e0ad7531d1558856bae64f4" [[package]] name = "linux-raw-sys" @@ -2960,12 +3323,6 @@ version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" -[[package]] -name = "litemap" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" - [[package]] name = "litemap" version = "0.8.0" @@ -2974,9 +3331,9 @@ checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "litrs" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce301924b7887e9d637144fdade93f9dfff9b60981d4ac161db09720d39aa5" +checksum = "f5e54036fe321fd421e10d732f155734c4e4afd610dd556d9a82833ab3ee0bed" [[package]] name = "lock_api" @@ -3009,6 +3366,17 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +[[package]] +name = "lyon_geom" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8af69edc087272df438b3ee436c4bb6d7c04aa8af665cfd398feae627dbd8570" +dependencies = [ + "arrayvec", + "euclid", + "num-traits", +] + [[package]] name = "malloc_buf" version = "0.0.6" @@ -3020,11 +3388,24 @@ dependencies = [ [[package]] name = "matchers" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" dependencies = [ - "regex-automata 0.1.10", + "regex-automata", +] + +[[package]] +name = "math-nodes" +version = "0.1.0" +dependencies = [ + "core-types", + "glam", + "log", + "math-parser", + "node-macro", + "rand 0.9.2", + "vector-types", ] [[package]] @@ -3036,7 +3417,7 @@ dependencies = [ "num-complex", "pest", "pest_derive", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] @@ -3067,9 +3448,9 @@ checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memmap2" -version = "0.9.7" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "483758ad303d734cec05e5c12b41d7e93e6a6390c5e9dae6bdeb7c1259012d28" +checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7" dependencies = [ "libc", ] @@ -3085,11 +3466,11 @@ dependencies = [ [[package]] name = "metal" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f569fb946490b5743ad69813cb19629130ce9374034abe31614a36402d18f99e" +checksum = "00c15a6f673ff72ddcc22394663290f870fb224c1bfce55734a75c414150e605" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "block", "core-graphics-types", "foreign-types 0.5.0", @@ -3127,33 +3508,78 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" dependencies = [ "libc", + "log", "wasi 0.11.1+wasi-snapshot-preview1", "windows-sys 0.59.0", ] +[[package]] +name = "muda" +version = "0.17.1" +source = "git+https://github.com/tauri-apps/muda.git?rev=3f460b8fbaed59cda6d95ceea6904f000f093f15#3f460b8fbaed59cda6d95ceea6904f000f093f15" +dependencies = [ + "crossbeam-channel", + "dpi", + "keyboard-types", + "objc2 0.6.3", + "objc2-app-kit 0.3.2", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "once_cell", + "png", + "thiserror 2.0.16", + "windows-sys 0.60.2", +] + [[package]] name = "naga" -version = "25.0.1" +version = "26.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b977c445f26e49757f9aca3631c3b8b836942cb278d69a92e7b80d3b24da632" +checksum = "916cbc7cb27db60be930a4e2da243cf4bc39569195f22fd8ee419cd31d5b662c" dependencies = [ "arrayvec", "bit-set", - "bitflags 2.9.1", + "bitflags 2.9.3", + "cfg-if", "cfg_aliases", "codespan-reporting", "half", - "hashbrown", + "hashbrown 0.15.5", "hexf-parse", "indexmap", + "libm", + "log", + "num-traits", + "once_cell", + "rustc-hash 1.1.0", + "thiserror 2.0.16", + "unicode-ident", +] + +[[package]] +name = "naga" +version = "27.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "066cf25f0e8b11ee0df221219010f213ad429855f57c494f995590c861a9a7d8" +dependencies = [ + "arrayvec", + "bit-set", + "bitflags 2.9.3", + "cfg-if", + "cfg_aliases", + "codespan-reporting", + "half", + "hashbrown 0.16.0", + "hexf-parse", + "indexmap", + "libm", "log", "num-traits", "once_cell", "petgraph 0.8.2", "rustc-hash 1.1.0", "spirv", - "strum", - "thiserror 2.0.12", + "thiserror 2.0.16", "unicode-ident", ] @@ -3195,10 +3621,10 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "jni-sys", "log", - "ndk-sys 0.6.0+11769913", + "ndk-sys", "num_enum", "raw-window-handle", "thiserror 1.0.69", @@ -3210,15 +3636,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" -[[package]] -name = "ndk-sys" -version = "0.5.0+25.2.9519653" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" -dependencies = [ - "jni-sys", -] - [[package]] name = "ndk-sys" version = "0.6.0+11769913" @@ -3240,26 +3657,46 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "cfg-if", "cfg_aliases", "libc", "memoffset", ] +[[package]] +name = "no-std-types" +version = "0.1.0" +dependencies = [ + "bytemuck", + "core-types", + "dyn-any", + "glam", + "half", + "log", + "node-macro", + "num-derive", + "num-traits", + "num_enum", + "serde", + "specta", + "spirv-std", +] + [[package]] name = "node-macro" version = "0.0.0" dependencies = [ - "convert_case", - "graphene-core", + "convert_case 0.8.0", + "core-types", "indoc", + "no-std-types", "proc-macro-crate", "proc-macro-error2", "proc-macro2", "quote", "strum", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3279,13 +3716,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0676bb32a98c1a483ce53e500a81ad9c3d5b3f7c920c28c24e9cb0980d0b5bc8" [[package]] -name = "nu-ansi-term" -version = "0.46.0" +name = "notify" +version = "8.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +checksum = "4d3d07927151ff8575b7087f245456e549fea62edf0ec4e565a5ee50c8402bc3" dependencies = [ - "overload", - "winapi", + "bitflags 2.9.3", + "fsevent-sys", + "inotify", + "kqueue", + "libc", + "log", + "mio", + "notify-types", + "walkdir", + "windows-sys 0.60.2", +] + +[[package]] +name = "notify-types" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e0826a989adedc2a244799e823aece04662b66609d96af8dff7ac6df9a8925d" + +[[package]] +name = "nu-ansi-term" +version = "0.50.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +dependencies = [ + "windows-sys 0.52.0", ] [[package]] @@ -3321,7 +3781,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3373,7 +3833,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3403,9 +3863,9 @@ dependencies = [ [[package]] name = "objc2" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88c6597e14493ab2e44ce58f2fdecf095a51f12ca57bec060a11c57332520551" +checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" dependencies = [ "objc2-encode", ] @@ -3416,7 +3876,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "block2 0.5.1", "libc", "objc2 0.5.2", @@ -3428,38 +3888,15 @@ dependencies = [ [[package]] name = "objc2-app-kit" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6f29f568bec459b0ddff777cec4fe3fd8666d82d5a40ebd0ff7e66134f89bcc" +checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "block2 0.6.1", - "objc2 0.6.1", - "objc2-foundation 0.3.1", -] - -[[package]] -name = "objc2-cloud-kit" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009" -dependencies = [ - "bitflags 2.9.1", - "block2 0.5.1", - "objc2 0.5.2", - "objc2-core-location", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-contacts" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5ff520e9c33812fd374d8deecef01d4a840e7b41862d849513de77e44aa4889" -dependencies = [ - "block2 0.5.1", - "objc2 0.5.2", - "objc2-foundation 0.2.2", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-foundation 0.3.2", ] [[package]] @@ -3468,7 +3905,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -3476,13 +3913,25 @@ dependencies = [ [[package]] name = "objc2-core-foundation" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c10c2894a6fed806ade6027bcd50662746363a9589d3ec9d9bef30a4e4bc166" +checksum = "2a180dd8642fa45cdb7dd721cd4c11b1cadd4929ce112ebd8b9f5803cc79d536" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", + "block2 0.6.1", "dispatch2", - "objc2 0.6.1", + "objc2 0.6.3", +] + +[[package]] +name = "objc2-core-graphics" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e022c9d066895efa1345f8e33e584b9f958da2fd4cd116792e15e07e4720a807" +dependencies = [ + "bitflags 2.9.3", + "libc", + "objc2-core-foundation", ] [[package]] @@ -3498,25 +3947,24 @@ dependencies = [ ] [[package]] -name = "objc2-core-location" -version = "0.2.2" +name = "objc2-core-text" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "000cfee34e683244f284252ee206a27953279d370e309649dc3ee317b37e5781" +checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" dependencies = [ - "block2 0.5.1", - "objc2 0.5.2", - "objc2-contacts", - "objc2-foundation 0.2.2", + "bitflags 2.9.3", + "objc2-core-foundation", ] [[package]] -name = "objc2-core-text" -version = "0.3.1" +name = "objc2-core-video" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ba833d4a1cb1aac330f8c973fd92b6ff1858e4aef5cdd00a255eefb28022fb5" +checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "objc2-core-foundation", + "objc2-core-graphics", ] [[package]] @@ -3531,34 +3979,35 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "block2 0.5.1", - "dispatch", "libc", "objc2 0.5.2", ] [[package]] name = "objc2-foundation" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900831247d2fe1a09a683278e5384cfb8c80c79fe6b166f9d14bfdde0ea1b03c" +checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ - "bitflags 2.9.1", - "objc2 0.6.1", + "bitflags 2.9.3", + "block2 0.6.1", + "objc2 0.6.3", "objc2-core-foundation", ] [[package]] -name = "objc2-link-presentation" -version = "0.2.2" +name = "objc2-io-surface" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a1ae721c5e35be65f01a03b6d2ac13a54cb4fa70d8a5da293d7b0020261398" +checksum = "180788110936d59bab6bd83b6060ffdfffb3b922ba1396b312ae795e1de9d81d" dependencies = [ - "block2 0.5.1", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", + "bitflags 2.9.3", + "libc", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-foundation 0.3.2", ] [[package]] @@ -3567,7 +4016,7 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", @@ -3579,66 +4028,23 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "block2 0.5.1", "objc2 0.5.2", "objc2-foundation 0.2.2", "objc2-metal", ] -[[package]] -name = "objc2-symbols" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a684efe3dec1b305badae1a28f6555f6ddd3bb2c2267896782858d5a78404dc" -dependencies = [ - "objc2 0.5.2", - "objc2-foundation 0.2.2", -] - [[package]] name = "objc2-ui-kit" -version = "0.2.2" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f" +checksum = "d87d638e33c06f577498cbcc50491496a3ed4246998a7fbba7ccb98b1e7eab22" dependencies = [ - "bitflags 2.9.1", - "block2 0.5.1", - "objc2 0.5.2", - "objc2-cloud-kit", - "objc2-core-data", - "objc2-core-image", - "objc2-core-location", - "objc2-foundation 0.2.2", - "objc2-link-presentation", - "objc2-quartz-core", - "objc2-symbols", - "objc2-uniform-type-identifiers", - "objc2-user-notifications", -] - -[[package]] -name = "objc2-uniform-type-identifiers" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44fa5f9748dbfe1ca6c0b79ad20725a11eca7c2218bceb4b005cb1be26273bfe" -dependencies = [ - "block2 0.5.1", - "objc2 0.5.2", - "objc2-foundation 0.2.2", -] - -[[package]] -name = "objc2-user-notifications" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3" -dependencies = [ - "bitflags 2.9.1", - "block2 0.5.1", - "objc2 0.5.2", - "objc2-core-location", - "objc2-foundation 0.2.2", + "bitflags 2.9.3", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-foundation 0.3.2", ] [[package]] @@ -3685,7 +4091,7 @@ version = "0.10.73" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "cfg-if", "foreign-types 0.3.2", "libc", @@ -3702,7 +4108,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3738,6 +4144,15 @@ dependencies = [ "libredox", ] +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + [[package]] name = "ordered-float" version = "4.6.0" @@ -3757,17 +4172,11 @@ dependencies = [ "pin-project-lite", ] -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - [[package]] name = "owned_ttf_parser" -version = "0.25.0" +version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec719bbf3b2a81c109a4e20b1f129b5566b7dce654bc3872f6a05abf82b2c4" +checksum = "36820e9051aca1014ddc75770aab4d68bc1e9e632f0f5627c4086bc216fb583b" dependencies = [ "ttf-parser 0.25.1", ] @@ -3796,21 +4205,22 @@ checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" dependencies = [ "cfg-if", "libc", - "redox_syscall 0.5.13", + "redox_syscall", "smallvec", "windows-targets 0.52.6", ] [[package]] name = "parley" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e57638545cf2ba4c3e72cc5715e53b1880b829cc3dbefda3d1700c58efe723" +checksum = "26746861bb76dbc9bcd5ed1b0b55d2fedf291100961251702a031ab2abd2ce52" dependencies = [ "fontique", - "hashbrown", - "peniko", - "skrifa 0.31.3", + "harfrust", + "hashbrown 0.15.5", + "linebender_resource_handle", + "skrifa 0.37.0", "swash", ] @@ -3828,12 +4238,32 @@ dependencies = [ "glam", "glob", "image", + "lyon_geom", "regex", "resvg", + "roots", + "rustc-hash 2.1.1", "slotmap", + "smallvec", "svg", ] +[[package]] +name = "path-bool-nodes" +version = "0.1.0" +dependencies = [ + "core-types", + "dyn-any", + "glam", + "graphic-types", + "log", + "node-macro", + "path-bool", + "serde", + "specta", + "vector-types", +] + [[package]] name = "pathdiff" version = "0.2.3" @@ -3842,20 +4272,21 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3" [[package]] name = "peniko" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f9529efd019889b2a205193c14ffb6e2839b54ed9d2720674f10f4b04d87ac9" +checksum = "b3c76095c9a636173600478e0373218c7b955335048c2bcd12dc6a79657649d8" dependencies = [ "color", - "kurbo", + "kurbo 0.12.0", + "linebender_resource_handle", "smallvec", ] [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" @@ -3864,7 +4295,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", - "thiserror 2.0.12", + "thiserror 2.0.16", "ucd-trie", ] @@ -3888,7 +4319,7 @@ dependencies = [ "pest_meta", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3918,9 +4349,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "54acf3a685220b533e437e264e4d932cfbdc4cc7ec0cd232ed73c08d03b8a7ca" dependencies = [ "fixedbitset", - "hashbrown", + "hashbrown 0.15.5", "indexmap", - "serde", ] [[package]] @@ -3929,6 +4359,17 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315" +[[package]] +name = "pidlock" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f837924d5368f9f35a1c404699de3c074311358035c77d7164f5948c08b31382" +dependencies = [ + "nix", + "thiserror 1.0.69", + "windows 0.62.2", +] + [[package]] name = "pin-project" version = "1.1.10" @@ -3946,7 +4387,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -3978,6 +4419,19 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "plist" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "740ebea15c5d1428f910cd1a5f52cebf8d25006245ed8ade92702f4943d91e07" +dependencies = [ + "base64", + "indexmap", + "quick-xml 0.38.3", + "serde", + "time", +] + [[package]] name = "plotters" version = "0.3.7" @@ -4021,17 +4475,16 @@ dependencies = [ [[package]] name = "polling" -version = "3.8.0" +version = "3.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50" +checksum = "b5bd19146350fe804f7cb2669c851c03d69da628803dab0d98018142aaa5d829" dependencies = [ "cfg-if", "concurrent-queue", "hermit-abi", "pin-project-lite", - "rustix 1.0.7", - "tracing", - "windows-sys 0.59.0", + "rustix", + "windows-sys 0.60.2", ] [[package]] @@ -4040,6 +4493,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2f3a9f18d041e6d0e102a0a46750538147e5e8992d3b4873aaafee2520b00ce3" +[[package]] +name = "polycool" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50596ddc09eb5ad5f75cacd40209568e66df71baf86e1499a0e99c4cff12a5a6" +dependencies = [ + "arrayvec", +] + [[package]] name = "portable-atomic" version = "1.11.1" @@ -4057,9 +4519,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" dependencies = [ "zerovec", ] @@ -4086,6 +4548,7 @@ dependencies = [ "graph-craft", "graphene-std", "interpreted-executor", + "log", ] [[package]] @@ -4113,30 +4576,6 @@ dependencies = [ "toml_edit", ] -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - [[package]] name = "proc-macro-error-attr2" version = "2.0.0" @@ -4156,14 +4595,14 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "proc-macro2" -version = "1.0.95" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] @@ -4184,7 +4623,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52717f9a02b6965224f95ca2a81e2e0c5c43baacd28ca057577988930b6c3d5b" dependencies = [ "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4212,10 +4651,19 @@ dependencies = [ ] [[package]] -name = "quinn" -version = "0.11.8" +name = "quick-xml" +version = "0.38.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +checksum = "42a232e7487fc2ef313d96dde7948e7a3c05101870d8985e4fd8d26aedd27b89" +dependencies = [ + "memchr", +] + +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" dependencies = [ "bytes", "cfg_aliases", @@ -4225,7 +4673,7 @@ dependencies = [ "rustc-hash 2.1.1", "rustls", "socket2", - "thiserror 2.0.12", + "thiserror 2.0.16", "tokio", "tracing", "web-time", @@ -4233,20 +4681,20 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.12" +version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ "bytes", "getrandom 0.3.3", "lru-slab", - "rand 0.9.1", + "rand 0.9.2", "ring", "rustc-hash 2.1.1", "rustls", "rustls-pki-types", "slab", - "thiserror 2.0.12", + "thiserror 2.0.16", "tinyvec", "tracing", "web-time", @@ -4254,16 +4702,16 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.13" +version = "0.5.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" dependencies = [ "cfg_aliases", "libc", "once_cell", "socket2", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -4294,9 +4742,9 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", "rand_core 0.9.3", @@ -4346,6 +4794,68 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3d6831663a5098ea164f89cff59c6284e95f4e3c76ce9848d4529f5ccca9bde" +[[package]] +name = "raster-nodes" +version = "0.1.0" +dependencies = [ + "bytemuck", + "core-types", + "dyn-any", + "fastnoise-lite", + "futures", + "glam", + "image", + "kurbo 0.12.0", + "ndarray", + "no-std-types", + "node-macro", + "num-traits", + "num_enum", + "rand 0.9.2", + "rand_chacha 0.9.0", + "raster-nodes-shaders", + "raster-types", + "serde", + "specta", + "spirv-std", + "tokio", + "vector-types", + "wgpu-executor", +] + +[[package]] +name = "raster-nodes-shaders" +version = "0.1.0" +dependencies = [ + "cargo-gpu", + "env_logger", + "log", +] + +[[package]] +name = "raster-nodes-shaders-entrypoint" +version = "0.1.0" +dependencies = [ + "raster-nodes", +] + +[[package]] +name = "raster-types" +version = "0.1.0" +dependencies = [ + "base64", + "bytemuck", + "core-types", + "dyn-any", + "glam", + "image", + "node-macro", + "serde", + "serde_json", + "specta", + "wgpu", +] + [[package]] name = "rav1e" version = "0.7.1" @@ -4396,6 +4906,12 @@ dependencies = [ "rgb", ] +[[package]] +name = "raw-string" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0501e134c6905fee1f10fed25b0a7e1261bf676cffac9543a7d0730dec01af2" + [[package]] name = "raw-window-handle" version = "0.6.2" @@ -4410,9 +4926,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" dependencies = [ "either", "rayon-core", @@ -4420,9 +4936,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.12.1" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" dependencies = [ "crossbeam-deque", "crossbeam-utils", @@ -4430,96 +4946,82 @@ dependencies = [ [[package]] name = "read-fonts" -version = "0.29.3" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04ca636dac446b5664bd16c069c00a9621806895b8bb02c2dc68542b23b8f25d" +checksum = "8941f8e9d5f8ad3aebea330d01ac68c0167600eb31a86ecd86e97be4d13b51f5" dependencies = [ "bytemuck", - "font-types", + "font-types 0.9.0", ] [[package]] name = "read-fonts" -version = "0.30.1" +version = "0.35.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "192735ef611aac958468e670cb98432c925426f3cb71521fda202130f7388d91" +checksum = "6717cf23b488adf64b9d711329542ba34de147df262370221940dfabc2c91358" dependencies = [ "bytemuck", - "font-types", + "core_maths", + "font-types 0.10.0", ] [[package]] name = "redox_syscall" -version = "0.4.1" +version = "0.5.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77" dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" -dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", ] [[package]] name = "redox_users" -version = "0.5.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd6f9d3d47bdd2ad6945c5015a226ec6155d0bcdfd8f7cd29f86b71f8de99d2b" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" dependencies = [ "getrandom 0.2.16", "libredox", - "thiserror 2.0.12", + "thiserror 2.0.16", ] [[package]] name = "regex" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" +checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", + "regex-automata", + "regex-syntax", ] [[package]] name = "regex-automata" -version = "0.1.10" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" +checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.5", + "regex-syntax", ] [[package]] name = "regex-syntax" -version = "0.6.29" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" +checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" [[package]] -name = "regex-syntax" -version = "0.8.5" +name = "relative-path" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" +checksum = "bca40a312222d8ba74837cb474edef44b37f561da5f773981007a10bbaa992b0" +dependencies = [ + "serde", +] [[package]] name = "renderdoc-sys" @@ -4528,12 +5030,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" [[package]] -name = "reqwest" -version = "0.12.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" +name = "rendering" +version = "0.1.0" dependencies = [ - "base64 0.22.1", + "base64", + "core-types", + "dyn-any", + "glam", + "graphic-types", + "kurbo 0.12.0", + "log", + "num-traits", + "serde", + "usvg 0.45.1", + "vector-types", + "vello", +] + +[[package]] +name = "reqwest" +version = "0.12.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb" +dependencies = [ + "base64", "bytes", "encoding_rs", "futures-channel", @@ -4570,7 +5090,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 1.0.1", + "webpki-roots", ] [[package]] @@ -4586,7 +5106,7 @@ dependencies = [ "rgb", "svgtypes", "tiny-skia", - "usvg", + "usvg 0.44.0", "zune-jpeg", ] @@ -4601,10 +5121,10 @@ dependencies = [ "dispatch2", "js-sys", "log", - "objc2 0.6.1", - "objc2-app-kit 0.3.1", + "objc2 0.6.3", + "objc2-app-kit 0.3.2", "objc2-core-foundation", - "objc2-foundation 0.3.1", + "objc2-foundation 0.3.2", "pollster", "raw-window-handle", "urlencoding", @@ -4616,9 +5136,9 @@ dependencies = [ [[package]] name = "rgb" -version = "0.8.51" +version = "0.8.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a457e416a0f90d246a4c3288bd7a25b2304ca727f253f95be383dd17af56be8f" +checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" dependencies = [ "bytemuck", ] @@ -4639,16 +5159,23 @@ dependencies = [ [[package]] name = "ron" -version = "0.8.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91f7eff05f748767f183df4320a63d6936e9c6107d97c9e6bdd9784f4289c94" +checksum = "db09040cc89e461f1a265139777a2bde7f8d8c67c4936f700c63ce3e2904d468" dependencies = [ - "base64 0.21.7", - "bitflags 2.9.1", + "base64", + "bitflags 2.9.3", "serde", "serde_derive", + "unicode-ident", ] +[[package]] +name = "roots" +version = "0.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "082f11ffa03bbef6c2c6ea6bea1acafaade2fd9050ae0234ab44a2153742b058" + [[package]] name = "roxmltree" version = "0.20.0" @@ -4656,10 +5183,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97" [[package]] -name = "rustc-demangle" -version = "0.1.25" +name = "rspirv" +version = "0.12.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" +checksum = "69cf3a93856b6e5946537278df0d3075596371b1950ccff012f02b0f7eafec8d" +dependencies = [ + "rustc-hash 1.1.0", + "spirv", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" [[package]] name = "rustc-hash" @@ -4674,36 +5211,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" +name = "rustc_codegen_spirv-target-specs" +version = "0.9.0" +source = "git+https://github.com/Rust-GPU/rust-gpu?rev=c12f216121820580731440ee79ebc7403d6ea04f#3f05f5482824e3b1fbb44c9ef90a8795a0204c7c" dependencies = [ - "bitflags 2.9.1", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", + "serde", + "strum", + "thiserror 2.0.16", +] + +[[package]] +name = "rustc_codegen_spirv-types" +version = "0.9.0" +source = "git+https://github.com/Rust-GPU/rust-gpu?rev=c12f216121820580731440ee79ebc7403d6ea04f#3f05f5482824e3b1fbb44c9ef90a8795a0204c7c" +dependencies = [ + "rspirv", + "serde", + "serde_json", + "spirv", ] [[package]] name = "rustix" -version = "1.0.7" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" +checksum = "11181fbabf243db407ef8df94a6ce0b2f9a733bd8be4ad02b4eda9602296cac8" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "errno", "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.59.0", + "linux-raw-sys", + "windows-sys 0.60.2", ] [[package]] name = "rustls" -version = "0.23.29" +version = "0.23.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2491382039b29b9b11ff08b76ff6c97cf287671dbb74f0be44bda389fffe9bd1" +checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc" dependencies = [ "log", "once_cell", @@ -4746,9 +5291,9 @@ dependencies = [ [[package]] name = "rustversion" -version = "1.0.21" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "rustybuzz" @@ -4756,14 +5301,32 @@ version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c85d1ccd519e61834798eb52c4e886e8c2d7d698dd3d6ce0b1b47eb8557f1181" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "bytemuck", "core_maths", "log", "smallvec", "ttf-parser 0.24.1", - "unicode-bidi-mirroring", - "unicode-ccc", + "unicode-bidi-mirroring 0.3.0", + "unicode-ccc 0.3.0", + "unicode-properties", + "unicode-script", +] + +[[package]] +name = "rustybuzz" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd3c7c96f8a08ee34eff8857b11b49b07d71d1c3f4e88f8a88d4c9e9f90b1702" +dependencies = [ + "bitflags 2.9.3", + "bytemuck", + "core_maths", + "log", + "smallvec", + "ttf-parser 0.25.1", + "unicode-bidi-mirroring 0.4.0", + "unicode-ccc 0.4.0", "unicode-properties", "unicode-script", ] @@ -4806,9 +5369,9 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "sctk-adwaita" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6277f0217056f77f1d8f49f2950ac6c278c0d607c45f5ee99328d792ede24ec" +checksum = "1dd3accc0f3f4bbaf2c9e1957a030dc582028130c67660d44c0a0345a22ca69b" dependencies = [ "ab_glyph", "log", @@ -4823,8 +5386,8 @@ version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ - "bitflags 2.9.1", - "core-foundation", + "bitflags 2.9.3", + "core-foundation 0.9.4", "core-foundation-sys", "libc", "security-framework-sys", @@ -4845,6 +5408,9 @@ name = "semver" version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" +dependencies = [ + "serde", +] [[package]] name = "serde" @@ -4855,6 +5421,27 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-untagged" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34836a629bcbc6f1afdf0907a744870039b1e14c0561cb26094fa683b158eff3" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float 2.10.1", + "serde", +] + [[package]] name = "serde-wasm-bindgen" version = "0.6.5" @@ -4874,14 +5461,14 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "serde_json" -version = "1.0.140" +version = "1.0.143" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" +checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a" dependencies = [ "itoa", "memchr", @@ -4897,7 +5484,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -4954,10 +5541,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] -name = "signal-hook-registry" -version = "1.4.5" +name = "signal-hook" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34db1a06d485c9142248b7a054f034b349b212551f3dfd19c94d45a754a217cd" +dependencies = [ + "libc", + "mio", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" dependencies = [ "libc", ] @@ -4994,29 +5602,29 @@ checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "skrifa" -version = "0.31.3" +version = "0.36.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbeb4ca4399663735553a09dd17ce7e49a0a0203f03b706b39628c4d913a8607" +checksum = "37004372610e83ee2a4c69c7d896b41f33da6a3dc1a4fe07dd9b2629a549b1dc" dependencies = [ "bytemuck", - "read-fonts 0.29.3", + "read-fonts 0.34.0", ] [[package]] name = "skrifa" -version = "0.32.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d632b5a73f566303dbeabd344dc3e716fd4ddc9a70d6fc8ea8e6f06617da97" +checksum = "8c31071dedf532758ecf3fed987cdb4bd9509f900e026ab684b4ecb81ea49841" dependencies = [ "bytemuck", - "read-fonts 0.30.1", + "read-fonts 0.35.0", ] [[package]] name = "slab" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "slotmap" @@ -5038,46 +5646,60 @@ dependencies = [ [[package]] name = "smithay-client-toolkit" -version = "0.19.2" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016" +checksum = "0512da38f5e2b31201a93524adb8d3136276fa4fe4aafab4e1f727a82b534cc0" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "calloop", "calloop-wayland-source", "cursor-icon", "libc", "log", "memmap2", - "rustix 0.38.44", - "thiserror 1.0.69", + "rustix", + "thiserror 2.0.16", "wayland-backend", "wayland-client", "wayland-csd-frame", "wayland-cursor", "wayland-protocols", + "wayland-protocols-experimental", + "wayland-protocols-misc", "wayland-protocols-wlr", "wayland-scanner", "xkeysym", ] [[package]] -name = "smol_str" -version = "0.2.2" +name = "smithay-clipboard" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd538fb6910ac1099850255cf94a94df6551fbdd602454387d0adb2d1ca6dead" +checksum = "71704c03f739f7745053bde45fa203a46c58d25bc5c4efba1d9a60e9dba81226" dependencies = [ + "libc", + "smithay-client-toolkit", + "wayland-backend", +] + +[[package]] +name = "smol_str" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9676b89cd56310a87b93dec47b11af744f34d5fc9f367b829474eec0a891350d" +dependencies = [ + "borsh", "serde", ] [[package]] name = "socket2" -version = "0.5.10" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5111,14 +5733,14 @@ dependencies = [ "Inflector", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "spin" -version = "0.9.8" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" +checksum = "d5fe4ccb98d9c292d56fec89a5e07da7fc4cf0dc11e156b41793132775d3e591" dependencies = [ "lock_api", ] @@ -5129,9 +5751,59 @@ version = "0.3.0+sdk-1.3.268.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", + "serde", ] +[[package]] +name = "spirv-builder" +version = "0.9.0" +source = "git+https://github.com/Rust-GPU/rust-gpu?rev=c12f216121820580731440ee79ebc7403d6ea04f#3f05f5482824e3b1fbb44c9ef90a8795a0204c7c" +dependencies = [ + "cargo_metadata", + "clap", + "log", + "memchr", + "notify", + "raw-string", + "rustc_codegen_spirv-target-specs", + "rustc_codegen_spirv-types", + "semver", + "serde", + "serde_json", + "thiserror 2.0.16", +] + +[[package]] +name = "spirv-std" +version = "0.9.0" +source = "git+https://github.com/Firestar99/rust-gpu-new?rev=c12f216121820580731440ee79ebc7403d6ea04f#c12f216121820580731440ee79ebc7403d6ea04f" +dependencies = [ + "bitflags 1.3.2", + "bytemuck", + "glam", + "libm", + "num-traits", + "spirv-std-macros", + "spirv-std-types", +] + +[[package]] +name = "spirv-std-macros" +version = "0.9.0" +source = "git+https://github.com/Firestar99/rust-gpu-new?rev=c12f216121820580731440ee79ebc7403d6ea04f#c12f216121820580731440ee79ebc7403d6ea04f" +dependencies = [ + "proc-macro2", + "quote", + "spirv-std-types", + "syn 2.0.106", +] + +[[package]] +name = "spirv-std-types" +version = "0.9.0" +source = "git+https://github.com/Firestar99/rust-gpu-new?rev=c12f216121820580731440ee79ebc7403d6ea04f#c12f216121820580731440ee79ebc7403d6ea04f" + [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -5161,24 +5833,23 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "strum" -version = "0.26.3" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" dependencies = [ "strum_macros", ] [[package]] name = "strum_macros" -version = "0.26.4" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" dependencies = [ "heck", "proc-macro2", "quote", - "rustversion", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5205,17 +5876,17 @@ version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68c7541fff44b35860c1a7a47a7cadf3e4a304c457b58f9870d9706ece028afc" dependencies = [ - "kurbo", + "kurbo 0.11.3", "siphasher", ] [[package]] name = "swash" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f745de914febc7c9ab4388dfaf94bbc87e69f57bb41133a9b0c84d4be49856f3" +checksum = "47846491253e976bdd07d0f9cc24b7daf24720d11309302ccbbc6e6b6e53550a" dependencies = [ - "skrifa 0.31.3", + "skrifa 0.37.0", "yazi", "zeno", ] @@ -5233,9 +5904,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.104" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -5259,7 +5930,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5268,8 +5939,8 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" dependencies = [ - "bitflags 2.9.1", - "core-foundation", + "bitflags 2.9.3", + "core-foundation 0.9.4", "system-configuration-sys", ] @@ -5292,7 +5963,7 @@ dependencies = [ "cfg-expr", "heck", "pkg-config", - "toml", + "toml 0.8.23", "version-compare", ] @@ -5315,15 +5986,15 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.20.0" +version = "3.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a64e3985349f2441a1a9ef0b853f869006c3855f2cda6862a94d26ebb9d6a1" +checksum = "15b61f8f20e3a6f7e0649d825294eaf317edce30f82cf6026e7e4cb9222a7d1e" dependencies = [ "fastrand", "getrandom 0.3.3", "once_cell", - "rustix 1.0.7", - "windows-sys 0.59.0", + "rustix", + "windows-sys 0.60.2", ] [[package]] @@ -5335,6 +6006,21 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "text-nodes" +version = "0.1.0" +dependencies = [ + "core-types", + "dyn-any", + "glam", + "log", + "node-macro", + "parley", + "serde", + "skrifa 0.36.0", + "vector-types", +] + [[package]] name = "thiserror" version = "1.0.69" @@ -5346,11 +6032,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" +checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" dependencies = [ - "thiserror-impl 2.0.12", + "thiserror-impl 2.0.16", ] [[package]] @@ -5361,18 +6047,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "thiserror-impl" -version = "2.0.12" +version = "2.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5452,15 +6138,6 @@ dependencies = [ "strict-num", ] -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", -] - [[package]] name = "tinystr" version = "0.8.1" @@ -5483,9 +6160,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" dependencies = [ "tinyvec_macros", ] @@ -5498,9 +6175,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.46.1" +version = "1.47.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" +checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" dependencies = [ "backtrace", "bytes", @@ -5511,7 +6188,7 @@ dependencies = [ "slab", "socket2", "tokio-macros", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5522,7 +6199,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5547,9 +6224,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.15" +version = "0.7.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" dependencies = [ "bytes", "futures-core", @@ -5558,6 +6235,15 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + [[package]] name = "toml" version = "0.8.23" @@ -5589,9 +6275,16 @@ dependencies = [ "serde", "serde_spanned", "toml_datetime", + "toml_write", "winnow", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tower" version = "0.5.2" @@ -5613,7 +6306,7 @@ version = "0.6.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "bytes", "futures-util", "http", @@ -5643,6 +6336,7 @@ version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -5656,7 +6350,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -5682,14 +6376,14 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "matchers", "nu-ansi-term", "once_cell", - "regex", + "regex-automata", "sharded-slab", "smallvec", "thread_local", @@ -5698,6 +6392,18 @@ dependencies = [ "tracing-log", ] +[[package]] +name = "transform-nodes" +version = "0.1.0" +dependencies = [ + "core-types", + "glam", + "graphic-types", + "node-macro", + "serde", + "vector-types", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -5718,6 +6424,15 @@ name = "ttf-parser" version = "0.25.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2df906b07856748fa3f6e0ad0cbaa047052d4a7dd609e231c4f72cee8c36f31" +dependencies = [ + "core_maths", +] + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" [[package]] name = "typenum" @@ -5754,12 +6469,24 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "64af057ad7466495ca113126be61838d8af947f41d93a949980b2389a118082f" +[[package]] +name = "unicode-bidi-mirroring" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfa6e8c60bb66d49db113e0125ee8711b7647b5579dc7f5f19c42357ed039fe" + [[package]] name = "unicode-ccc" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "260bc6647b3893a9a90668360803a15f96b85a5257b1c3a0c3daf6ae2496de42" +[[package]] +name = "unicode-ccc" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce61d488bcdc9bc8b5d1772c404828b17fc481c0a582b5581e95fb233aef503e" + [[package]] name = "unicode-ident" version = "1.0.18" @@ -5796,6 +6523,12 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a1a07cc7db3810833284e8d372ccdc6da29741639ecc70c9ec107df0fa6154c" +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + [[package]] name = "unit-prefix" version = "0.5.1" @@ -5810,11 +6543,11 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "3.0.12" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f0fde9bc91026e381155f8c67cb354bcd35260b2f4a29bcc84639f762760c39" +checksum = "00432f493971db5d8e47a65aeb3b02f8226b9b11f1450ff86bb772776ebadd70" dependencies = [ - "base64 0.22.1", + "base64", "cookie_store", "flate2", "log", @@ -5827,16 +6560,16 @@ dependencies = [ "socks", "ureq-proto", "utf-8", - "webpki-roots 0.26.11", + "webpki-roots", ] [[package]] name = "ureq-proto" -version = "0.4.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59db78ad1923f2b1be62b6da81fe80b173605ca0d57f85da2e005382adf693f7" +checksum = "bbe120bb823a0061680e66e9075942fcdba06d46551548c2c259766b9558bc9a" dependencies = [ - "base64 0.22.1", + "base64", "http", "httparse", "log", @@ -5844,9 +6577,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -5866,16 +6599,43 @@ version = "0.44.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7447e703d7223b067607655e625e0dbca80822880248937da65966194c4864e6" dependencies = [ - "base64 0.22.1", + "base64", "data-url", "flate2", - "fontdb", + "fontdb 0.22.0", "imagesize", - "kurbo", + "kurbo 0.11.3", "log", "pico-args", "roxmltree", - "rustybuzz", + "rustybuzz 0.18.0", + "simplecss", + "siphasher", + "strict-num", + "svgtypes", + "tiny-skia-path", + "unicode-bidi", + "unicode-script", + "unicode-vo", + "xmlwriter", +] + +[[package]] +name = "usvg" +version = "0.45.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80be9b06fbae3b8b303400ab20778c80bbaf338f563afe567cf3c9eea17b47ef" +dependencies = [ + "base64", + "data-url", + "flate2", + "fontdb 0.23.0", + "imagesize", + "kurbo 0.11.3", + "log", + "pico-args", + "roxmltree", + "rustybuzz 0.20.1", "simplecss", "siphasher", "strict-num", @@ -5928,19 +6688,62 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vector-nodes" +version = "0.1.0" +dependencies = [ + "core-types", + "dyn-any", + "futures", + "glam", + "graphene-core", + "graphic-types", + "kurbo 0.12.0", + "log", + "node-macro", + "rand 0.9.2", + "rustc-hash 2.1.1", + "serde", + "tokio", + "vector-types", +] + +[[package]] +name = "vector-types" +version = "0.1.0" +dependencies = [ + "bitflags 2.9.3", + "bytemuck", + "core-types", + "dyn-any", + "fixedbitset", + "glam", + "kurbo 0.12.0", + "log", + "lyon_geom", + "node-macro", + "num-traits", + "petgraph 0.7.1", + "polycool", + "rustc-hash 2.1.1", + "serde", + "specta", + "tinyvec", +] + [[package]] name = "vello" -version = "0.5.0" -source = "git+https://github.com/linebender/vello.git#87cc5bee6d3a34d15017dbbb58634ddc7f33ff9b" +version = "0.6.0" +source = "git+https://github.com/linebender/vello#8f2f2564127812362d2c57ded20cad369e3a00fe" dependencies = [ "bytemuck", "futures-intrusive", "log", "peniko", "png", - "skrifa 0.31.3", + "skrifa 0.37.0", "static_assertions", - "thiserror 2.0.12", + "thiserror 2.0.16", "vello_encoding", "vello_shaders", "wgpu", @@ -5948,25 +6751,25 @@ dependencies = [ [[package]] name = "vello_encoding" -version = "0.5.0" -source = "git+https://github.com/linebender/vello.git#87cc5bee6d3a34d15017dbbb58634ddc7f33ff9b" +version = "0.6.0" +source = "git+https://github.com/linebender/vello#8f2f2564127812362d2c57ded20cad369e3a00fe" dependencies = [ "bytemuck", "guillotiere", "peniko", - "skrifa 0.31.3", + "skrifa 0.37.0", "smallvec", ] [[package]] name = "vello_shaders" -version = "0.5.0" -source = "git+https://github.com/linebender/vello.git#87cc5bee6d3a34d15017dbbb58634ddc7f33ff9b" +version = "0.6.0" +source = "git+https://github.com/linebender/vello#8f2f2564127812362d2c57ded20cad369e3a00fe" dependencies = [ "bytemuck", "log", - "naga", - "thiserror 2.0.12", + "naga 26.0.0", + "thiserror 2.0.16", "vello_encoding", ] @@ -6009,11 +6812,11 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasi" -version = "0.14.2+wasi-0.2.4" +version = "0.14.3+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" +checksum = "6a51ae83037bdd272a9e28ce236db8c07016dd0d50c27038b3f407533c030c95" dependencies = [ - "wit-bindgen-rt", + "wit-bindgen", ] [[package]] @@ -6038,7 +6841,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "wasm-bindgen-shared", ] @@ -6073,7 +6876,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6089,13 +6892,13 @@ dependencies = [ [[package]] name = "wayland-backend" -version = "0.3.10" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe770181423e5fc79d3e2a7f4410b7799d5aab1de4372853de3c6aa13ca24121" +checksum = "673a33c33048a5ade91a6b139580fa174e19fb0d23f396dca9fa15f2e1e49b35" dependencies = [ "cc", "downcast-rs", - "rustix 0.38.44", + "rustix", "scoped-tls", "smallvec", "wayland-sys", @@ -6103,12 +6906,12 @@ dependencies = [ [[package]] name = "wayland-client" -version = "0.31.10" +version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978fa7c67b0847dbd6a9f350ca2569174974cd4082737054dbb7fbb79d7d9a61" +checksum = "c66a47e840dc20793f2264eb4b3e4ecb4b75d91c0dd4af04b456128e0bdd449d" dependencies = [ - "bitflags 2.9.1", - "rustix 0.38.44", + "bitflags 2.9.3", + "rustix", "wayland-backend", "wayland-scanner", ] @@ -6119,41 +6922,67 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "cursor-icon", "wayland-backend", ] [[package]] name = "wayland-cursor" -version = "0.31.10" +version = "0.31.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a65317158dec28d00416cb16705934070aef4f8393353d41126c54264ae0f182" +checksum = "447ccc440a881271b19e9989f75726d60faa09b95b0200a9b7eb5cc47c3eeb29" dependencies = [ - "rustix 0.38.44", + "rustix", "wayland-client", "xcursor", ] [[package]] name = "wayland-protocols" -version = "0.32.8" +version = "0.32.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779075454e1e9a521794fed15886323ea0feda3f8b0fc1390f5398141310422a" +checksum = "efa790ed75fbfd71283bd2521a1cfdc022aabcc28bdcff00851f9e4ae88d9901" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "wayland-backend", "wayland-client", "wayland-scanner", ] [[package]] -name = "wayland-protocols-plasma" -version = "0.3.8" +name = "wayland-protocols-experimental" +version = "20250721.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fd38cdad69b56ace413c6bcc1fbf5acc5e2ef4af9d5f8f1f9570c0c83eae175" +checksum = "40a1f863128dcaaec790d7b4b396cc9b9a7a079e878e18c47e6c2d2c5a8dcbb1" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-misc" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfe33d551eb8bffd03ff067a8b44bb963919157841a99957151299a6307d19c" +dependencies = [ + "bitflags 2.9.3", + "wayland-backend", + "wayland-client", + "wayland-protocols", + "wayland-scanner", +] + +[[package]] +name = "wayland-protocols-plasma" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a07a14257c077ab3279987c4f8bb987851bf57081b93710381daea94f2c2c032" +dependencies = [ + "bitflags 2.9.3", "wayland-backend", "wayland-client", "wayland-protocols", @@ -6162,11 +6991,11 @@ dependencies = [ [[package]] name = "wayland-protocols-wlr" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cb6cdc73399c0e06504c437fe3cf886f25568dd5454473d565085b36d6a8bbf" +checksum = "efd94963ed43cf9938a090ca4f7da58eb55325ec8200c3848963e98dc25b78ec" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "wayland-backend", "wayland-client", "wayland-protocols", @@ -6175,20 +7004,20 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.31.6" +version = "0.31.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "896fdafd5d28145fce7958917d69f2fd44469b1d4e861cb5961bcbeebc6d1484" +checksum = "54cb1e9dc49da91950bdfd8b848c49330536d9d1fb03d4bfec8cae50caa50ae3" dependencies = [ "proc-macro2", - "quick-xml", + "quick-xml 0.37.5", "quote", ] [[package]] name = "wayland-sys" -version = "0.31.6" +version = "0.31.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbcebb399c77d5aa9fa5db874806ee7b4eba4e73650948e8f93963f128896615" +checksum = "34949b42822155826b41db8e5d0c1be3a2bd296c747577a43a3e6daefc296142" dependencies = [ "dlib", "log", @@ -6218,18 +7047,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.11" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" -dependencies = [ - "webpki-roots 1.0.1", -] - -[[package]] -name = "webpki-roots" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8782dd5a41a24eed3a4f40b606249b3e236ca61adf1f25ea4d45c73de122b502" +checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2" dependencies = [ "rustls-pki-types", ] @@ -6242,18 +7062,19 @@ checksum = "a751b3277700db47d3e574514de2eced5e54dc8a5436a3bf7a0b248b2cee16f3" [[package]] name = "wgpu" -version = "25.0.2" +version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec8fb398f119472be4d80bc3647339f56eb63b2a331f6a3d16e25d8144197dd9" +checksum = "bfe68bac7cde125de7a731c3400723cadaaf1703795ad3f4805f187459cd7a77" dependencies = [ "arrayvec", - "bitflags 2.9.1", + "bitflags 2.9.3", + "cfg-if", "cfg_aliases", "document-features", - "hashbrown", + "hashbrown 0.16.0", "js-sys", "log", - "naga", + "naga 27.0.3", "parking_lot", "portable-atomic", "profiling", @@ -6270,21 +7091,21 @@ dependencies = [ [[package]] name = "wgpu-core" -version = "25.0.2" +version = "27.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7b882196f8368511d613c6aeec80655160db6646aebddf8328879a88d54e500" +checksum = "27a75de515543b1897b26119f93731b385a19aea165a1ec5f0e3acecc229cae7" dependencies = [ "arrayvec", "bit-set", "bit-vec", - "bitflags 2.9.1", + "bitflags 2.9.3", "bytemuck", "cfg_aliases", "document-features", - "hashbrown", + "hashbrown 0.16.0", "indexmap", "log", - "naga", + "naga 27.0.3", "once_cell", "parking_lot", "portable-atomic", @@ -6292,7 +7113,7 @@ dependencies = [ "raw-window-handle", "rustc-hash 1.1.0", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", "wgpu-core-deps-apple", "wgpu-core-deps-emscripten", "wgpu-core-deps-windows-linux-android", @@ -6302,27 +7123,27 @@ dependencies = [ [[package]] name = "wgpu-core-deps-apple" -version = "25.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfd488b3239b6b7b185c3b045c39ca6bf8af34467a4c5de4e0b1a564135d093d" +checksum = "0772ae958e9be0c729561d5e3fd9a19679bcdfb945b8b1a1969d9bfe8056d233" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-emscripten" -version = "25.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f09ad7aceb3818e52539acc679f049d3475775586f3f4e311c30165cf2c00445" +checksum = "b06ac3444a95b0813ecfd81ddb2774b66220b264b3e2031152a4a29fda4da6b5" dependencies = [ "wgpu-hal", ] [[package]] name = "wgpu-core-deps-windows-linux-android" -version = "25.0.0" +version = "27.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cba5fb5f7f9c98baa7c889d444f63ace25574833df56f5b817985f641af58e46" +checksum = "71197027d61a71748e4120f05a9242b2ad142e3c01f8c1b47707945a879a03c3" dependencies = [ "wgpu-hal", ] @@ -6333,13 +7154,14 @@ version = "0.1.0" dependencies = [ "anyhow", "bytemuck", + "core-types", "dyn-any", "futures", "glam", "graphene-application-io", - "graphene-core", - "graphene-svg-renderer", "node-macro", + "raster-types", + "rendering", "vello", "web-sys", "wgpu", @@ -6348,15 +7170,15 @@ dependencies = [ [[package]] name = "wgpu-hal" -version = "25.0.2" +version = "27.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f968767fe4d3d33747bbd1473ccd55bf0f6451f55d733b5597e67b5deab4ad17" +checksum = "5b21cb61c57ee198bc4aff71aeadff4cbb80b927beb912506af9c780d64313ce" dependencies = [ "android_system_properties", "arrayvec", "ash", "bit-set", - "bitflags 2.9.1", + "bitflags 2.9.3", "block", "bytemuck", "cfg-if", @@ -6367,43 +7189,45 @@ dependencies = [ "gpu-alloc", "gpu-allocator", "gpu-descriptor", - "hashbrown", + "hashbrown 0.16.0", "js-sys", "khronos-egl", "libc", - "libloading", + "libloading 0.8.8", "log", "metal", - "naga", - "ndk-sys 0.5.0+25.2.9519653", + "naga 27.0.3", + "ndk-sys", "objc", - "ordered-float", + "once_cell", + "ordered-float 4.6.0", "parking_lot", "portable-atomic", + "portable-atomic-util", "profiling", "range-alloc", "raw-window-handle", "renderdoc-sys", "smallvec", - "thiserror 2.0.12", + "thiserror 2.0.16", "wasm-bindgen", "web-sys", "wgpu-types", - "windows", + "windows 0.58.0", "windows-core 0.58.0", ] [[package]] name = "wgpu-types" -version = "25.0.0" +version = "27.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aa49460c2a8ee8edba3fca54325540d904dd85b2e086ada762767e17d06e8bc" +checksum = "afdcf84c395990db737f2dd91628706cb31e86d72e53482320d368e52b5da5eb" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "bytemuck", "js-sys", "log", - "thiserror 2.0.12", + "thiserror 2.0.16", "web-sys", ] @@ -6425,11 +7249,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +checksum = "0978bf7171b3d90bac376700cb56d606feb40f251a475a5d6634613564460b22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -6438,6 +7262,20 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "window_clipboard" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5793d0b08c9e6a1240fe9ab2bd8db277487bf92436fd1a6321861a90a1b0cb7e" +dependencies = [ + "clipboard-win", + "clipboard_macos", + "clipboard_wayland", + "clipboard_x11", + "raw-window-handle", + "thiserror 1.0.69", +] + [[package]] name = "windows" version = "0.58.0" @@ -6448,6 +7286,27 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "527fadee13e0c05939a6a05d5bd6eec6cd2e3dbd648b9f8e447c6518133d8580" +dependencies = [ + "windows-collections", + "windows-core 0.62.2", + "windows-future", + "windows-numerics", +] + +[[package]] +name = "windows-collections" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b2d95af1a8a14a3c7367e1ed4fc9c20e0a26e79551b1454d72583c97cc6610" +dependencies = [ + "windows-core 0.62.2", +] + [[package]] name = "windows-core" version = "0.58.0" @@ -6467,13 +7326,37 @@ version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", - "windows-link", + "windows-implement 0.60.2", + "windows-interface 0.59.3", + "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", ] +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement 0.60.2", + "windows-interface 0.59.3", + "windows-link 0.2.1", + "windows-result 0.4.1", + "windows-strings 0.5.1", +] + +[[package]] +name = "windows-future" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d6f90251fe18a279739e78025bd6ddc52a7e22f921070ccdc67dde84c605cb" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", + "windows-threading", +] + [[package]] name = "windows-implement" version = "0.58.0" @@ -6482,18 +7365,18 @@ checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "windows-implement" -version = "0.60.0" +version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6504,18 +7387,18 @@ checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] name = "windows-interface" -version = "0.59.1" +version = "0.59.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -6524,13 +7407,29 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-numerics" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e2e40844ac143cdb44aead537bbf727de9b044e107a0f1220392177d15b0f26" +dependencies = [ + "windows-core 0.62.2", + "windows-link 0.2.1", +] + [[package]] name = "windows-registry" version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b8a9ed28765efc97bbc954883f4e6796c33a06546ebafacbabee9696967499e" dependencies = [ - "windows-link", + "windows-link 0.1.3", "windows-result 0.3.4", "windows-strings 0.4.2", ] @@ -6550,7 +7449,16 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" dependencies = [ - "windows-link", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link 0.2.1", ] [[package]] @@ -6569,7 +7477,16 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" dependencies = [ - "windows-link", + "windows-link 0.1.3", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link 0.2.1", ] [[package]] @@ -6605,7 +7522,16 @@ version = "0.60.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" dependencies = [ - "windows-targets 0.53.2", + "windows-targets 0.53.3", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link 0.2.1", ] [[package]] @@ -6623,21 +7549,6 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - [[package]] name = "windows-targets" version = "0.52.6" @@ -6656,10 +7567,11 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.2" +version = "0.53.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +checksum = "d5fe6031c4041849d7c496a8ded650796e7b6ecc19df1a431c1a363342e5dc91" dependencies = [ + "windows-link 0.1.3", "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", "windows_i686_gnu 0.53.0", @@ -6670,18 +7582,21 @@ dependencies = [ "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows-threading" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3949bd5b99cafdf1c7ca86b43ca564028dfe27d66958f2470940f73d86d75b37" +dependencies = [ + "windows-link 0.2.1", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -6700,12 +7615,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -6724,12 +7633,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -6760,12 +7663,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -6784,12 +7681,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -6808,12 +7699,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -6832,12 +7717,6 @@ version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - [[package]] name = "windows_x86_64_msvc" version = "0.52.6" @@ -6852,52 +7731,216 @@ checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" [[package]] name = "winit" -version = "0.30.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4409c10174df8779dc29a4788cac85ed84024ccbc1743b776b21a520ee1aaf4" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" dependencies = [ - "ahash", - "android-activity", - "atomic-waker", - "bitflags 2.9.1", - "block2 0.5.1", - "bytemuck", - "calloop", + "bitflags 2.9.3", "cfg_aliases", - "concurrent-queue", - "core-foundation", - "core-graphics", "cursor-icon", "dpi", - "js-sys", + "libc", + "raw-window-handle", + "rustix", + "serde", + "smol_str", + "tracing", + "winit-android", + "winit-appkit", + "winit-common", + "winit-core", + "winit-orbital", + "winit-uikit", + "winit-wayland", + "winit-web", + "winit-win32", + "winit-x11", +] + +[[package]] +name = "winit-android" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" +dependencies = [ + "android-activity", + "bitflags 2.9.3", + "dpi", + "ndk", + "raw-window-handle", + "smol_str", + "tracing", + "winit-core", +] + +[[package]] +name = "winit-appkit" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" +dependencies = [ + "bitflags 2.9.3", + "block2 0.6.1", + "dispatch2", + "dpi", + "objc2 0.6.3", + "objc2-app-kit 0.3.2", + "objc2-core-foundation", + "objc2-core-graphics", + "objc2-core-video", + "objc2-foundation 0.3.2", + "raw-window-handle", + "smol_str", + "tracing", + "winit-common", + "winit-core", +] + +[[package]] +name = "winit-common" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" +dependencies = [ + "memmap2", + "objc2 0.6.3", + "objc2-core-foundation", + "smol_str", + "tracing", + "winit-core", + "x11-dl", + "xkbcommon-dl", +] + +[[package]] +name = "winit-core" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" +dependencies = [ + "bitflags 2.9.3", + "cursor-icon", + "dpi", + "keyboard-types", + "raw-window-handle", + "serde", + "smol_str", + "web-time", +] + +[[package]] +name = "winit-orbital" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" +dependencies = [ + "bitflags 2.9.3", + "dpi", + "orbclient", + "raw-window-handle", + "redox_syscall", + "smol_str", + "tracing", + "winit-core", +] + +[[package]] +name = "winit-uikit" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" +dependencies = [ + "bitflags 2.9.3", + "block2 0.6.1", + "dispatch2", + "dpi", + "objc2 0.6.3", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "objc2-ui-kit", + "raw-window-handle", + "serde", + "smol_str", + "tracing", + "winit-common", + "winit-core", +] + +[[package]] +name = "winit-wayland" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" +dependencies = [ + "ahash", + "bitflags 2.9.3", + "calloop", + "cursor-icon", + "dpi", "libc", "memmap2", - "ndk", - "objc2 0.5.2", - "objc2-app-kit 0.2.2", - "objc2-foundation 0.2.2", - "objc2-ui-kit", - "orbclient", - "percent-encoding", - "pin-project", "raw-window-handle", - "redox_syscall 0.4.1", - "rustix 0.38.44", + "rustix", "sctk-adwaita", - "serde", "smithay-client-toolkit", "smol_str", "tracing", - "unicode-segmentation", - "wasm-bindgen", - "wasm-bindgen-futures", "wayland-backend", "wayland-client", "wayland-protocols", "wayland-protocols-plasma", + "winit-common", + "winit-core", +] + +[[package]] +name = "winit-web" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" +dependencies = [ + "atomic-waker", + "bitflags 2.9.3", + "concurrent-queue", + "cursor-icon", + "dpi", + "js-sys", + "pin-project", + "raw-window-handle", + "smol_str", + "tracing", + "wasm-bindgen", + "wasm-bindgen-futures", "web-sys", "web-time", - "windows-sys 0.52.0", + "winit-core", +] + +[[package]] +name = "winit-win32" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" +dependencies = [ + "bitflags 2.9.3", + "cursor-icon", + "dpi", + "raw-window-handle", + "smol_str", + "tracing", + "unicode-segmentation", + "windows-sys 0.59.0", + "winit-core", +] + +[[package]] +name = "winit-x11" +version = "0.30.12" +source = "git+https://github.com/rust-windowing/winit.git#bd6fef1d80ba063cbe91e150b3fb343927cdc72b" +dependencies = [ + "bitflags 2.9.3", + "bytemuck", + "calloop", + "cursor-icon", + "dpi", + "libc", + "percent-encoding", + "raw-window-handle", + "rustix", + "smol_str", + "tracing", + "winit-common", + "winit-core", "x11-dl", "x11rb", "xkbcommon-dl", @@ -6905,27 +7948,27 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.12" +version = "0.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" +checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" dependencies = [ "memchr", ] [[package]] -name = "wit-bindgen-rt" -version = "0.39.0" +name = "winres" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" +checksum = "b68db261ef59e9e52806f688020631e987592bd83619edccda9c47d42cde4f6c" dependencies = [ - "bitflags 2.9.1", + "toml 0.5.11", ] [[package]] -name = "writeable" -version = "0.5.5" +name = "wit-bindgen" +version = "0.45.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "052283831dbae3d879dc7f51f3d92703a316ca49f91540417d38591826127814" [[package]] name = "writeable" @@ -6946,24 +7989,25 @@ dependencies = [ [[package]] name = "x11rb" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12" +checksum = "9993aa5be5a26815fe2c3eacfc1fde061fc1a1f094bf1ad2a18bf9c495dd7414" dependencies = [ "as-raw-xcb-connection", "gethostname", "libc", - "libloading", + "libloading 0.8.8", "once_cell", - "rustix 0.38.44", + "rustix", "x11rb-protocol", + "xcursor", ] [[package]] name = "x11rb-protocol" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d" +checksum = "ea6fc2961e4ef194dcbfe56bb845534d0dc8098940c7e5c012a258bfec6701bd" [[package]] name = "xattr" @@ -6972,7 +8016,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", - "rustix 1.0.7", + "rustix", ] [[package]] @@ -6987,7 +8031,7 @@ version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5" dependencies = [ - "bitflags 2.9.1", + "bitflags 2.9.3", "dlib", "log", "once_cell", @@ -7024,6 +8068,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01738255b5a16e78bbb83e7fbba0a1e7dd506905cfc53f4622d89015a03fbb5" +[[package]] +name = "yeslogic-fontconfig-sys" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "503a066b4c037c440169d995b869046827dbc71263f6e8f3be6d77d4f3229dbd" +dependencies = [ + "dlib", + "once_cell", + "pkg-config", +] + [[package]] name = "yoke" version = "0.8.0" @@ -7044,15 +8099,15 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] [[package]] name = "zbus" -version = "5.9.0" +version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bb4f9a464286d42851d18a605f7193b8febaf5b0919d71c6399b7b26e5b0aad" +checksum = "67a073be99ace1adc48af593701c8015cd9817df372e14a1a6b0ee8f8bf043be" dependencies = [ "async-broadcast", "async-executor", @@ -7074,7 +8129,7 @@ dependencies = [ "serde_repr", "tracing", "uds_windows", - "windows-sys 0.59.0", + "windows-sys 0.60.2", "winnow", "zbus_macros", "zbus_names", @@ -7083,14 +8138,14 @@ dependencies = [ [[package]] name = "zbus_macros" -version = "5.9.0" +version = "5.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef9859f68ee0c4ee2e8cde84737c78e3f4c54f946f2a38645d0d4c7a95327659" +checksum = "0e80cd713a45a49859dcb648053f63265f4f2851b6420d47a958e5697c68b131" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "zbus_names", "zvariant", "zvariant_utils", @@ -7131,7 +8186,7 @@ checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -7151,7 +8206,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "synstructure", ] @@ -7174,9 +8229,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.2" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", @@ -7191,7 +8246,7 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", ] [[package]] @@ -7211,18 +8266,18 @@ dependencies = [ [[package]] name = "zune-jpeg" -version = "0.4.19" +version = "0.4.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9e525af0a6a658e031e95f14b7f889976b74a11ba0eca5a5fc9ac8a1c43a6a" +checksum = "fc1f7e205ce79eb2da3cd71c5f55f3589785cb7c79f6a03d1c8d1491bda5d089" dependencies = [ "zune-core", ] [[package]] name = "zvariant" -version = "5.6.0" +version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91b3680bb339216abd84714172b5138a4edac677e641ef17e1d8cb1b3ca6e6f" +checksum = "999dd3be73c52b1fccd109a4a81e4fcd20fab1d3599c8121b38d04e1419498db" dependencies = [ "endi", "enumflags2", @@ -7235,27 +8290,26 @@ dependencies = [ [[package]] name = "zvariant_derive" -version = "5.6.0" +version = "5.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8c68501be459a8dbfffbe5d792acdd23b4959940fc87785fb013b32edbc208" +checksum = "6643fd0b26a46d226bd90d3f07c1b5321fe9bb7f04673cb37ac6d6883885b68e" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.104", + "syn 2.0.106", "zvariant_utils", ] [[package]] name = "zvariant_utils" -version = "3.2.0" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e16edfee43e5d7b553b77872d99bc36afdda75c223ca7ad5e3fbecd82ca5fc34" +checksum = "c6949d142f89f6916deca2232cf26a8afacf2b9fdc35ce766105e104478be599" dependencies = [ "proc-macro2", "quote", "serde", - "static_assertions", - "syn 2.0.104", + "syn 2.0.106", "winnow", ] diff --git a/Cargo.toml b/Cargo.toml index f6dc8df0f..1a7fbd44b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,72 +1,132 @@ [workspace] members = [ - "editor", "desktop", - "proc-macros", + "desktop/wrapper", + "desktop/embedded-resources", + "desktop/bundle", + "desktop/platform/linux", + "desktop/platform/mac", + "desktop/platform/win", + "editor", "frontend/wasm", - "node-graph/gapplication-io", - "node-graph/gbrush", - "node-graph/gcore", - "node-graph/gcore-shaders", - "node-graph/gstd", - "node-graph/gmath-nodes", - "node-graph/gpath-bool", + "libraries/dyn-any", + "libraries/path-bool", + "libraries/math-parser", + "node-graph/libraries/application-io", + "node-graph/libraries/core-types", + "node-graph/libraries/no-std-types", + "node-graph/libraries/raster-types", + "node-graph/libraries/vector-types", + "node-graph/libraries/graphic-types", + "node-graph/libraries/rendering", + "node-graph/libraries/wgpu-executor", + "node-graph/nodes/blending", + "node-graph/nodes/brush", + "node-graph/nodes/gcore", + "node-graph/nodes/graphic", + "node-graph/nodes/math", + "node-graph/nodes/path-bool", + "node-graph/nodes/raster", + "node-graph/nodes/raster/shaders", + "node-graph/nodes/raster/shaders/entrypoint", + "node-graph/nodes/text", + "node-graph/nodes/transform", + "node-graph/nodes/vector", "node-graph/graph-craft", "node-graph/graphene-cli", - "node-graph/graster-nodes", - "node-graph/gsvg-renderer", + "node-graph/nodes/gstd", "node-graph/interpreted-executor", "node-graph/node-macro", "node-graph/preprocessor", - "libraries/dyn-any", - "libraries/path-bool", - "libraries/bezier-rs", - "libraries/math-parser", - "website/other/bezier-rs-demos/wasm", + "proc-macros", + "tools/crate-hierarchy-viz" ] default-members = [ "editor", "frontend/wasm", - "node-graph/gbrush", - "node-graph/gcore", - "node-graph/gcore-shaders", - "node-graph/gstd", - "node-graph/gmath-nodes", - "node-graph/gpath-bool", + "libraries/dyn-any", + "libraries/path-bool", + "libraries/math-parser", + "node-graph/libraries/application-io", + "node-graph/libraries/core-types", + "node-graph/libraries/no-std-types", + "node-graph/libraries/raster-types", + "node-graph/libraries/vector-types", + "node-graph/libraries/graphic-types", + "node-graph/libraries/rendering", + "node-graph/libraries/wgpu-executor", + "node-graph/nodes/blending", + "node-graph/nodes/brush", + "node-graph/nodes/gcore", + "node-graph/nodes/graphic", + "node-graph/nodes/math", + "node-graph/nodes/path-bool", + "node-graph/nodes/raster", + "node-graph/nodes/raster/shaders", + "node-graph/nodes/text", + "node-graph/nodes/transform", + "node-graph/nodes/vector", "node-graph/graph-craft", "node-graph/graphene-cli", - "node-graph/graster-nodes", - "node-graph/gsvg-renderer", + "node-graph/nodes/gstd", "node-graph/interpreted-executor", "node-graph/node-macro", + "node-graph/preprocessor", + # blocked by https://github.com/rust-lang/cargo/issues/15890 +# "proc-macros", ] resolver = "2" +[workspace.package] +rust-version = "1.88" +edition = "2024" +authors = ["Graphite Authors "] +homepage = "https://graphite.art" +repository = "https://github.com/GraphiteEditor/Graphite" +license = "Apache-2.0" +version = "0.0.0" +readme = "README.md" +publish = false + [workspace.dependencies] # Local dependencies -bezier-rs = { path = "libraries/bezier-rs", features = ["dyn-any", "serde"] } -dyn-any = { path = "libraries/dyn-any", features = ["derive", "glam", "reqwest", "log-bad-types", "rc"] } -preprocessor = { path = "node-graph/preprocessor"} +dyn-any = { path = "libraries/dyn-any", features = [ + "derive", + "glam", + "reqwest", + "log-bad-types", + "rc", +] } +preprocessor = { path = "node-graph/preprocessor" } math-parser = { path = "libraries/math-parser" } path-bool = { path = "libraries/path-bool" } -graphene-application-io = { path = "node-graph/gapplication-io" } -graphene-brush = { path = "node-graph/gbrush" } -graphene-core = { path = "node-graph/gcore" } -graphene-core-shaders = { path = "node-graph/gcore-shaders" } -graphene-math-nodes = { path = "node-graph/gmath-nodes" } -graphene-path-bool = { path = "node-graph/gpath-bool" } +graphene-application-io = { path = "node-graph/libraries/application-io" } +core-types = { path = "node-graph/libraries/core-types" } +no-std-types = { path = "node-graph/libraries/no-std-types" } +raster-types = { path = "node-graph/libraries/raster-types" } +vector-types = { path = "node-graph/libraries/vector-types" } +graphic-types = { path = "node-graph/libraries/graphic-types" } +rendering = { path = "node-graph/libraries/rendering" } +brush-nodes = { path = "node-graph/nodes/brush" } +blending-nodes = { path = "node-graph/nodes/blending" } +graphene-core = { path = "node-graph/nodes/gcore" } +graphic-nodes = { path = "node-graph/nodes/graphic" } +text-nodes = { path = "node-graph/nodes/text" } +transform-nodes = { path = "node-graph/nodes/transform" } +vector-nodes = { path = "node-graph/nodes/vector" } +math-nodes = { path = "node-graph/nodes/math" } +path-bool-nodes = { path = "node-graph/nodes/path-bool" } graph-craft = { path = "node-graph/graph-craft" } -graphene-raster-nodes = { path = "node-graph/graster-nodes" } -graphene-std = { path = "node-graph/gstd" } -graphene-svg-renderer = { path = "node-graph/gsvg-renderer" } +raster-nodes = { path = "node-graph/nodes/raster" } +graphene-std = { path = "node-graph/nodes/gstd" } interpreted-executor = { path = "node-graph/interpreted-executor" } node-macro = { path = "node-graph/node-macro" } -wgpu-executor = { path = "node-graph/wgpu-executor" } +wgpu-executor = { path = "node-graph/libraries/wgpu-executor" } graphite-proc-macros = { path = "proc-macros" } # Workspace dependencies rustc-hash = "2.0" -bytemuck = { version = "1.13", features = ["derive"] } +bytemuck = { version = "1.13", features = ["derive", "min_const_generics"] } serde = { version = "1.0", features = ["derive", "rc"] } serde_json = "1.0" serde-wasm-bindgen = "0.6" @@ -76,17 +136,16 @@ env_logger = "0.11" log = "0.4" bitflags = { version = "2.4", features = ["serde"] } ctor = "0.2" -convert_case = "0.7" +convert_case = "0.8" derivative = "2.2" thiserror = "2" anyhow = "1.0" -proc-macro2 = { version = "1", features = [ "span-locations" ] } +proc-macro2 = { version = "1", features = ["span-locations"] } quote = "1.0" -axum = "0.8" chrono = "0.4" -ron = "0.8" +ron = "0.11" fastnoise-lite = "1.1" -wgpu = { version = "25.0.2", features = [ +wgpu = { version = "27.0", features = [ # We don't have wgpu on multiple threads (yet) https://github.com/gfx-rs/wgpu/blob/trunk/CHANGELOG.md#wgpu-types-now-send-sync-on-wasm "fragile-send-sync-non-atomic-wasm", "spirv", @@ -114,24 +173,34 @@ web-sys = { version = "=0.3.77", features = [ "HtmlImageElement", "ImageBitmapRenderingContext", ] } -winit = { version = "0.30", features = ["wayland", "rwh_06"] } +winit = { git = "https://github.com/rust-windowing/winit.git" } +keyboard-types = "0.8" url = "2.5" tokio = { version = "1.29", features = ["fs", "macros", "io-std", "rt"] } -vello = { git = "https://github.com/linebender/vello.git" } # TODO switch back to stable when a release is made -resvg = "0.44" -usvg = "0.44" +vello = { git = "https://github.com/linebender/vello" } +vello_encoding = { git = "https://github.com/linebender/vello" } +resvg = "0.45" +usvg = "0.45" rand = { version = "0.9", default-features = false, features = ["std_rng"] } rand_chacha = "0.9" -glam = { version = "0.29", default-features = false, features = ["serde", "scalar-math", "debug-glam-assert"] } +glam = { version = "0.29", default-features = false, features = [ + "nostd-libm", + "scalar-math", + "bytemuck", +] } base64 = "0.22" -image = { version = "0.25", default-features = false, features = ["png", "jpeg", "bmp"] } -parley = "0.5.0" -skrifa = "0.32.0" -pretty_assertions = "1.4.1" +image = { version = "0.25", default-features = false, features = [ + "png", + "jpeg", + "bmp", +] } +parley = "0.6" +skrifa = "0.36" +pretty_assertions = "1.4" fern = { version = "0.7", features = ["colored"] } -num_enum = "0.7" +num_enum = { version = "0.7", default-features = false } num-derive = "0.4" -num-traits = { version = "0.2", default-features = false, features = ["i128"] } +num-traits = { version = "0.2", default-features = false, features = ["libm"] } specta = { version = "2.0.0-rc.22", features = [ "glam", "derive", @@ -148,32 +217,38 @@ syn = { version = "2.0", default-features = false, features = [ "extra-traits", "proc-macro", ] } -kurbo = { version = "0.11.0", features = ["serde"] } -petgraph = { version = "0.7.1", default-features = false, features = [ - "graphmap", -] } -half = { version = "2.4.1", default-features = false, features = ["bytemuck"] } +kurbo = { version = "0.12", features = ["serde"] } +lyon_geom = "1.0" +petgraph = { version = "0.7", default-features = false, features = ["graphmap"] } +half = { version = "2.4", default-features = false, features = ["bytemuck"] } tinyvec = { version = "1", features = ["std"] } -criterion = { version = "0.5", features = ["html_reports"] } -iai-callgrind = { version = "0.12.3" } -ndarray = "0.16.1" -strum = { version = "0.26.3", features = ["derive"] } +criterion = { version = "0.7", features = ["html_reports"] } +iai-callgrind = { version = "0.16" } +ndarray = "0.16" +strum = { version = "0.27", features = ["derive"] } dirs = "6.0" -cef = "138.5.0" -include_dir = "0.7.4" -tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } -tracing = "0.1.41" -rfd = "0.15.4" -open = "5.3.2" +cef = "142" +cef-dll-sys = "142" +include_dir = "0.7" +tracing-subscriber = { version = "0.3", features = ["env-filter"] } +tracing = "0.1" +rfd = "0.15" +open = "5.3" +polycool = "0.4" +spin = "0.10" +clap = "4.5" +spirv-std = { git = "https://github.com/Firestar99/rust-gpu-new", rev = "c12f216121820580731440ee79ebc7403d6ea04f", features = ["bytemuck"] } +cargo-gpu = { git = "https://github.com/Firestar99/cargo-gpu", rev = "3952a22d16edbd38689f3a876e417899f21e1fe7", default-features = false } + +[workspace.lints.rust] +unexpected_cfgs = { level = "allow", check-cfg = ['cfg(target_arch, values("spirv"))'] } [profile.dev] opt-level = 1 [profile.dev.package] -graphite-editor = { opt-level = 1 } -graphene-core-shaders = { opt-level = 1 } -graphene-core = { opt-level = 1 } -graphene-std = { opt-level = 1 } +no-std-types = { opt-level = 1 } +core-types= { opt-level = 1 } interpreted-executor = { opt-level = 1 } # This is a mitigation for https://github.com/rustwasm/wasm-pack/issues/981 which is needed because the node_registry function is too large graphite-proc-macros = { opt-level = 1 } image = { opt-level = 2 } @@ -181,6 +256,7 @@ rustc-hash = { opt-level = 3 } serde_derive = { opt-level = 1 } specta-macros = { opt-level = 1 } syn = { opt-level = 1 } +node-macro = { opt-level = 2 } [profile.release] lto = "thin" @@ -189,3 +265,7 @@ debug = true [profile.profiling] inherits = "release" debug = true + +[patch.crates-io] +# Force cargo to use only one version of the dpi crate (vendoring breaks without this) +dpi = { git = "https://github.com/rust-windowing/winit.git" } diff --git a/README.md b/README.md index e5ceda081..d7f07ebf7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ - + @@ -10,14 +10,14 @@ # Your procedural toolbox for 2D content creation -**Graphite is a free, open source vector and raster graphics engine, [available now](https://editor.graphite.rs) in alpha. Get creative with a fully nondestructive editing workflow that combines layer-based compositing with node-based generative design.** +**Graphite is a free, open source vector and raster graphics engine, [available now](https://editor.graphite.art) in alpha. Get creative with a fully nondestructive editing workflow that combines layer-based compositing with node-based generative design.** -Having begun life as a vector editor, Graphite continues evolving into a generalized, all-in-one graphics toolbox that's built more like a game engine than a conventional creative app. The editor's tools wrap its node graph core, providing user-friendly workflows for vector, raster, and beyond. Photo editing, motion graphics, digital painting, desktop publishing, and VFX compositing are additional competencies on the planned [roadmap](https://graphite.rs/features/#roadmap) making Graphite into a highly versatile content creation tool. +Having begun life as a vector editor, Graphite continues evolving into a generalized, all-in-one graphics toolbox that's built more like a game engine than a conventional creative app. The editor's tools wrap its node graph core, providing user-friendly workflows for vector, raster, and beyond. Photo editing, motion graphics, digital painting, desktop publishing, and VFX compositing are additional competencies on the planned [roadmap](https://graphite.art/features/#roadmap) making Graphite into a highly versatile content creation tool. -Learn more from the [website](https://graphite.rs/), subscribe to the [newsletter](https://graphite.rs/#newsletter), consider [volunteering](https://graphite.rs/volunteer/) or [donating](https://graphite.rs/donate/), and remember to give this repository a โญ! +Learn more from the [website](https://graphite.art/), subscribe to the [newsletter](https://graphite.art/#newsletter), consider [volunteering](https://graphite.art/volunteer/) or [donating](https://graphite.art/donate/), and remember to give this repository a โญ!
-
+ @@ -62,7 +62,7 @@ https://github.com/user-attachments/assets/f4604aea-e8f1-45ce-9218-46ddc666f11d ## Support our mission โค๏ธ -Graphite is 100% community built and funded. Please become a part of keeping the project alive and thriving with a [donation](https://graphite.rs/donate/) if you share a belief in our **mission**: +Graphite is 100% community built and funded. Please become a part of keeping the project alive and thriving with a [donation](https://graphite.art/donate/) if you share a belief in our **mission**: > Graphite strives to unshackle the creativity of every budding artist and seasoned professional by building the best comprehensive art and design tool that's accessible to all. > @@ -78,6 +78,6 @@ Graphite is 100% community built and funded. Please become a part of keeping the ## Contributing/building the code -Are you a graphics programmer or Rust developer? Graphite aims to be one of the most approachable projects for putting your engineering skills to use in the world of open source. See [instructions here](https://graphite.rs/volunteer/guide/) for setting up the project and getting started. +Are you a graphics programmer or Rust developer? Graphite aims to be one of the most approachable projects for putting your engineering skills to use in the world of open source. See [instructions here](https://graphite.art/volunteer/guide/) for setting up the project and getting started. *By submitting code for inclusion in the project, you are agreeing to license your changes under the Apache 2.0 license, and that you have the authority to do so. Some directories may have other licenses, like dual-licensed MIT/Apache 2.0, and code submissions to those directories mean you agree to the applicable license(s).* diff --git a/about.toml b/about.toml index e1ead699b..7f9568c75 100644 --- a/about.toml +++ b/about.toml @@ -1,22 +1,22 @@ -# Keep this list in sync with those in `/deny.toml` and `/frontend/vite.config.ts`. accepted = [ - "Apache-2.0 WITH LLVM-exception", - "Apache-2.0", - "BSD-2-Clause", - "BSD-3-Clause", - "BSL-1.0", - "CC0-1.0", - "CDLA-Permissive-2.0", - "ISC", - "MIT-0", - "MIT", - "MPL-2.0", - "OpenSSL", - "Unicode-3.0", - "Unicode-DFS-2016", - "Zlib", - "NCSA", - "bzip2-1.0.6", + "Apache-2.0 WITH LLVM-exception", # Keep this list in sync with those in `/deny.toml` + "Apache-2.0", # Keep this list in sync with those in `/deny.toml` + "BSD-2-Clause", # Keep this list in sync with those in `/deny.toml` + "BSD-3-Clause", # Keep this list in sync with those in `/deny.toml` + "BSL-1.0", # Keep this list in sync with those in `/deny.toml` + "CC0-1.0", # Keep this list in sync with those in `/deny.toml` + "CDLA-Permissive-2.0", # Keep this list in sync with those in `/deny.toml` + "ISC", # Keep this list in sync with those in `/deny.toml` + "MIT-0", # Keep this list in sync with those in `/deny.toml` + "MIT", # Keep this list in sync with those in `/deny.toml` + "MPL-2.0", # Keep this list in sync with those in `/deny.toml` + "OpenSSL", # Keep this list in sync with those in `/deny.toml` + "Unicode-3.0", # Keep this list in sync with those in `/deny.toml` + "Unicode-DFS-2016", # Keep this list in sync with those in `/deny.toml` + "Zlib", # Keep this list in sync with those in `/deny.toml` + "NCSA", # Keep this list in sync with those in `/deny.toml` + "bzip2-1.0.6", # Keep this list in sync with those in `/deny.toml` + "OFL-1.1", # Keep this list in sync with those in `/deny.toml` ] workarounds = ["ring"] ignore-build-dependencies = true diff --git a/demo-artwork/changing-seasons.graphite b/demo-artwork/changing-seasons.graphite index ec6ac44f4..92b6efb28 100644 --- a/demo-artwork/changing-seasons.graphite +++ b/demo-artwork/changing-seasons.graphite @@ -1 +1 @@ -{"network_interface":{"network":{"exports":[{"Node":{"node_id":3143874172491239000,"output_index":0,"lambda":false}}],"nodes":[[10316247453530667000,{"inputs":[{"Node":{"node_id":9079109751490757000,"output_index":0,"lambda":false}},{"Node":{"node_id":12796400626461303056,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[7954638344846060000,{"inputs":[{"Node":{"node_id":5991296268862790000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.1875,"green":0.0,"blue":0.0,"alpha":0.203125}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.19140625,"green":0.0,"blue":0.0,"alpha":0.203125}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17021405646895729000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":1.0,"green":0.31764707,"blue":0.15686275,"alpha":1.0}],[0.5,{"red":1.0,"green":0.5686275,"blue":0.25490198,"alpha":1.0}],[1.0,{"red":1.0,"green":0.7294118,"blue":0.16078432,"alpha":1.0}]]},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::GradientValueNode"}},"visible":true,"skip_deduplication":false}],[8366826746721323000,{"inputs":[{"Node":{"node_id":5591755359500854000,"output_index":0,"lambda":false}},{"Node":{"node_id":13846904447064916285,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1250460246919467000,{"inputs":[{"Node":{"node_id":4742778578215475000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Union"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14253625255053304000,{"inputs":[{"Node":{"node_id":1924303400883620400,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.09778450863315612,0.7264556766766779],"end":[0.09778450863315612,0.3634234796342139],"transform":[-371.95192745983906,4.5550973740038046e-14,0.0,965.1086770605688,766.3711364618157,-61.108677060568766]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3223387122603246085,{"inputs":[{"Node":{"node_id":9641606876402405523,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"String":"2 - 0.2A"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::MathNode"}},"visible":true,"skip_deduplication":false}],[3143874172491239000,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":18233215297647862000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[2000.0,1000.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Network":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15908863353600836000,{"inputs":[{"Node":{"node_id":7094974507355892337,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":350.0},"exposed":false}},{"Node":{"node_id":4373650744391914031,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8895289679682140000,{"inputs":[{"Node":{"node_id":213744308682803360,"output_index":0,"lambda":false}},{"Node":{"node_id":7954638344846060000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17725188707009528000,{"inputs":[{"Node":{"node_id":10316247453530667000,"output_index":0,"lambda":false}},{"Node":{"node_id":17025512774010843000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[5591755359500854000,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":1789832635968548900,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5348726859432207000,{"inputs":[{"Node":{"node_id":12796400626461303056,"output_index":0,"lambda":false}},{"Node":{"node_id":2233138531352324200,"output_index":0,"lambda":false}},{"Node":{"node_id":799182088624980700,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::MorphNode"}},"visible":true,"skip_deduplication":false}],[1789832635968548900,{"inputs":[{"Node":{"node_id":1924303400883620400,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.99215686,"green":0.49019608,"blue":0.11764706,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.25}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17855766443650990000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":0.1764706,"green":0.44313726,"blue":0.05882353,"alpha":1.0}],[0.5,{"red":0.45490196,"green":0.627451,"blue":0.3254902,"alpha":1.0}],[1.0,{"red":1.0,"green":0.5529412,"blue":0.16078432,"alpha":1.0}]]},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::GradientValueNode"}},"visible":true,"skip_deduplication":false}],[16084834641749443000,{"inputs":[{"Node":{"node_id":16141281339223525000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.99215686,"green":0.49019608,"blue":0.11764706,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.25}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[1924303400883620400,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[12399235852192450000,16255990754021933000,15620668684239604000,5432878891027338000],"remove":[5992115648840007000],"delta":[[16255990754021933000,[3.423868312757215,60.83950617283953]],[15620668684239604000,[-7.105427357601002e-15,61.89300411522633]],[12399235852192450000,[3.4492455418381667,-6.252914951989055]],[5432878891027338000,[-0.8525377229081244,-6.779663923182397]]]},"segments":{"add":[1366074222973177300,9911415907547690000,3820594103877681000,5933636287523951000],"remove":[16939395239973712000],"start_point":[[5933636287523951000,5432878891027338000],[9911415907547690000,16255990754021933000],[3820594103877681000,15620668684239604000],[1366074222973177300,12399235852192450000]],"end_point":[[5933636287523951000,12399235852192450000],[9911415907547690000,15620668684239604000],[1366074222973177300,16255990754021933000],[3820594103877681000,5432878891027338000]],"handle_primary":[[1366074222973177300,[-12.729766803840905,34.6776406035666]],[3820594103877681000,[-1.2746024488136916,-0.5300005080526233]],[5933636287523951000,[0.0,0.0]],[9911415907547690000,[-0.6380090646381761,1.00935799390129]]],"handle_end":[[5933636287523951000,[0.0,0.0]],[9911415907547690000,[1.1025726645520375,0.4584677151070898]],[3820594103877681000,[-11.281207133058956,31.692729766803836]],[1366074222973177300,[1.0502464055275982,-1.6615353350607336]]],"stroke":[[1366074222973177300,0],[5933636287523951000,0],[9911415907547690000,0],[3820594103877681000,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"Primary","segment":3820594103877681000},{"ty":"End","segment":9911415907547690000}],[{"ty":"Primary","segment":9911415907547690000},{"ty":"End","segment":1366074222973177300}]],"remove_g1_continuous":[[{"ty":"End","segment":3820594103877681000},{"ty":"Primary","segment":16939395239973712000}],[{"ty":"Primary","segment":1366074222973177300},{"ty":"End","segment":5933636287523951000}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2233138531352324200,{"inputs":[{"Node":{"node_id":366962978353611840,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4040070953711778000,{"inputs":[{"Node":{"node_id":15908863353600836000,"output_index":0,"lambda":false}},{"Node":{"node_id":2166474486859326700,"output_index":0,"lambda":false}},{"Node":{"node_id":10690271318666670633,"output_index":0,"lambda":false}},{"Node":{"node_id":12004715210677400127,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":360.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[17025512774010843000,{"inputs":[{"Node":{"node_id":13712392741217151405,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.3155737704918033,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.203125}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194],"transform":[1191.785811691441,0.0,0.0,1109.5999999999997,274.8958396355149,62.489512494441215]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4742778578215475000,{"inputs":[{"Node":{"node_id":6102164880094062000,"output_index":0,"lambda":false}},{"Node":{"node_id":8876924567444570473,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10463288500489480000,{"inputs":[{"Node":{"node_id":4600332392291315000,"output_index":0,"lambda":false}},{"Node":{"node_id":4040070953711778000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3602127523880426500,{"inputs":[{"Value":{"tagged_value":{"Raster":{"element":[{"width":0,"height":0,"data":[0,""]}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Node":{"node_id":17725188707009528000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[6102164880094062000,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14253625255053304000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4002029424845293600,{"inputs":[{"Node":{"node_id":16141281339223525000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[],"remove":[],"delta":[[9934671969500465000,[-43.209876543209866,-14.975308641975468]],[16594203120813726000,[-62.53607037678802,-36.02218510909459]],[9664410344080632000,[-35.276890617605005,-25.55103086414088]],[4305429814263425000,[-22.598416051654286,-32.71009758017498]],[16211201987812043000,[-7.105427357601002e-15,-23.90123456790124]],[4839542169175255000,[-127.45378793812174,-12.06205126188287]],[4570709177617499000,[-62.76543209876538,-6.827160493827164]],[12582713598977278000,[9.333333333333268,-66.33333333333327]],[15620564416450861000,[-47.66529492455423,-18.042524005486992]],[7888691908524886000,[4.351165980795637,-8.105624142661181]],[753144493519442600,[-50.013717421124845,21.17283950617286]],[5755835744378529000,[-17.333333333333343,-33.1358024691358]],[353992768245212100,[-42.27413685969588,-41.62581710194484]],[11897064075526275000,[-61.65765794556601,-32.902083082000814]],[6358127410693457000,[-37.72290809327849,-10.54183813443079]],[11874978858302702000,[5.843621399176955,-10.914951989026145]],[891169987742051100,[-4.148148148148122,-38.03703703703696]],[10418348123687606000,[-61.3893894663837,-52.000301612710835]]]},"segments":{"add":[],"remove":[],"start_point":[],"end_point":[],"handle_primary":[[3359087961315235300,[-0.2881601545358876,-1.8891182956799923]],[12441313998107066000,[-4.938271604938336,6.518518518518476]],[15866454419016458000,[-9.913311783442964,6.121455371873111]],[3270826560526153000,[-10.966434817733528,4.317749647005792]],[1562499453192082400,[-0.08779149519892826,-1.6680384087791111]],[3138315255762406000,[4.038408779149492,-14.5733882030178]],[18320159308706247000,[0.0,0.0]],[8119312711427333000,[0.0,0.0]],[2416974091592514600,[0.0,0.0]],[17948338937502876000,[0.0,0.0]],[9552874240071498000,[-5.53086419753086,-0.9657064471879552]],[16362428386097514000,[-23.70370370370371,19.950617283950606]],[2092445122112560000,[-7.308641975308667,2.9629629629629903]],[4183498485018509000,[-37.13580246913581,14.485596707818928]],[5680639457836474000,[0.0,0.0]],[4590600976245504500,[-6.49657064471878,1.2290809327846404]],[14351209823603001000,[0.0,0.0]]],"handle_end":[[2416974091592514600,[37.06995884773662,-14.595336076817532]],[12441313998107066000,[5.171144805176233,13.506721506057374]],[1562499453192082400,[-0.6668238551234532,2.406364346749864]],[14351209823603001000,[-7.374485596707803,5.70644718792866]],[2092445122112560000,[-9.086419753086416,21.135802469135797]],[5680639457836474000,[0.2881601545359018,1.8891182956799923]],[3138315255762406000,[-8.098765432098759,2.947337553780912]],[3270826560526153000,[-49.33882030178324,27.10562414266127]],[18320159308706247000,[-41.26200274348419,15.978052126200277]],[15866454419016458000,[2.458161865569238,7.637860082304542]],[16362428386097514000,[-6.962962962962983,53.17283950617292]],[7709585677887591000,[-8.603566529492472,0.8779149519890552]],[9552874240071498000,[-7.286694101508885,7.55006858710567]],[4590600976245504500,[14.222222222222207,7.989026063100134]],[17948338937502876000,[-50.30452674897121,26.776406035665325]],[3359087961315235300,[-7.813443072702299,7.725651577503442]],[8119312711427333000,[-16.241426611796967,5.355281207133061]],[4183498485018509000,[-21.94787379972564,36.565157750342905]]],"stroke":[]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[366962978353611840,{"inputs":[{"Node":{"node_id":8366826746721323000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Union"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16379524086934900000,{"inputs":[{"Node":{"node_id":9609388203059839318,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.41796875,"green":0.1028595,"blue":0.1028595,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.421875,"green":0.1038208,"blue":0.1038208,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4600332392291315000,{"inputs":[{"Node":{"node_id":4040070953711778000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Node":{"node_id":11677958249556146000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::AssignColorsNode"}},"visible":true,"skip_deduplication":false}],[7386572856931342000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":100.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::PercentageValueNode"}},"visible":true,"skip_deduplication":false}],[4373650744391914031,{"inputs":[{"Node":{"node_id":9641606876402405523,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[16141281339223525000,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[8940743774820468000,11897064075526275000,9664410344080632000,10418348123687606000,16594203120813726000,4839542169175255000,353992768245212100,4305429814263425000,15620564416450861000,4570709177617499000,9934671969500465000,6358127410693457000,753144493519442600,11874978858302702000,7888691908524886000,12582713598977278000,891169987742051100,5755835744378529000,16211201987812043000],"remove":[],"delta":[[16211201987812043000,[0.0,-231.0]],[4839542169175255000,[157.56627079134535,-37.10118604950259]],[5755835744378529000,[28.444444444444457,-210.4567901234568]],[891169987742051100,[63.802469135802426,-190.90123456790127]],[15620564416450861000,[141.77777777777777,-86.60493827160491]],[7888691908524886000,[66.32098765432096,-154.30864197530863]],[9934671969500465000,[125.38271604938268,-124.67901234567891]],[16594203120813726000,[126.09711290079348,-8.575894451947931]],[753144493519442600,[136.8395061728395,-177.6172839506173]],[11874978858302702000,[92.39506172839504,-161.41975308641972]],[4570709177617499000,[114.716049382716,-90.16049382716052]],[11897064075526275000,[72.71938634062775,26.932261408475423]],[9664410344080632000,[64.51145851883956,11.32880864191867]],[12582713598977278000,[49.135802469135854,-136.33333333333334]],[353992768245212100,[114.87770338918835,-41.33714586101814]],[8940743774820468000,[0.0,0.0]],[4305429814263425000,[91.25136529719612,-51.92090379156713]],[10418348123687606000,[112.8352056529406,14.952290638773944]],[6358127410693457000,[115.50617283950618,-132.38271604938265]]]},"segments":{"add":[7709585677887591000,14351209823603001000,18320159308706247000,8119312711427333000,4590600976245504500,17948338937502876000,1562499453192082400,3138315255762406000,2416974091592514600,3270826560526153000,5680639457836474000,3359087961315235300,9552874240071498000,15866454419016458000,4183498485018509000,2092445122112560000,16362428386097514000,12441313998107066000],"remove":[],"start_point":[[3270826560526153000,4570709177617499000],[2092445122112560000,12582713598977278000],[16362428386097514000,891169987742051100],[1562499453192082400,353992768245212100],[9552874240071498000,753144493519442600],[15866454419016458000,11874978858302702000],[18320159308706247000,9664410344080632000],[4183498485018509000,7888691908524886000],[4590600976245504500,16594203120813726000],[8119312711427333000,10418348123687606000],[3138315255762406000,4305429814263425000],[17948338937502876000,4839542169175255000],[14351209823603001000,11897064075526275000],[3359087961315235300,6358127410693457000],[12441313998107066000,5755835744378529000],[5680639457836474000,9934671969500465000],[2416974091592514600,15620564416450861000],[7709585677887591000,8940743774820468000]],"end_point":[[12441313998107066000,16211201987812043000],[4183498485018509000,12582713598977278000],[2092445122112560000,891169987742051100],[7709585677887591000,11897064075526275000],[1562499453192082400,4305429814263425000],[14351209823603001000,9664410344080632000],[17948338937502876000,353992768245212100],[3138315255762406000,15620564416450861000],[2416974091592514600,4570709177617499000],[5680639457836474000,6358127410693457000],[16362428386097514000,5755835744378529000],[3270826560526153000,9934671969500465000],[18320159308706247000,10418348123687606000],[8119312711427333000,16594203120813726000],[3359087961315235300,753144493519442600],[9552874240071498000,11874978858302702000],[15866454419016458000,7888691908524886000],[4590600976245504500,4839542169175255000]],"handle_primary":[[7709585677887591000,[0.0,0.0]],[5680639457836474000,[0.0,0.0]],[12441313998107066000,[-4.938271604938336,6.518518518518533]],[16362428386097514000,[-14.913580246913511,12.641975308642031]],[2416974091592514600,[0.0,0.0]],[14351209823603001000,[0.0,0.0]],[1562499453192082400,[-15.34246181071461,-3.7168967220297873]],[17948338937502876000,[0.0,0.0]],[15866454419016458000,[-10.469135802469168,13.432098765432102]],[3138315255762406000,[-2.469006630399008,-5.902063388586043]],[8119312711427333000,[0.0,0.0]],[2092445122112560000,[-1.5802469135804245,-5.5308641975308035]],[4183498485018509000,[-6.617283950617207,15.308641975308689]],[4590600976245504500,[-7.759646437163781,-18.695929243596197]],[3359087961315235300,[2.7654320987655296,-14.419753086419746]],[3270826560526153000,[-9.086419753086432,-7.506172839506121]],[18320159308706247000,[0.0,0.0]],[9552874240071498000,[-21.33333333333331,12.049382716049422]]],"handle_end":[[5680639457836474000,[-2.7654320987655296,14.419753086419746]],[4183498485018509000,[4.938271604938336,-1.1851851851851052]],[14351209823603001000,[5.742854988208705,6.327636391047918]],[2092445122112560000,[-20.345679012345613,18.5679012345679]],[2416974091592514600,[9.086419753086377,7.506172839506235]],[3270826560526153000,[-13.03703703703701,9.679012345678984]],[9552874240071498000,[4.938271604938279,11.061728395061806]],[1562499453192082400,[2.0974057383288596,5.01376604938514]],[17948338937502876000,[25.51458639999055,20.651563178633637]],[4590600976245504500,[-5.92501398131742,10.665547436428083]],[15866454419016458000,[0.19753086419757435,13.827160493827137]],[8119312711427333000,[-40.68684029964413,7.631779585305026]],[3359087961315235300,[-27.099224819820336,19.753086419753146]],[18320159308706247000,[-24.983271918092953,-7.776766653003392]],[3138315255762406000,[-21.33333333333337,3.753086419753061]],[16362428386097514000,[-8.0,38.419753086419746]],[7709585677887591000,[-42.51530058403631,-10.382498109968708]],[12441313998107066000,[13.234567901234527,34.5679012345679]]],"stroke":[[18320159308706247000,0],[5680639457836474000,0],[1562499453192082400,0],[3359087961315235300,0],[2416974091592514600,0],[12441313998107066000,0],[16362428386097514000,0],[9552874240071498000,0],[8119312711427333000,0],[17948338937502876000,0],[4183498485018509000,0],[3270826560526153000,0],[7709585677887591000,0],[15866454419016458000,0],[2092445122112560000,0],[4590600976245504500,0],[3138315255762406000,0],[14351209823603001000,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":2416974091592514600},{"ty":"Primary","segment":3270826560526153000}],[{"ty":"End","segment":5680639457836474000},{"ty":"Primary","segment":3359087961315235300}],[{"ty":"End","segment":1562499453192082400},{"ty":"Primary","segment":3138315255762406000}]],"remove_g1_continuous":[[{"ty":"End","segment":4183498485018509000},{"ty":"Primary","segment":2092445122112560000}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9641606876402405523,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::InstanceIndexNode"}},"visible":true,"skip_deduplication":false}],[9609388203059839318,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[799182088624980700,{"inputs":[{"Node":{"node_id":7386572856931342000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":100.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::DivideNode"}},"visible":true,"skip_deduplication":false}],[9079109751490757000,{"inputs":[{"Value":{"tagged_value":{"Raster":{"element":[{"width":0,"height":0,"data":[0,""]}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Node":{"node_id":2233138531352324200,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false}],[11677958249556146000,{"inputs":[{"Node":{"node_id":17021405646895729000,"output_index":0,"lambda":false}},{"Node":{"node_id":17855766443650990000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BlendMode":"Normal"},"exposed":false}},{"Node":{"node_id":7386572856931342000,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_raster_nodes::blending_nodes::BlendNode"}},"visible":true,"skip_deduplication":false}],[13846904447064916285,{"inputs":[{"Node":{"node_id":16084834641749443000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"ReferencePoint":"CenterLeft"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::MirrorNode"}},"visible":true,"skip_deduplication":false}],[10690271318666670633,{"inputs":[{"Node":{"node_id":12004715210677400127,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.2},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::SubtractNode"}},"visible":true,"skip_deduplication":false}],[16236970157339521798,{"inputs":[{"Node":{"node_id":8895289679682140000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"U64":8},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::InstanceRepeatNode"}},"visible":true,"skip_deduplication":false}],[14250786159408925409,{"inputs":[{"Node":{"node_id":3430686124240113700,"output_index":0,"lambda":false}},{"Node":{"node_id":16236970157339521798,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7094974507355892337,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[2166474486859326700,{"inputs":[{"Node":{"node_id":13712392741217151405,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.0}],[0.6885245901639344,{"red":0.08984375,"green":0.08984375,"blue":0.08984375,"alpha":0.08775313}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.20392157}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194],"transform":[1191.785811691441,0.0,0.0,1109.5999999999997,274.8958396355149,62.489512494441215]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.0}],[0.6885245901639344,{"red":0.08984375,"green":0.08984375,"blue":0.08984375,"alpha":0.08775313}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.20392157}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194],"transform":[1191.785811691441,0.0,0.0,1109.5999999999997,274.8958396355149,62.489512494441215]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3430686124240113700,{"inputs":[{"Node":{"node_id":3602127523880426500,"output_index":0,"lambda":false}},{"Node":{"node_id":16379524086934900000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8876924567444570473,{"inputs":[{"Node":{"node_id":26023588519449590,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"ReferencePoint":"CenterLeft"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::MirrorNode"}},"visible":true,"skip_deduplication":false}],[14337610765966946000,{"inputs":[{"Node":{"node_id":14250786159408925409,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12004715210677400127,{"inputs":[{"Node":{"node_id":3223387122603246085,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.1},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::MaxNode"}},"visible":true,"skip_deduplication":false}],[13712392741217151405,{"inputs":[{"Node":{"node_id":5348726859432207000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18233215297647862000,{"inputs":[{"Node":{"node_id":14337610765966946000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[1000.0,500.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[213744308682803360,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":10463288500489480000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5991296268862790000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[26023588519449590,{"inputs":[{"Node":{"node_id":4002029424845293600,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.09778450863315612,0.7264556766766779],"end":[0.09778450863315612,0.3634234796342139],"transform":[-371.95192745983906,4.5550973740038046e-14,0.0,965.1086770605688,766.3711364618157,-61.108677060568766]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12796400626461303056,{"inputs":[{"Node":{"node_id":1250460246919467000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[18233215297647862000,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12004715210677400127,{"persistent_metadata":{"reference":"Max","display_name":"Max","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"One of the two numbers, of which the greater will be returned.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Other Value","input_description":"The other of the two numbers, of which the greater will be returned.\n"}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-35]}}},"network_metadata":null}}],[10463288500489480000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14250786159408925409,{"persistent_metadata":{"reference":"Merge","display_name":"Leaf Levels","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9079109751490757000,{"persistent_metadata":{"reference":"Merge","display_name":"Maple Leaf","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[799182088624980700,{"persistent_metadata":{"reference":"Divide","display_name":"Divide","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Numerator","input_description":"The left-hand side of the division operation.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Denominator","input_description":"The right-hand side of the division operation.\n"}}],"output_names":["Output"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-30]}}},"network_metadata":null}}],[7386572856931342000,{"persistent_metadata":{"reference":"Percentage Value","display_name":"Percentage Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Percentage","input_description":""}}],"output_names":["f64"],"has_primary_output":true,"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-39]}}},"network_metadata":null}}],[3223387122603246085,{"persistent_metadata":{"reference":"Math","display_name":"Math","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operand A","input_description":"The value of \"A\" when calculating the expression\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Expression","input_description":"A math expression that may incorporate \"A\" and/or \"B\", such as \"sqrt(A + B) - B^2\"\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operand B","input_description":"The value of \"B\" when calculating the expression\n"}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-33,-35]}}},"network_metadata":null}}],[16379524086934900000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16084834641749443000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14253625255053304000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14337610765966946000,{"persistent_metadata":{"reference":"Merge","display_name":"NOTE: Change seasons with the \"Percentage Value\" parameter","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[14,-52]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1924303400883620400,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":["Modification"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-44,-19]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[366962978353611840,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-16]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17025512774010843000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16236970157339521798,{"persistent_metadata":{"reference":"Instance Repeat","display_name":"Instance Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Count","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Reverse","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12796400626461303056,{"persistent_metadata":{"reference":"Cache","display_name":"Cache","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Data","input_description":"TODO"}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-25]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5348726859432207000,{"persistent_metadata":{"reference":"Morph","display_name":"Morph","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Source","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Target","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Time","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-12,-32]}}},"network_metadata":null}}],[4742778578215475000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-30,-22]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17725188707009528000,{"persistent_metadata":{"reference":"Merge","display_name":"Morph","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[9,-29]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[26023588519449590,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10690271318666670633,{"persistent_metadata":{"reference":"Subtract","display_name":"Subtract","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Minuend","input_description":"The left-hand side of the subtraction operation.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Subtrahend","input_description":"The right-hand side of the subtraction operation.\n"}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-36]}}},"network_metadata":null}}],[17855766443650990000,{"persistent_metadata":{"reference":"Gradient Value","display_name":"Gradient Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Gradient","input_description":""}}],"output_names":["GradientStops"],"has_primary_output":true,"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-40]}}},"network_metadata":null}}],[4002029424845293600,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":["Modification"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4373650744391914031,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-33,-37]}}},"network_metadata":null}}],[8366826746721323000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-30,-13]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7094974507355892337,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-38]}}},"network_metadata":null}}],[1250460246919467000,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-25]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5991296268862790000,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1789832635968548900,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5591755359500854000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13712392741217151405,{"persistent_metadata":{"reference":"Cache","display_name":"Cache","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Data","input_description":"TODO"}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-5,-32]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9609388203059839318,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17021405646895729000,{"persistent_metadata":{"reference":"Gradient Value","display_name":"Gradient Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Gradient","input_description":""}}],"output_names":["GradientStops"],"has_primary_output":true,"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-41]}}},"network_metadata":null}}],[7954638344846060000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9641606876402405523,{"persistent_metadata":{"reference":null,"display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Loop Level","input_description":"TODO"}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-36]}}},"network_metadata":null}}],[3143874172491239000,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":true,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":" px","is_integer":true},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[26,-56]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2166474486859326700,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[2,-32]}}},"network_metadata":null}}],[213744308682803360,{"persistent_metadata":{"reference":"Merge","display_name":"Leaves","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15908863353600836000,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"mode":"Range","range_min":1.0,"range_max":100.0,"min":0.01,"is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-38]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10316247453530667000,{"persistent_metadata":{"reference":"Merge","display_name":"Oak Leaf","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":1}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16141281339223525000,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":["Modification"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-58,-22]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13846904447064916285,{"persistent_metadata":{"reference":"Mirror","display_name":"Mirror","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Relative To Bounds","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Keep Original","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6102164880094062000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2233138531352324200,{"persistent_metadata":{"reference":"Cache","display_name":"Cache","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Data","input_description":"TODO"}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-16]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11677958249556146000,{"persistent_metadata":{"reference":"Blend","display_name":"Blend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Under","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Blend Mode","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":["Color"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-41]}}},"network_metadata":null}}],[3602127523880426500,{"persistent_metadata":{"reference":"Merge","display_name":"Individual Leaf Views","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":3}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3430686124240113700,{"persistent_metadata":{"reference":"Merge","display_name":"Solid Backdrop","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":8}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8876924567444570473,{"persistent_metadata":{"reference":"Mirror","display_name":"Mirror","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Relative To Bounds","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Keep Original","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4040070953711778000,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-12,-38]}}},"network_metadata":null}}],[4600332392291315000,{"persistent_metadata":{"reference":"Assign Colors","display_name":"Assign Colors","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Content","input_description":"The content with vector paths to apply the fill and/or stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"Whether to style the fill.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Stroke","input_description":"Whether to style the stroke.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_gradient","input_name":"Gradient","input_description":"The range of colors to select from.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Reverse","input_description":"Whether to reverse the gradient.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Randomize","input_description":"Whether to randomize the color selection for each element from throughout the gradient.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_seed","input_name":"Seed","input_description":"The seed used for randomization.\nSeed to determine unique variations on the randomized color selection.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_repeat_every","input_name":"Repeat Every","input_description":"The number of elements to span across the gradient before repeating. A 0 value will span the entire gradient once.\n"}}],"output_names":["Content"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8895289679682140000,{"persistent_metadata":{"reference":"Merge","display_name":"Depth Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[2,-45]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[287.6272550000002,767.89247],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1278.0,1349.0],"node_graph_top_right":[1980.800048828125,0.0]},"selection_undo_history":[[1924303400883620400,8366826746721323000,16084834641749443000,13846904447064916285,366962978353611840,14253625255053304000,4002029424845293600,6102164880094062000,1250460246919467000,26023588519449590,5591755359500854000,8876924567444570473,4742778578215475000,1789832635968548900,16141281339223525000],[799182088624980700,4002029424845293600,366962978353611840,14253625255053304000,5348726859432207000,4742778578215475000,16084834641749443000,8876924567444570473,1924303400883620400,26023588519449590,16141281339223525000,1789832635968548900,1250460246919467000,13846904447064916285,5591755359500854000,6102164880094062000,8366826746721323000],[8876924567444570473,799182088624980700,26023588519449590,8366826746721323000,16084834641749443000,5591755359500854000,6102164880094062000,16141281339223525000,366962978353611840,1250460246919467000,4002029424845293600,1789832635968548900,1924303400883620400,14253625255053304000,13712392741217151405,13846904447064916285,5348726859432207000,4742778578215475000],[1250460246919467000,16084834641749443000,8366826746721323000,4002029424845293600,799182088624980700,26023588519449590,5348726859432207000,366962978353611840,8876924567444570473,6102164880094062000,13712392741217151405,13846904447064916285,9079109751490757000,5591755359500854000,16141281339223525000,1789832635968548900,1924303400883620400,14253625255053304000,4742778578215475000],[1250460246919467000,5348726859432207000,8366826746721323000,14253625255053304000,5591755359500854000,13846904447064916285,26023588519449590,799182088624980700,4742778578215475000,8876924567444570473,6102164880094062000,1924303400883620400,10316247453530667000,13712392741217151405,366962978353611840,1789832635968548900,4002029424845293600,16084834641749443000,9079109751490757000,16141281339223525000],[4742778578215475000,13712392741217151405,9079109751490757000,8876924567444570473,8366826746721323000,10316247453530667000,5348726859432207000,16084834641749443000,13846904447064916285,5591755359500854000,1789832635968548900,16141281339223525000,1250460246919467000,14253625255053304000,799182088624980700,366962978353611840,4002029424845293600,1924303400883620400,17725188707009528000,26023588519449590,6102164880094062000,17025512774010843000],[5591755359500854000,366962978353611840,4002029424845293600,3602127523880426500,5348726859432207000,13846904447064916285,6102164880094062000,26023588519449590,17025512774010843000,14253625255053304000,17725188707009528000,13712392741217151405,4742778578215475000,1924303400883620400,1789832635968548900,1250460246919467000,16141281339223525000,799182088624980700,8366826746721323000,9079109751490757000,8876924567444570473,10316247453530667000,16084834641749443000],[5591755359500854000,8366826746721323000,366962978353611840,6102164880094062000],[8366826746721323000,6102164880094062000,5591755359500854000,14253625255053304000,1789832635968548900,8876924567444570473,4742778578215475000,13846904447064916285,366962978353611840],[1789832635968548900,8366826746721323000,366962978353611840,5591755359500854000,4742778578215475000,26023588519449590,8876924567444570473,6102164880094062000,13846904447064916285,16084834641749443000,14253625255053304000],[8366826746721323000,13846904447064916285,26023588519449590,8876924567444570473,366962978353611840,4002029424845293600,1789832635968548900,16084834641749443000,4742778578215475000,6102164880094062000,5591755359500854000,1250460246919467000,14253625255053304000],[8876924567444570473,799182088624980700,5348726859432207000,13846904447064916285,366962978353611840,8366826746721323000,5591755359500854000,4742778578215475000,26023588519449590,4002029424845293600,16084834641749443000,14253625255053304000,1250460246919467000,6102164880094062000,1789832635968548900],[6102164880094062000,16084834641749443000,4742778578215475000,366962978353611840,16141281339223525000,1789832635968548900,26023588519449590,5591755359500854000,8876924567444570473,13846904447064916285,1924303400883620400,799182088624980700,8366826746721323000,4002029424845293600,5348726859432207000,1250460246919467000,14253625255053304000],[1250460246919467000,26023588519449590,13846904447064916285,14253625255053304000,1924303400883620400,16141281339223525000,6102164880094062000,4742778578215475000,5348726859432207000,8366826746721323000,799182088624980700,1789832635968548900,4002029424845293600,16084834641749443000,8876924567444570473,366962978353611840,13712392741217151405,5591755359500854000],[8366826746721323000,8876924567444570473,1924303400883620400,1250460246919467000,26023588519449590,366962978353611840,14253625255053304000,6102164880094062000,4002029424845293600,16084834641749443000,4742778578215475000,13846904447064916285,1789832635968548900,5348726859432207000,5591755359500854000,799182088624980700,16141281339223525000],[799182088624980700,8366826746721323000,6102164880094062000,26023588519449590,1250460246919467000,1789832635968548900,16084834641749443000,8876924567444570473,4002029424845293600,4742778578215475000,5348726859432207000,13846904447064916285,366962978353611840,14253625255053304000,5591755359500854000],[16084834641749443000,4742778578215475000,6102164880094062000,13846904447064916285,5348726859432207000,1789832635968548900,1250460246919467000,14253625255053304000,799182088624980700,26023588519449590,5591755359500854000,366962978353611840,8366826746721323000,8876924567444570473],[8876924567444570473,26023588519449590,366962978353611840,1250460246919467000,4742778578215475000,14253625255053304000,5591755359500854000,13846904447064916285,6102164880094062000,4002029424845293600,16084834641749443000,8366826746721323000,5348726859432207000,799182088624980700,1789832635968548900],[5591755359500854000,8876924567444570473,16141281339223525000,4002029424845293600,1789832635968548900,1250460246919467000,5348726859432207000,4742778578215475000,6102164880094062000,366962978353611840,16084834641749443000,8366826746721323000,1924303400883620400,799182088624980700,26023588519449590,14253625255053304000,13846904447064916285],[1924303400883620400,8876924567444570473,1789832635968548900,4002029424845293600,799182088624980700,16084834641749443000,13846904447064916285,8366826746721323000,26023588519449590,6102164880094062000,13712392741217151405,5348726859432207000,366962978353611840,16141281339223525000,14253625255053304000,4742778578215475000,5591755359500854000,1250460246919467000],[5591755359500854000,8366826746721323000,366962978353611840,6102164880094062000],[8366826746721323000,366962978353611840,4742778578215475000,5591755359500854000,6102164880094062000],[14253625255053304000,8366826746721323000,366962978353611840,1789832635968548900,8876924567444570473,5591755359500854000,4742778578215475000,6102164880094062000,13846904447064916285],[4742778578215475000,5591755359500854000,13846904447064916285,366962978353611840,14253625255053304000,8876924567444570473,16084834641749443000,8366826746721323000,1789832635968548900,26023588519449590,6102164880094062000],[1789832635968548900,5591755359500854000,4742778578215475000,8366826746721323000,13846904447064916285,6102164880094062000,1250460246919467000,16084834641749443000,8876924567444570473,14253625255053304000,4002029424845293600,366962978353611840,26023588519449590],[1789832635968548900,5348726859432207000,5591755359500854000,8876924567444570473,8366826746721323000,26023588519449590,6102164880094062000,366962978353611840,16084834641749443000,4742778578215475000,13846904447064916285,14253625255053304000,1250460246919467000,4002029424845293600],[16084834641749443000,4002029424845293600,8366826746721323000,5591755359500854000,6102164880094062000,14253625255053304000,4742778578215475000,8876924567444570473,13846904447064916285,16141281339223525000,1924303400883620400,26023588519449590,1250460246919467000,366962978353611840,1789832635968548900,5348726859432207000],[1789832635968548900,13846904447064916285,1924303400883620400,6102164880094062000,4742778578215475000,8876924567444570473,16084834641749443000,5591755359500854000,13712392741217151405,366962978353611840,16141281339223525000,26023588519449590,8366826746721323000,1250460246919467000,5348726859432207000,4002029424845293600,14253625255053304000],[6102164880094062000,26023588519449590,8876924567444570473,4002029424845293600,4742778578215475000,8366826746721323000,5348726859432207000,5591755359500854000,16141281339223525000,13846904447064916285,1789832635968548900,1250460246919467000,14253625255053304000,16084834641749443000,366962978353611840,1924303400883620400],[1250460246919467000,13712392741217151405,1924303400883620400,16141281339223525000,6102164880094062000,8876924567444570473,366962978353611840,13846904447064916285,8366826746721323000,14253625255053304000,16084834641749443000,1789832635968548900,26023588519449590,4742778578215475000,5348726859432207000,4002029424845293600,5591755359500854000],[9079109751490757000],[9079109751490757000,10316247453530667000],[10316247453530667000,9079109751490757000,5348726859432207000],[10316247453530667000,4742778578215475000,8366826746721323000,1250460246919467000,6102164880094062000,366962978353611840,5591755359500854000,9079109751490757000,5348726859432207000],[4742778578215475000,9079109751490757000,17725188707009528000,10316247453530667000,5591755359500854000,8366826746721323000,5348726859432207000,366962978353611840,1250460246919467000,6102164880094062000],[1250460246919467000,14253625255053304000,1789832635968548900,17725188707009528000,5348726859432207000,5591755359500854000,8366826746721323000,9079109751490757000,10316247453530667000,8876924567444570473,4742778578215475000,13846904447064916285,366962978353611840,6102164880094062000],[4742778578215475000,5348726859432207000,14253625255053304000,10316247453530667000,9079109751490757000,366962978353611840,1789832635968548900,13846904447064916285,5591755359500854000,1250460246919467000,6102164880094062000,799182088624980700,8876924567444570473,8366826746721323000,17725188707009528000],[9079109751490757000,13846904447064916285,5591755359500854000,5348726859432207000,366962978353611840,799182088624980700,4742778578215475000,8876924567444570473,1789832635968548900,14253625255053304000,17725188707009528000,8366826746721323000,10316247453530667000,6102164880094062000,16084834641749443000,26023588519449590,1250460246919467000],[10316247453530667000,366962978353611840,17025512774010843000,799182088624980700,6102164880094062000,16084834641749443000,8366826746721323000,17725188707009528000,5348726859432207000,14253625255053304000,4002029424845293600,1250460246919467000,26023588519449590,9079109751490757000,13846904447064916285,1789832635968548900,5591755359500854000,4742778578215475000,13712392741217151405,8876924567444570473],[17725188707009528000,1250460246919467000,1789832635968548900,366962978353611840,5591755359500854000,9079109751490757000,14253625255053304000,5348726859432207000,4742778578215475000,6102164880094062000,10316247453530667000,799182088624980700,4002029424845293600,13846904447064916285,1924303400883620400,17025512774010843000,8876924567444570473,26023588519449590,13712392741217151405,16141281339223525000,16084834641749443000,8366826746721323000],[9641606876402405523,7094974507355892337,2166474486859326700,4373650744391914031,15908863353600836000,10690271318666670633,5348726859432207000,3223387122603246085,799182088624980700,17725188707009528000,4040070953711778000,12004715210677400127,13712392741217151405],[4040070953711778000,10690271318666670633,9641606876402405523,799182088624980700,12004715210677400127,13712392741217151405,17725188707009528000,2166474486859326700,4373650744391914031,7094974507355892337,3223387122603246085,15908863353600836000,17025512774010843000,5348726859432207000],[10690271318666670633,5348726859432207000,17725188707009528000,3223387122603246085,12004715210677400127,13712392741217151405,1250460246919467000,4373650744391914031,799182088624980700,9641606876402405523,4040070953711778000,7094974507355892337,15908863353600836000,17025512774010843000,2166474486859326700],[7094974507355892337,3223387122603246085,13712392741217151405,10316247453530667000,15908863353600836000,12004715210677400127,4040070953711778000,1250460246919467000,799182088624980700,17725188707009528000,2166474486859326700,5348726859432207000,9641606876402405523,10690271318666670633,17025512774010843000,4373650744391914031],[13712392741217151405,17025512774010843000,15908863353600836000,12004715210677400127,10690271318666670633,17725188707009528000,4373650744391914031,7094974507355892337,3602127523880426500,2166474486859326700,799182088624980700,10316247453530667000,5348726859432207000,3223387122603246085,4040070953711778000,1250460246919467000,9641606876402405523],[17025512774010843000,4040070953711778000,5348726859432207000,12004715210677400127,17725188707009528000,3602127523880426500,10690271318666670633,7094974507355892337,3223387122603246085,1250460246919467000,4742778578215475000,4002029424845293600,10316247453530667000,799182088624980700,4373650744391914031,9641606876402405523,2166474486859326700,13712392741217151405,15908863353600836000],[17725188707009528000,17025512774010843000,13712392741217151405,10690271318666670633,7094974507355892337,12004715210677400127,3223387122603246085,26023588519449590,15908863353600836000,10316247453530667000,3602127523880426500,4002029424845293600,799182088624980700,5348726859432207000,4373650744391914031,9641606876402405523,4742778578215475000,4040070953711778000,2166474486859326700,1250460246919467000],[2166474486859326700,1250460246919467000,3223387122603246085,9641606876402405523,8366826746721323000,799182088624980700,8876924567444570473,16141281339223525000,10316247453530667000,13846904447064916285,26023588519449590,7094974507355892337,15908863353600836000,3602127523880426500,4742778578215475000,5348726859432207000,17025512774010843000,6102164880094062000,4040070953711778000,14253625255053304000,17725188707009528000,10690271318666670633,4002029424845293600,12004715210677400127,13712392741217151405,16084834641749443000,4373650744391914031],[1250460246919467000,3223387122603246085,10316247453530667000,5348726859432207000,2166474486859326700,6102164880094062000,17725188707009528000,12004715210677400127,3602127523880426500,4742778578215475000,4373650744391914031,8876924567444570473,1789832635968548900,799182088624980700,17025512774010843000,4040070953711778000,7094974507355892337,9641606876402405523,5591755359500854000,4002029424845293600,26023588519449590,13712392741217151405,15908863353600836000,16141281339223525000,1924303400883620400,8366826746721323000,13846904447064916285,10690271318666670633,16084834641749443000,14253625255053304000],[13846904447064916285,4373650744391914031,4742778578215475000,366962978353611840,4002029424845293600,17725188707009528000,17025512774010843000,3223387122603246085,15908863353600836000,8876924567444570473,1924303400883620400,8366826746721323000,6102164880094062000,12004715210677400127,16141281339223525000,10316247453530667000,3602127523880426500,1789832635968548900,799182088624980700,7094974507355892337,2166474486859326700,26023588519449590,10690271318666670633,14253625255053304000,1250460246919467000,4040070953711778000,9641606876402405523,13712392741217151405,16084834641749443000,5348726859432207000,5591755359500854000],[9079109751490757000],[17725188707009528000],[13712392741217151405,17725188707009528000,5348726859432207000,17025512774010843000,2166474486859326700],[17725188707009528000,2166474486859326700,17025512774010843000,5348726859432207000,1250460246919467000,13712392741217151405],[2166474486859326700,10316247453530667000,1250460246919467000,17025512774010843000,17725188707009528000,13712392741217151405,5348726859432207000],[17025512774010843000,2166474486859326700,17725188707009528000,5348726859432207000,13712392741217151405,9079109751490757000,1250460246919467000,10316247453530667000],[17025512774010843000,13712392741217151405,8366826746721323000,2166474486859326700,1250460246919467000,5348726859432207000,9079109751490757000,10316247453530667000,5591755359500854000,17725188707009528000],[6102164880094062000,5591755359500854000,17025512774010843000,17725188707009528000,9079109751490757000,1250460246919467000,2166474486859326700,8366826746721323000,10316247453530667000,5348726859432207000,366962978353611840,13712392741217151405],[6102164880094062000,4742778578215475000,1250460246919467000,366962978353611840,1789832635968548900,14253625255053304000,5591755359500854000,2166474486859326700,13712392741217151405,17025512774010843000,17725188707009528000,9079109751490757000,10316247453530667000,5348726859432207000,13846904447064916285,8366826746721323000],[13846904447064916285,16084834641749443000,1789832635968548900,2166474486859326700,5348726859432207000,26023588519449590,1250460246919467000,6102164880094062000,366962978353611840,13712392741217151405,5591755359500854000,9079109751490757000,10316247453530667000,8876924567444570473,17725188707009528000,17025512774010843000,8366826746721323000,14253625255053304000,4742778578215475000,1924303400883620400],[9079109751490757000,366962978353611840,8876924567444570473,2166474486859326700,5348726859432207000,26023588519449590,13712392741217151405,14253625255053304000,10316247453530667000,1924303400883620400,17025512774010843000,6102164880094062000,16084834641749443000,5591755359500854000,1789832635968548900,13846904447064916285,1250460246919467000,17725188707009528000,8366826746721323000,4742778578215475000,4002029424845293600],[4002029424845293600,2166474486859326700,1924303400883620400,16084834641749443000,17725188707009528000,4742778578215475000,13846904447064916285,16141281339223525000,9079109751490757000,6102164880094062000,5591755359500854000,13712392741217151405,26023588519449590,10316247453530667000,17025512774010843000,5348726859432207000,1789832635968548900,366962978353611840,1250460246919467000,8876924567444570473,14253625255053304000,8366826746721323000],[16141281339223525000,4002029424845293600,4742778578215475000,8876924567444570473,799182088624980700,26023588519449590],[16141281339223525000,4742778578215475000,799182088624980700,4002029424845293600,1250460246919467000,26023588519449590,8876924567444570473,6102164880094062000],[14253625255053304000,8876924567444570473,1924303400883620400,1250460246919467000,799182088624980700,16141281339223525000,4742778578215475000,6102164880094062000,26023588519449590,4002029424845293600],[1924303400883620400,6102164880094062000,799182088624980700,1250460246919467000,26023588519449590,5348726859432207000,16141281339223525000,8876924567444570473,4002029424845293600,4742778578215475000,14253625255053304000],[8876924567444570473,799182088624980700,26023588519449590,14253625255053304000,6102164880094062000,1924303400883620400,16141281339223525000,4002029424845293600,366962978353611840,5348726859432207000,4742778578215475000,1250460246919467000],[26023588519449590,4742778578215475000,8366826746721323000,8876924567444570473,1250460246919467000,5348726859432207000,366962978353611840,14253625255053304000,799182088624980700,1924303400883620400,6102164880094062000,16141281339223525000,4002029424845293600],[1924303400883620400,799182088624980700,8366826746721323000,14253625255053304000,16141281339223525000,17725188707009528000,1250460246919467000,26023588519449590,5348726859432207000,4002029424845293600,6102164880094062000,4742778578215475000,8876924567444570473,366962978353611840],[1250460246919467000,8876924567444570473,14253625255053304000,16141281339223525000,1924303400883620400,17725188707009528000,4742778578215475000,13846904447064916285,6102164880094062000,8366826746721323000,16084834641749443000,17025512774010843000,4002029424845293600,799182088624980700,26023588519449590,366962978353611840,5348726859432207000],[14253625255053304000,26023588519449590,4742778578215475000,16084834641749443000,6102164880094062000,366962978353611840,17725188707009528000,799182088624980700,1924303400883620400,16141281339223525000,5591755359500854000,4002029424845293600,1250460246919467000,13846904447064916285,8876924567444570473,5348726859432207000,8366826746721323000,17025512774010843000],[799182088624980700,5591755359500854000,1789832635968548900,8366826746721323000,17025512774010843000,1250460246919467000,26023588519449590,13846904447064916285,1924303400883620400,16084834641749443000,5348726859432207000,14253625255053304000,4742778578215475000,6102164880094062000,8876924567444570473,366962978353611840,17725188707009528000,16141281339223525000,4002029424845293600],[8366826746721323000,4742778578215475000,10316247453530667000,26023588519449590,5348726859432207000,9079109751490757000,799182088624980700,13846904447064916285,14253625255053304000,1789832635968548900,366962978353611840,8876924567444570473,16084834641749443000,17725188707009528000,17025512774010843000,5591755359500854000,16141281339223525000,1924303400883620400,1250460246919467000,6102164880094062000,4002029424845293600],[16084834641749443000,17725188707009528000,16141281339223525000,799182088624980700,14253625255053304000,13712392741217151405,8366826746721323000,17025512774010843000,5348726859432207000,8876924567444570473,4002029424845293600,9079109751490757000,6102164880094062000,1250460246919467000,5591755359500854000,4742778578215475000,1789832635968548900,10316247453530667000,13846904447064916285,366962978353611840,26023588519449590,1924303400883620400],[16084834641749443000,14253625255053304000,1789832635968548900,8876924567444570473,5591755359500854000,366962978353611840,2166474486859326700,17725188707009528000,13712392741217151405,17025512774010843000,4002029424845293600,10316247453530667000,1924303400883620400,26023588519449590,1250460246919467000,9079109751490757000,8366826746721323000,16141281339223525000,799182088624980700,5348726859432207000,13846904447064916285,4742778578215475000,6102164880094062000],[3602127523880426500],[5591755359500854000,8366826746721323000],[6102164880094062000,2233138531352324200,5591755359500854000,8366826746721323000,366962978353611840],[8366826746721323000,13846904447064916285,6102164880094062000,8876924567444570473,5591755359500854000,366962978353611840,2233138531352324200,4742778578215475000,14253625255053304000,1789832635968548900],[13846904447064916285,2233138531352324200,8876924567444570473,366962978353611840,1924303400883620400,1789832635968548900,14253625255053304000,5591755359500854000,16084834641749443000,8366826746721323000,26023588519449590,4742778578215475000,6102164880094062000],[14253625255053304000,4742778578215475000,6102164880094062000,1789832635968548900,12796400626461303056,2233138531352324200,8876924567444570473,26023588519449590,8366826746721323000,366962978353611840,13846904447064916285,1924303400883620400,1250460246919467000,16084834641749443000,5591755359500854000],[4002029424845293600,366962978353611840,1789832635968548900,14253625255053304000,4742778578215475000,13846904447064916285,1924303400883620400,2233138531352324200,1250460246919467000,6102164880094062000,16084834641749443000,12796400626461303056,5591755359500854000,8366826746721323000,26023588519449590,8876924567444570473],[4002029424845293600,14253625255053304000,366962978353611840,1924303400883620400,12796400626461303056,5591755359500854000,16141281339223525000,1789832635968548900,16084834641749443000,26023588519449590,13846904447064916285,8366826746721323000,2233138531352324200,1250460246919467000,6102164880094062000,8876924567444570473,4742778578215475000],[9079109751490757000],[9079109751490757000,10316247453530667000],[10316247453530667000,17725188707009528000,9079109751490757000],[3602127523880426500],[9079109751490757000],[2233138531352324200,9079109751490757000],[2233138531352324200,8366826746721323000,366962978353611840,5591755359500854000,9079109751490757000],[366962978353611840,2233138531352324200,5591755359500854000,8366826746721323000,6102164880094062000,9079109751490757000],[5591755359500854000,9079109751490757000,13846904447064916285,2233138531352324200,366962978353611840,1789832635968548900,14253625255053304000,6102164880094062000,8366826746721323000],[1924303400883620400,13846904447064916285,366962978353611840,14253625255053304000,8366826746721323000,2233138531352324200,16084834641749443000,5591755359500854000,6102164880094062000,9079109751490757000,1789832635968548900],[366962978353611840,8366826746721323000,6102164880094062000,14253625255053304000,2233138531352324200,1924303400883620400,9079109751490757000,5591755359500854000,16084834641749443000,4742778578215475000,13846904447064916285,1789832635968548900],[14253625255053304000,1924303400883620400,26023588519449590,5591755359500854000,16084834641749443000,1789832635968548900,9079109751490757000,13846904447064916285,366962978353611840,6102164880094062000,4742778578215475000,4002029424845293600,2233138531352324200,8366826746721323000],[1789832635968548900,26023588519449590,5591755359500854000,1924303400883620400,16084834641749443000,13846904447064916285,4742778578215475000,9079109751490757000,366962978353611840,8876924567444570473,2233138531352324200,14253625255053304000,8366826746721323000,4002029424845293600,6102164880094062000],[5591755359500854000,16141281339223525000,4742778578215475000,14253625255053304000,26023588519449590,2233138531352324200,13846904447064916285,1789832635968548900,1924303400883620400,16084834641749443000,8366826746721323000,8876924567444570473,6102164880094062000,9079109751490757000,366962978353611840,4002029424845293600],[16141281339223525000,1789832635968548900,16084834641749443000,26023588519449590,8876924567444570473,13846904447064916285,1924303400883620400,2233138531352324200,8366826746721323000,10316247453530667000,5591755359500854000,4742778578215475000,6102164880094062000,366962978353611840,4002029424845293600,9079109751490757000,14253625255053304000],[4002029424845293600,2233138531352324200,1789832635968548900,1924303400883620400,16084834641749443000,1250460246919467000,5591755359500854000,4742778578215475000,14253625255053304000,9079109751490757000,8876924567444570473,10316247453530667000,13846904447064916285,6102164880094062000,8366826746721323000,26023588519449590,12796400626461303056,366962978353611840,16141281339223525000],[]],"selection_redo_history":[]}}},"collapsed":[17725188707009528001,9079109751490757001,3602127523880426501],"name":"changing-seasons.graphite","commit_hash":"e647ca9f91a5e823137122126fe9e980f65d62ea","document_ptz":{"pan":[-999.7861718531644,-499.944688737096],"tilt":0.0,"zoom":0.940975,"flip":false},"document_mode":"DesignMode","view_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file +{"network_interface":{"network":{"exports":[{"Node":{"node_id":3143874172491239000,"output_index":0}}],"nodes":[[10316247453530667000,{"inputs":[{"Node":{"node_id":9079109751490757000,"output_index":0}},{"Node":{"node_id":1250460246919467000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7954638344846060000,{"inputs":[{"Node":{"node_id":5991296268862790000,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.1875,"green":0.0,"blue":0.0,"alpha":0.203125}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.19140625,"green":0.0,"blue":0.0,"alpha":0.203125}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17021405646895729000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":1.0,"green":0.31764707,"blue":0.15686275,"alpha":1.0}],[0.5,{"red":1.0,"green":0.5686275,"blue":0.25490198,"alpha":1.0}],[1.0,{"red":1.0,"green":0.7294118,"blue":0.16078432,"alpha":1.0}]]},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::GradientValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8366826746721323000,{"inputs":[{"Node":{"node_id":5591755359500854000,"output_index":0}},{"Node":{"node_id":13846904447064916285,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1250460246919467000,{"inputs":[{"Node":{"node_id":4742778578215475000,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Union"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18233215297647862000,{"inputs":[{"Node":{"node_id":14337610765966946000,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[1000.0,500.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14253625255053304000,{"inputs":[{"Node":{"node_id":1924303400883620400,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.09778450863315612,0.7264556766766779],"end":[0.09778450863315612,0.3634234796342139]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3143874172491239000,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":18233215297647862000,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[2000.0,1000.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Import":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15908863353600836000,{"inputs":[{"Node":{"node_id":7094974507355892337,"output_index":0}},{"Value":{"tagged_value":{"F64":350.0},"exposed":false}},{"Node":{"node_id":4373650744391914031,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8895289679682140000,{"inputs":[{"Node":{"node_id":213744308682803360,"output_index":0}},{"Node":{"node_id":7954638344846060000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17725188707009528000,{"inputs":[{"Node":{"node_id":10316247453530667000,"output_index":0}},{"Node":{"node_id":17025512774010843000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5591755359500854000,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":1789832635968548900,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3223387122603246085,{"inputs":[{"Node":{"node_id":3405958409855358559,"output_index":0}},{"Value":{"tagged_value":{"String":"2 - 0.2A"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::MathNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1789832635968548900,{"inputs":[{"Node":{"node_id":1924303400883620400,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.99215686,"green":0.49019608,"blue":0.11764706,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.25}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17855766443650990000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":0.1764706,"green":0.44313726,"blue":0.05882353,"alpha":1.0}],[0.5,{"red":0.45490196,"green":0.627451,"blue":0.3254902,"alpha":1.0}],[1.0,{"red":1.0,"green":0.5529412,"blue":0.16078432,"alpha":1.0}]]},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::GradientValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16084834641749443000,{"inputs":[{"Node":{"node_id":16141281339223525000,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.99215686,"green":0.49019608,"blue":0.11764706,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.25}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1924303400883620400,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[12399235852192450000,16255990754021933000,15620668684239604000,5432878891027338000],"remove":[5992115648840007000],"delta":[[5432878891027338000,[-0.8525377229081244,-6.779663923182397]],[15620668684239604000,[-7.105427357601002e-15,61.89300411522633]],[16255990754021933000,[3.423868312757215,60.83950617283953]],[12399235852192450000,[3.4492455418381667,-6.252914951989055]]]},"segments":{"add":[1366074222973177300,9911415907547690000,3820594103877681000,5933636287523951000],"remove":[16939395239973712000],"start_point":[[3820594103877681000,15620668684239604000],[9911415907547690000,16255990754021933000],[1366074222973177300,12399235852192450000],[5933636287523951000,5432878891027338000]],"end_point":[[1366074222973177300,16255990754021933000],[5933636287523951000,12399235852192450000],[3820594103877681000,5432878891027338000],[9911415907547690000,15620668684239604000]],"handle_primary":[[5933636287523951000,[0.0,0.0]],[1366074222973177300,[-12.729766803840905,34.6776406035666]],[9911415907547690000,[-0.6380090646381761,1.00935799390129]],[3820594103877681000,[-1.2746024488136916,-0.5300005080526233]]],"handle_end":[[5933636287523951000,[0.0,0.0]],[9911415907547690000,[1.1025726645520375,0.4584677151070898]],[1366074222973177300,[1.0502464055275982,-1.6615353350607336]],[3820594103877681000,[-11.281207133058956,31.692729766803836]]],"stroke":[[9911415907547690000,0],[1366074222973177300,0],[5933636287523951000,0],[3820594103877681000,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"Primary","segment":9911415907547690000},{"ty":"End","segment":1366074222973177300}],[{"ty":"Primary","segment":3820594103877681000},{"ty":"End","segment":9911415907547690000}]],"remove_g1_continuous":[[{"ty":"End","segment":3820594103877681000},{"ty":"Primary","segment":16939395239973712000}],[{"ty":"Primary","segment":1366074222973177300},{"ty":"End","segment":5933636287523951000}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4040070953711778000,{"inputs":[{"Node":{"node_id":15908863353600836000,"output_index":0}},{"Node":{"node_id":2166474486859326700,"output_index":0}},{"Node":{"node_id":10690271318666670633,"output_index":0}},{"Node":{"node_id":12004715210677400127,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":360.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17025512774010843000,{"inputs":[{"Node":{"node_id":13712392741217151405,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.3155737704918033,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.203125}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4742778578215475000,{"inputs":[{"Node":{"node_id":6102164880094062000,"output_index":0}},{"Node":{"node_id":8876924567444570473,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10463288500489480000,{"inputs":[{"Node":{"node_id":4600332392291315000,"output_index":0}},{"Node":{"node_id":4040070953711778000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3602127523880426500,{"inputs":[{"Value":{"tagged_value":{"Raster":{"element":[{"width":0,"height":0,"data":[0,""]}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Node":{"node_id":17725188707009528000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6102164880094062000,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14253625255053304000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4002029424845293600,{"inputs":[{"Node":{"node_id":16141281339223525000,"output_index":0}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[],"remove":[],"delta":[[4305429814263425000,[-22.598416051654286,-32.71009758017498]],[6358127410693457000,[-37.72290809327849,-10.54183813443079]],[7888691908524886000,[4.351165980795637,-8.105624142661181]],[16594203120813726000,[-62.53607037678802,-36.02218510909459]],[9934671969500465000,[-43.209876543209866,-14.975308641975468]],[11874978858302702000,[5.843621399176955,-10.914951989026145]],[16211201987812043000,[-7.105427357601002e-15,-23.90123456790124]],[753144493519442600,[-50.013717421124845,21.17283950617286]],[4839542169175255000,[-127.45378793812174,-12.06205126188287]],[9664410344080632000,[-35.276890617605005,-25.55103086414088]],[5755835744378529000,[-17.333333333333343,-33.1358024691358]],[10418348123687606000,[-61.3893894663837,-52.000301612710835]],[353992768245212100,[-42.27413685969588,-41.62581710194484]],[11897064075526275000,[-61.65765794556601,-32.902083082000814]],[4570709177617499000,[-62.76543209876538,-6.827160493827164]],[12582713598977278000,[9.333333333333268,-66.33333333333327]],[891169987742051100,[-4.148148148148122,-38.03703703703696]],[15620564416450861000,[-47.66529492455423,-18.042524005486992]]]},"segments":{"add":[],"remove":[],"start_point":[],"end_point":[],"handle_primary":[[2416974091592514600,[0.0,0.0]],[3138315255762406000,[4.038408779149492,-14.5733882030178]],[3359087961315235300,[-0.2881601545358876,-1.8891182956799923]],[1562499453192082400,[-0.08779149519892826,-1.6680384087791111]],[4183498485018509000,[-37.13580246913581,14.485596707818928]],[14351209823603001000,[0.0,0.0]],[9552874240071498000,[-5.53086419753086,-0.9657064471879552]],[18320159308706247000,[0.0,0.0]],[8119312711427333000,[0.0,0.0]],[3270826560526153000,[-10.966434817733528,4.317749647005792]],[15866454419016458000,[-9.913311783442964,6.121455371873111]],[4590600976245504500,[-6.49657064471878,1.2290809327846404]],[5680639457836474000,[0.0,0.0]],[2092445122112560000,[-7.308641975308667,2.9629629629629903]],[16362428386097514000,[-23.70370370370371,19.950617283950606]],[17948338937502876000,[0.0,0.0]],[12441313998107066000,[-4.938271604938336,6.518518518518476]]],"handle_end":[[4183498485018509000,[-21.94787379972564,36.565157750342905]],[16362428386097514000,[-6.962962962962983,53.17283950617292]],[2092445122112560000,[-9.086419753086416,21.135802469135797]],[1562499453192082400,[-0.6668238551234532,2.406364346749864]],[3359087961315235300,[-7.813443072702299,7.725651577503442]],[12441313998107066000,[5.171144805176233,13.506721506057374]],[2416974091592514600,[37.06995884773662,-14.595336076817532]],[4590600976245504500,[14.222222222222207,7.989026063100134]],[14351209823603001000,[-7.374485596707803,5.70644718792866]],[3270826560526153000,[-49.33882030178324,27.10562414266127]],[8119312711427333000,[-16.241426611796967,5.355281207133061]],[9552874240071498000,[-7.286694101508885,7.55006858710567]],[3138315255762406000,[-8.098765432098759,2.947337553780912]],[18320159308706247000,[-41.26200274348419,15.978052126200277]],[15866454419016458000,[2.458161865569238,7.637860082304542]],[7709585677887591000,[-8.603566529492472,0.8779149519890552]],[5680639457836474000,[0.2881601545359018,1.8891182956799923]],[17948338937502876000,[-50.30452674897121,26.776406035665325]]],"stroke":[]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[366962978353611840,{"inputs":[{"Node":{"node_id":8366826746721323000,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Union"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16379524086934900000,{"inputs":[{"Node":{"node_id":9609388203059839318,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.41796875,"green":0.1028595,"blue":0.1028595,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.421875,"green":0.1038208,"blue":0.1038208,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4600332392291315000,{"inputs":[{"Node":{"node_id":4040070953711778000,"output_index":0}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Node":{"node_id":11677958249556146000,"output_index":0}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::AssignColorsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7386572856931342000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":100.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::PercentageValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4373650744391914031,{"inputs":[{"Node":{"node_id":3405958409855358559,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16141281339223525000,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[8940743774820468000,11897064075526275000,9664410344080632000,10418348123687606000,16594203120813726000,4839542169175255000,353992768245212100,4305429814263425000,15620564416450861000,4570709177617499000,9934671969500465000,6358127410693457000,753144493519442600,11874978858302702000,7888691908524886000,12582713598977278000,891169987742051100,5755835744378529000,16211201987812043000],"remove":[],"delta":[[7888691908524886000,[66.32098765432096,-154.30864197530863]],[4570709177617499000,[114.716049382716,-90.16049382716052]],[4305429814263425000,[91.25136529719612,-51.92090379156713]],[11897064075526275000,[72.71938634062775,26.932261408475423]],[16211201987812043000,[0.0,-231.0]],[8940743774820468000,[0.0,0.0]],[4839542169175255000,[157.56627079134535,-37.10118604950259]],[12582713598977278000,[49.135802469135854,-136.33333333333334]],[11874978858302702000,[92.39506172839504,-161.41975308641972]],[9664410344080632000,[64.51145851883956,11.32880864191867]],[16594203120813726000,[126.09711290079348,-8.575894451947931]],[5755835744378529000,[28.444444444444457,-210.4567901234568]],[6358127410693457000,[115.50617283950618,-132.38271604938265]],[15620564416450861000,[141.77777777777777,-86.60493827160491]],[891169987742051100,[63.802469135802426,-190.90123456790127]],[753144493519442600,[136.8395061728395,-177.6172839506173]],[9934671969500465000,[125.38271604938268,-124.67901234567891]],[10418348123687606000,[112.8352056529406,14.952290638773944]],[353992768245212100,[114.87770338918835,-41.33714586101814]]]},"segments":{"add":[7709585677887591000,14351209823603001000,18320159308706247000,8119312711427333000,4590600976245504500,17948338937502876000,1562499453192082400,3138315255762406000,2416974091592514600,3270826560526153000,5680639457836474000,3359087961315235300,9552874240071498000,15866454419016458000,4183498485018509000,2092445122112560000,16362428386097514000,12441313998107066000],"remove":[],"start_point":[[7709585677887591000,8940743774820468000],[15866454419016458000,11874978858302702000],[17948338937502876000,4839542169175255000],[5680639457836474000,9934671969500465000],[14351209823603001000,11897064075526275000],[2092445122112560000,12582713598977278000],[12441313998107066000,5755835744378529000],[3270826560526153000,4570709177617499000],[16362428386097514000,891169987742051100],[1562499453192082400,353992768245212100],[9552874240071498000,753144493519442600],[2416974091592514600,15620564416450861000],[3359087961315235300,6358127410693457000],[3138315255762406000,4305429814263425000],[8119312711427333000,10418348123687606000],[4590600976245504500,16594203120813726000],[4183498485018509000,7888691908524886000],[18320159308706247000,9664410344080632000]],"end_point":[[5680639457836474000,6358127410693457000],[1562499453192082400,4305429814263425000],[17948338937502876000,353992768245212100],[3359087961315235300,753144493519442600],[3270826560526153000,9934671969500465000],[8119312711427333000,16594203120813726000],[4590600976245504500,4839542169175255000],[14351209823603001000,9664410344080632000],[2092445122112560000,891169987742051100],[3138315255762406000,15620564416450861000],[12441313998107066000,16211201987812043000],[16362428386097514000,5755835744378529000],[2416974091592514600,4570709177617499000],[9552874240071498000,11874978858302702000],[7709585677887591000,11897064075526275000],[4183498485018509000,12582713598977278000],[15866454419016458000,7888691908524886000],[18320159308706247000,10418348123687606000]],"handle_primary":[[4590600976245504500,[-7.759646437163781,-18.695929243596197]],[2092445122112560000,[-1.5802469135804245,-5.5308641975308035]],[3359087961315235300,[2.7654320987655296,-14.419753086419746]],[17948338937502876000,[0.0,0.0]],[18320159308706247000,[0.0,0.0]],[16362428386097514000,[-14.913580246913511,12.641975308642031]],[3138315255762406000,[-2.469006630399008,-5.902063388586043]],[14351209823603001000,[0.0,0.0]],[3270826560526153000,[-9.086419753086432,-7.506172839506121]],[12441313998107066000,[-4.938271604938336,6.518518518518533]],[8119312711427333000,[0.0,0.0]],[4183498485018509000,[-6.617283950617207,15.308641975308689]],[2416974091592514600,[0.0,0.0]],[15866454419016458000,[-10.469135802469168,13.432098765432102]],[5680639457836474000,[0.0,0.0]],[7709585677887591000,[0.0,0.0]],[1562499453192082400,[-15.34246181071461,-3.7168967220297873]],[9552874240071498000,[-21.33333333333331,12.049382716049422]]],"handle_end":[[5680639457836474000,[-2.7654320987655296,14.419753086419746]],[9552874240071498000,[4.938271604938279,11.061728395061806]],[18320159308706247000,[-24.983271918092953,-7.776766653003392]],[14351209823603001000,[5.742854988208705,6.327636391047918]],[3359087961315235300,[-27.099224819820336,19.753086419753146]],[4590600976245504500,[-5.92501398131742,10.665547436428083]],[17948338937502876000,[25.51458639999055,20.651563178633637]],[8119312711427333000,[-40.68684029964413,7.631779585305026]],[12441313998107066000,[13.234567901234527,34.5679012345679]],[15866454419016458000,[0.19753086419757435,13.827160493827137]],[2092445122112560000,[-20.345679012345613,18.5679012345679]],[4183498485018509000,[4.938271604938336,-1.1851851851851052]],[3138315255762406000,[-21.33333333333337,3.753086419753061]],[3270826560526153000,[-13.03703703703701,9.679012345678984]],[1562499453192082400,[2.0974057383288596,5.01376604938514]],[7709585677887591000,[-42.51530058403631,-10.382498109968708]],[2416974091592514600,[9.086419753086377,7.506172839506235]],[16362428386097514000,[-8.0,38.419753086419746]]],"stroke":[[3270826560526153000,0],[1562499453192082400,0],[16362428386097514000,0],[14351209823603001000,0],[4183498485018509000,0],[2092445122112560000,0],[8119312711427333000,0],[4590600976245504500,0],[9552874240071498000,0],[12441313998107066000,0],[3359087961315235300,0],[2416974091592514600,0],[17948338937502876000,0],[18320159308706247000,0],[3138315255762406000,0],[15866454419016458000,0],[7709585677887591000,0],[5680639457836474000,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":5680639457836474000},{"ty":"Primary","segment":3359087961315235300}],[{"ty":"End","segment":2416974091592514600},{"ty":"Primary","segment":3270826560526153000}],[{"ty":"End","segment":1562499453192082400},{"ty":"Primary","segment":3138315255762406000}]],"remove_g1_continuous":[[{"ty":"End","segment":4183498485018509000},{"ty":"Primary","segment":2092445122112560000}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9609388203059839318,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9079109751490757000,{"inputs":[{"Value":{"tagged_value":{"Raster":{"element":[{"width":0,"height":0,"data":[0,""]}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Node":{"node_id":366962978353611840,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":false,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[799182088624980700,{"inputs":[{"Node":{"node_id":7386572856931342000,"output_index":0}},{"Value":{"tagged_value":{"F64":100.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::DivideNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11677958249556146000,{"inputs":[{"Node":{"node_id":17021405646895729000,"output_index":0}},{"Node":{"node_id":17855766443650990000,"output_index":0}},{"Value":{"tagged_value":{"BlendMode":"Normal"},"exposed":false}},{"Node":{"node_id":7386572856931342000,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"raster_nodes::blending_nodes::BlendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13846904447064916285,{"inputs":[{"Node":{"node_id":16084834641749443000,"output_index":0}},{"Value":{"tagged_value":{"ReferencePoint":"CenterLeft"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::MirrorNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10690271318666670633,{"inputs":[{"Node":{"node_id":12004715210677400127,"output_index":0}},{"Value":{"tagged_value":{"F64":0.2},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::SubtractNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2166474486859326700,{"inputs":[{"Node":{"node_id":13712392741217151405,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.0}],[0.6885245901639344,{"red":0.08984375,"green":0.08984375,"blue":0.08984375,"alpha":0.08775313}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.20392157}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9490196,"green":0.38039216,"blue":0.10980392,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.0}],[0.6885245901639344,{"red":0.08984375,"green":0.08984375,"blue":0.08984375,"alpha":0.08775313}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.20392157}]],"gradient_type":"Radial","start":[0.5024847204000202,0.41434795196968177],"end":[0.9633481630366972,0.41434795196968194]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3405958409855358559,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::InstanceIndexNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"INDEX","inject":""}}],[5348726859432207000,{"inputs":[{"Node":{"node_id":1250460246919467000,"output_index":0}},{"Node":{"node_id":366962978353611840,"output_index":0}},{"Node":{"node_id":799182088624980700,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::MorphNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3430686124240113700,{"inputs":[{"Node":{"node_id":3602127523880426500,"output_index":0}},{"Node":{"node_id":16379524086934900000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13712392741217151405,{"inputs":[{"Node":{"node_id":5348726859432207000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16236970157339521798,{"inputs":[{"Node":{"node_id":8895289679682140000,"output_index":0}},{"Value":{"tagged_value":{"U64":8},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::InstanceRepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":"INDEX"}}],[14250786159408925409,{"inputs":[{"Node":{"node_id":3430686124240113700,"output_index":0}},{"Node":{"node_id":16236970157339521798,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8876924567444570473,{"inputs":[{"Node":{"node_id":26023588519449590,"output_index":0}},{"Value":{"tagged_value":{"ReferencePoint":"CenterLeft"},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::MirrorNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12004715210677400127,{"inputs":[{"Node":{"node_id":3223387122603246085,"output_index":0}},{"Value":{"tagged_value":{"F64":1.1},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::MaxNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14337610765966946000,{"inputs":[{"Node":{"node_id":14250786159408925409,"output_index":0}},{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5991296268862790000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[213744308682803360,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":10463288500489480000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[26023588519449590,{"inputs":[{"Node":{"node_id":4002029424845293600,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9765625,"green":0.7715821,"blue":0.2861023,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.09778450863315612,0.7264556766766779],"end":[0.09778450863315612,0.3634234796342139]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7094974507355892337,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":2000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1000.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[4002029424845293600,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":["Modification"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[26023588519449590,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13712392741217151405,{"persistent_metadata":{"reference":"Cache","display_name":"Cache","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Data","input_description":"TODO"}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-5,-32]}}},"network_metadata":null}}],[8895289679682140000,{"persistent_metadata":{"reference":"Merge","display_name":"Depth Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[2,-45]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1250460246919467000,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-25]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-144.5,-36.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,206.0,485.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9079109751490757000,{"persistent_metadata":{"reference":"Merge","display_name":"Maple Leaf","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17855766443650990000,{"persistent_metadata":{"reference":"Gradient Value","display_name":"Gradient Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Gradient","input_description":""}}],"output_names":["GradientStops"],"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-40]}}},"network_metadata":null}}],[18233215297647862000,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3143874172491239000,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","unit":" px","is_integer":true},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":" px","is_integer":true},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[26,-56]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3430686124240113700,{"persistent_metadata":{"reference":"Merge","display_name":"Solid Backdrop","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":8}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7094974507355892337,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-38]}}},"network_metadata":null}}],[10463288500489480000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[191.5,23.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,542.0,545.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[13846904447064916285,{"persistent_metadata":{"reference":"Mirror","display_name":"Mirror","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Relative To Bounds","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Keep Original","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1789832635968548900,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14337610765966946000,{"persistent_metadata":{"reference":"Merge","display_name":"NOTE: Change seasons with the \"Percentage Value\" parameter","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[14,-52]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3602127523880426500,{"persistent_metadata":{"reference":"Merge","display_name":"Individual Leaf Views","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":3}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4373650744391914031,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-33,-37]}}},"network_metadata":null}}],[16141281339223525000,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":["Modification"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-58,-22]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1924303400883620400,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":["Modification"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-44,-19]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2166474486859326700,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[2,-32]}}},"network_metadata":null}}],[10690271318666670633,{"persistent_metadata":{"reference":"Subtract","display_name":"Subtract","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Minuend","input_description":"The left-hand side of the subtraction operation.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Subtrahend","input_description":"The right-hand side of the subtraction operation.\n"}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-36]}}},"network_metadata":null}}],[3223387122603246085,{"persistent_metadata":{"reference":"Math","display_name":"Math","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operand A","input_description":"The value of \"A\" when calculating the expression\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Expression","input_description":"A math expression that may incorporate \"A\" and/or \"B\", such as \"sqrt(A + B) - B^2\"\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operand B","input_description":"The value of \"B\" when calculating the expression\n"}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-33,-35]}}},"network_metadata":null}}],[16236970157339521798,{"persistent_metadata":{"reference":"Instance Repeat","display_name":"Instance Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Count","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Reverse","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5348726859432207000,{"persistent_metadata":{"reference":"Morph","display_name":"Morph","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Source","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Target","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Time","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-12,-32]}}},"network_metadata":null}}],[15908863353600836000,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Range","range_max":100.0,"range_min":1.0,"min":0.01,"blank_assist":true},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":0.0,"is_integer":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-38]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-312.5,-48.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,38.0,473.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[213744308682803360,{"persistent_metadata":{"reference":"Merge","display_name":"Leaves","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14253625255053304000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3405958409855358559,{"persistent_metadata":{"reference":"Instance Index","display_name":"Instance Index","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Loop Level","input_description":""}}],"output_names":["f64"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-36]}}},"network_metadata":null}}],[17021405646895729000,{"persistent_metadata":{"reference":"Gradient Value","display_name":"Gradient Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Gradient","input_description":""}}],"output_names":["GradientStops"],"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-41]}}},"network_metadata":null}}],[9609388203059839318,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4600332392291315000,{"persistent_metadata":{"reference":"Assign Colors","display_name":"Assign Colors","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Content","input_description":"The content with vector paths to apply the fill and/or stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"Whether to style the fill.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Stroke","input_description":"Whether to style the stroke.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_gradient","input_name":"Gradient","input_description":"The range of colors to select from.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Reverse","input_description":"Whether to reverse the gradient.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Randomize","input_description":"Whether to randomize the color selection for each element from throughout the gradient.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_seed","input_name":"Seed","input_description":"The seed used for randomization.\nSeed to determine unique variations on the randomized color selection.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_repeat_every","input_name":"Repeat Every","input_description":"The number of elements to span across the gradient before repeating. A 0 value will span the entire gradient once.\n"}}],"output_names":["Content"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17025512774010843000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17725188707009528000,{"persistent_metadata":{"reference":"Merge","display_name":"Morph","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[9,-29]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16084834641749443000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7386572856931342000,{"persistent_metadata":{"reference":"Percentage Value","display_name":"Percentage Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Percentage","input_description":""}}],"output_names":["f64"],"locked":false,"pinned":true,"node_type_metadata":{"Node":{"position":{"Absolute":[-47,-39]}}},"network_metadata":null}}],[366962978353611840,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-19,-16]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4742778578215475000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-30,-22]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4040070953711778000,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-12,-38]}}},"network_metadata":null}}],[6102164880094062000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5591755359500854000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8366826746721323000,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-30,-13]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[799182088624980700,{"persistent_metadata":{"reference":"Divide","display_name":"Divide","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Numerator","input_description":"The left-hand side of the division operation.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Denominator","input_description":"The right-hand side of the division operation.\n"}}],"output_names":["Output"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-30]}}},"network_metadata":null}}],[11677958249556146000,{"persistent_metadata":{"reference":"Blend","display_name":"Blend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Under","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Blend Mode","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":["Color"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-40,-41]}}},"network_metadata":null}}],[12004715210677400127,{"persistent_metadata":{"reference":"Max","display_name":"Max","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"One of the two numbers, of which the greater will be returned.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Other Value","input_description":"The other of the two numbers, of which the greater will be returned.\n"}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-26,-35]}}},"network_metadata":null}}],[14250786159408925409,{"persistent_metadata":{"reference":"Merge","display_name":"Leaf Levels","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16379524086934900000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5991296268862790000,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8876924567444570473,{"persistent_metadata":{"reference":"Mirror","display_name":"Mirror","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Relative To Bounds","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Keep Original","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7954638344846060000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10316247453530667000,{"persistent_metadata":{"reference":"Merge","display_name":"Oak Leaf","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":1}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[287.9366299999996,768.3549700000001],"tilt":0.0,"zoom":0.8523324275362318,"flip":false},"node_graph_to_viewport":[0.8523324275362318,0.0,0.0,0.8523324275362318,1236.0,1235.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[1924303400883620400,8366826746721323000,16084834641749443000,13846904447064916285,366962978353611840,14253625255053304000,4002029424845293600,6102164880094062000,1250460246919467000,26023588519449590,5591755359500854000,8876924567444570473,4742778578215475000,1789832635968548900,16141281339223525000],[799182088624980700,4002029424845293600,366962978353611840,14253625255053304000,5348726859432207000,4742778578215475000,16084834641749443000,8876924567444570473,1924303400883620400,26023588519449590,16141281339223525000,1789832635968548900,1250460246919467000,13846904447064916285,5591755359500854000,6102164880094062000,8366826746721323000],[8876924567444570473,799182088624980700,26023588519449590,8366826746721323000,16084834641749443000,5591755359500854000,6102164880094062000,16141281339223525000,366962978353611840,1250460246919467000,4002029424845293600,1789832635968548900,1924303400883620400,14253625255053304000,13712392741217151405,13846904447064916285,5348726859432207000,4742778578215475000],[1250460246919467000,16084834641749443000,8366826746721323000,4002029424845293600,799182088624980700,26023588519449590,5348726859432207000,366962978353611840,8876924567444570473,6102164880094062000,13712392741217151405,13846904447064916285,9079109751490757000,5591755359500854000,16141281339223525000,1789832635968548900,1924303400883620400,14253625255053304000,4742778578215475000],[1250460246919467000,5348726859432207000,8366826746721323000,14253625255053304000,5591755359500854000,13846904447064916285,26023588519449590,799182088624980700,4742778578215475000,8876924567444570473,6102164880094062000,1924303400883620400,10316247453530667000,13712392741217151405,366962978353611840,1789832635968548900,4002029424845293600,16084834641749443000,9079109751490757000,16141281339223525000],[4742778578215475000,13712392741217151405,9079109751490757000,8876924567444570473,8366826746721323000,10316247453530667000,5348726859432207000,16084834641749443000,13846904447064916285,5591755359500854000,1789832635968548900,16141281339223525000,1250460246919467000,14253625255053304000,799182088624980700,366962978353611840,4002029424845293600,1924303400883620400,17725188707009528000,26023588519449590,6102164880094062000,17025512774010843000],[5591755359500854000,366962978353611840,4002029424845293600,3602127523880426500,5348726859432207000,13846904447064916285,6102164880094062000,26023588519449590,17025512774010843000,14253625255053304000,17725188707009528000,13712392741217151405,4742778578215475000,1924303400883620400,1789832635968548900,1250460246919467000,16141281339223525000,799182088624980700,8366826746721323000,9079109751490757000,8876924567444570473,10316247453530667000,16084834641749443000],[5591755359500854000,8366826746721323000,366962978353611840,6102164880094062000],[8366826746721323000,6102164880094062000,5591755359500854000,14253625255053304000,1789832635968548900,8876924567444570473,4742778578215475000,13846904447064916285,366962978353611840],[1789832635968548900,8366826746721323000,366962978353611840,5591755359500854000,4742778578215475000,26023588519449590,8876924567444570473,6102164880094062000,13846904447064916285,16084834641749443000,14253625255053304000],[8366826746721323000,13846904447064916285,26023588519449590,8876924567444570473,366962978353611840,4002029424845293600,1789832635968548900,16084834641749443000,4742778578215475000,6102164880094062000,5591755359500854000,1250460246919467000,14253625255053304000],[8876924567444570473,799182088624980700,5348726859432207000,13846904447064916285,366962978353611840,8366826746721323000,5591755359500854000,4742778578215475000,26023588519449590,4002029424845293600,16084834641749443000,14253625255053304000,1250460246919467000,6102164880094062000,1789832635968548900],[6102164880094062000,16084834641749443000,4742778578215475000,366962978353611840,16141281339223525000,1789832635968548900,26023588519449590,5591755359500854000,8876924567444570473,13846904447064916285,1924303400883620400,799182088624980700,8366826746721323000,4002029424845293600,5348726859432207000,1250460246919467000,14253625255053304000],[1250460246919467000,26023588519449590,13846904447064916285,14253625255053304000,1924303400883620400,16141281339223525000,6102164880094062000,4742778578215475000,5348726859432207000,8366826746721323000,799182088624980700,1789832635968548900,4002029424845293600,16084834641749443000,8876924567444570473,366962978353611840,13712392741217151405,5591755359500854000],[8366826746721323000,8876924567444570473,1924303400883620400,1250460246919467000,26023588519449590,366962978353611840,14253625255053304000,6102164880094062000,4002029424845293600,16084834641749443000,4742778578215475000,13846904447064916285,1789832635968548900,5348726859432207000,5591755359500854000,799182088624980700,16141281339223525000],[799182088624980700,8366826746721323000,6102164880094062000,26023588519449590,1250460246919467000,1789832635968548900,16084834641749443000,8876924567444570473,4002029424845293600,4742778578215475000,5348726859432207000,13846904447064916285,366962978353611840,14253625255053304000,5591755359500854000],[16084834641749443000,4742778578215475000,6102164880094062000,13846904447064916285,5348726859432207000,1789832635968548900,1250460246919467000,14253625255053304000,799182088624980700,26023588519449590,5591755359500854000,366962978353611840,8366826746721323000,8876924567444570473],[8876924567444570473,26023588519449590,366962978353611840,1250460246919467000,4742778578215475000,14253625255053304000,5591755359500854000,13846904447064916285,6102164880094062000,4002029424845293600,16084834641749443000,8366826746721323000,5348726859432207000,799182088624980700,1789832635968548900],[5591755359500854000,8876924567444570473,16141281339223525000,4002029424845293600,1789832635968548900,1250460246919467000,5348726859432207000,4742778578215475000,6102164880094062000,366962978353611840,16084834641749443000,8366826746721323000,1924303400883620400,799182088624980700,26023588519449590,14253625255053304000,13846904447064916285],[1924303400883620400,8876924567444570473,1789832635968548900,4002029424845293600,799182088624980700,16084834641749443000,13846904447064916285,8366826746721323000,26023588519449590,6102164880094062000,13712392741217151405,5348726859432207000,366962978353611840,16141281339223525000,14253625255053304000,4742778578215475000,5591755359500854000,1250460246919467000],[5591755359500854000,8366826746721323000,366962978353611840,6102164880094062000],[8366826746721323000,366962978353611840,4742778578215475000,5591755359500854000,6102164880094062000],[14253625255053304000,8366826746721323000,366962978353611840,1789832635968548900,8876924567444570473,5591755359500854000,4742778578215475000,6102164880094062000,13846904447064916285],[4742778578215475000,5591755359500854000,13846904447064916285,366962978353611840,14253625255053304000,8876924567444570473,16084834641749443000,8366826746721323000,1789832635968548900,26023588519449590,6102164880094062000],[1789832635968548900,5591755359500854000,4742778578215475000,8366826746721323000,13846904447064916285,6102164880094062000,1250460246919467000,16084834641749443000,8876924567444570473,14253625255053304000,4002029424845293600,366962978353611840,26023588519449590],[1789832635968548900,5348726859432207000,5591755359500854000,8876924567444570473,8366826746721323000,26023588519449590,6102164880094062000,366962978353611840,16084834641749443000,4742778578215475000,13846904447064916285,14253625255053304000,1250460246919467000,4002029424845293600],[16084834641749443000,4002029424845293600,8366826746721323000,5591755359500854000,6102164880094062000,14253625255053304000,4742778578215475000,8876924567444570473,13846904447064916285,16141281339223525000,1924303400883620400,26023588519449590,1250460246919467000,366962978353611840,1789832635968548900,5348726859432207000],[1789832635968548900,13846904447064916285,1924303400883620400,6102164880094062000,4742778578215475000,8876924567444570473,16084834641749443000,5591755359500854000,13712392741217151405,366962978353611840,16141281339223525000,26023588519449590,8366826746721323000,1250460246919467000,5348726859432207000,4002029424845293600,14253625255053304000],[6102164880094062000,26023588519449590,8876924567444570473,4002029424845293600,4742778578215475000,8366826746721323000,5348726859432207000,5591755359500854000,16141281339223525000,13846904447064916285,1789832635968548900,1250460246919467000,14253625255053304000,16084834641749443000,366962978353611840,1924303400883620400],[1250460246919467000,13712392741217151405,1924303400883620400,16141281339223525000,6102164880094062000,8876924567444570473,366962978353611840,13846904447064916285,8366826746721323000,14253625255053304000,16084834641749443000,1789832635968548900,26023588519449590,4742778578215475000,5348726859432207000,4002029424845293600,5591755359500854000],[9079109751490757000],[9079109751490757000,10316247453530667000],[10316247453530667000,9079109751490757000,5348726859432207000],[10316247453530667000,4742778578215475000,8366826746721323000,1250460246919467000,6102164880094062000,366962978353611840,5591755359500854000,9079109751490757000,5348726859432207000],[4742778578215475000,9079109751490757000,17725188707009528000,10316247453530667000,5591755359500854000,8366826746721323000,5348726859432207000,366962978353611840,1250460246919467000,6102164880094062000],[1250460246919467000,14253625255053304000,1789832635968548900,17725188707009528000,5348726859432207000,5591755359500854000,8366826746721323000,9079109751490757000,10316247453530667000,8876924567444570473,4742778578215475000,13846904447064916285,366962978353611840,6102164880094062000],[4742778578215475000,5348726859432207000,14253625255053304000,10316247453530667000,9079109751490757000,366962978353611840,1789832635968548900,13846904447064916285,5591755359500854000,1250460246919467000,6102164880094062000,799182088624980700,8876924567444570473,8366826746721323000,17725188707009528000],[9079109751490757000,13846904447064916285,5591755359500854000,5348726859432207000,366962978353611840,799182088624980700,4742778578215475000,8876924567444570473,1789832635968548900,14253625255053304000,17725188707009528000,8366826746721323000,10316247453530667000,6102164880094062000,16084834641749443000,26023588519449590,1250460246919467000],[10316247453530667000,366962978353611840,17025512774010843000,799182088624980700,6102164880094062000,16084834641749443000,8366826746721323000,17725188707009528000,5348726859432207000,14253625255053304000,4002029424845293600,1250460246919467000,26023588519449590,9079109751490757000,13846904447064916285,1789832635968548900,5591755359500854000,4742778578215475000,13712392741217151405,8876924567444570473],[17725188707009528000,1250460246919467000,1789832635968548900,366962978353611840,5591755359500854000,9079109751490757000,14253625255053304000,5348726859432207000,4742778578215475000,6102164880094062000,10316247453530667000,799182088624980700,4002029424845293600,13846904447064916285,1924303400883620400,17025512774010843000,8876924567444570473,26023588519449590,13712392741217151405,16141281339223525000,16084834641749443000,8366826746721323000],[9641606876402405523,7094974507355892337,2166474486859326700,4373650744391914031,15908863353600836000,10690271318666670633,5348726859432207000,3223387122603246085,799182088624980700,17725188707009528000,4040070953711778000,12004715210677400127,13712392741217151405],[4040070953711778000,10690271318666670633,9641606876402405523,799182088624980700,12004715210677400127,13712392741217151405,17725188707009528000,2166474486859326700,4373650744391914031,7094974507355892337,3223387122603246085,15908863353600836000,17025512774010843000,5348726859432207000],[10690271318666670633,5348726859432207000,17725188707009528000,3223387122603246085,12004715210677400127,13712392741217151405,1250460246919467000,4373650744391914031,799182088624980700,9641606876402405523,4040070953711778000,7094974507355892337,15908863353600836000,17025512774010843000,2166474486859326700],[7094974507355892337,3223387122603246085,13712392741217151405,10316247453530667000,15908863353600836000,12004715210677400127,4040070953711778000,1250460246919467000,799182088624980700,17725188707009528000,2166474486859326700,5348726859432207000,9641606876402405523,10690271318666670633,17025512774010843000,4373650744391914031],[13712392741217151405,17025512774010843000,15908863353600836000,12004715210677400127,10690271318666670633,17725188707009528000,4373650744391914031,7094974507355892337,3602127523880426500,2166474486859326700,799182088624980700,10316247453530667000,5348726859432207000,3223387122603246085,4040070953711778000,1250460246919467000,9641606876402405523],[17025512774010843000,4040070953711778000,5348726859432207000,12004715210677400127,17725188707009528000,3602127523880426500,10690271318666670633,7094974507355892337,3223387122603246085,1250460246919467000,4742778578215475000,4002029424845293600,10316247453530667000,799182088624980700,4373650744391914031,9641606876402405523,2166474486859326700,13712392741217151405,15908863353600836000],[17725188707009528000,17025512774010843000,13712392741217151405,10690271318666670633,7094974507355892337,12004715210677400127,3223387122603246085,26023588519449590,15908863353600836000,10316247453530667000,3602127523880426500,4002029424845293600,799182088624980700,5348726859432207000,4373650744391914031,9641606876402405523,4742778578215475000,4040070953711778000,2166474486859326700,1250460246919467000],[2166474486859326700,1250460246919467000,3223387122603246085,9641606876402405523,8366826746721323000,799182088624980700,8876924567444570473,16141281339223525000,10316247453530667000,13846904447064916285,26023588519449590,7094974507355892337,15908863353600836000,3602127523880426500,4742778578215475000,5348726859432207000,17025512774010843000,6102164880094062000,4040070953711778000,14253625255053304000,17725188707009528000,10690271318666670633,4002029424845293600,12004715210677400127,13712392741217151405,16084834641749443000,4373650744391914031],[1250460246919467000,3223387122603246085,10316247453530667000,5348726859432207000,2166474486859326700,6102164880094062000,17725188707009528000,12004715210677400127,3602127523880426500,4742778578215475000,4373650744391914031,8876924567444570473,1789832635968548900,799182088624980700,17025512774010843000,4040070953711778000,7094974507355892337,9641606876402405523,5591755359500854000,4002029424845293600,26023588519449590,13712392741217151405,15908863353600836000,16141281339223525000,1924303400883620400,8366826746721323000,13846904447064916285,10690271318666670633,16084834641749443000,14253625255053304000],[13846904447064916285,4373650744391914031,4742778578215475000,366962978353611840,4002029424845293600,17725188707009528000,17025512774010843000,3223387122603246085,15908863353600836000,8876924567444570473,1924303400883620400,8366826746721323000,6102164880094062000,12004715210677400127,16141281339223525000,10316247453530667000,3602127523880426500,1789832635968548900,799182088624980700,7094974507355892337,2166474486859326700,26023588519449590,10690271318666670633,14253625255053304000,1250460246919467000,4040070953711778000,9641606876402405523,13712392741217151405,16084834641749443000,5348726859432207000,5591755359500854000],[9079109751490757000],[17725188707009528000],[13712392741217151405,17725188707009528000,5348726859432207000,17025512774010843000,2166474486859326700],[17725188707009528000,2166474486859326700,17025512774010843000,5348726859432207000,1250460246919467000,13712392741217151405],[2166474486859326700,10316247453530667000,1250460246919467000,17025512774010843000,17725188707009528000,13712392741217151405,5348726859432207000],[17025512774010843000,2166474486859326700,17725188707009528000,5348726859432207000,13712392741217151405,9079109751490757000,1250460246919467000,10316247453530667000],[17025512774010843000,13712392741217151405,8366826746721323000,2166474486859326700,1250460246919467000,5348726859432207000,9079109751490757000,10316247453530667000,5591755359500854000,17725188707009528000],[6102164880094062000,5591755359500854000,17025512774010843000,17725188707009528000,9079109751490757000,1250460246919467000,2166474486859326700,8366826746721323000,10316247453530667000,5348726859432207000,366962978353611840,13712392741217151405],[6102164880094062000,4742778578215475000,1250460246919467000,366962978353611840,1789832635968548900,14253625255053304000,5591755359500854000,2166474486859326700,13712392741217151405,17025512774010843000,17725188707009528000,9079109751490757000,10316247453530667000,5348726859432207000,13846904447064916285,8366826746721323000],[13846904447064916285,16084834641749443000,1789832635968548900,2166474486859326700,5348726859432207000,26023588519449590,1250460246919467000,6102164880094062000,366962978353611840,13712392741217151405,5591755359500854000,9079109751490757000,10316247453530667000,8876924567444570473,17725188707009528000,17025512774010843000,8366826746721323000,14253625255053304000,4742778578215475000,1924303400883620400],[9079109751490757000,366962978353611840,8876924567444570473,2166474486859326700,5348726859432207000,26023588519449590,13712392741217151405,14253625255053304000,10316247453530667000,1924303400883620400,17025512774010843000,6102164880094062000,16084834641749443000,5591755359500854000,1789832635968548900,13846904447064916285,1250460246919467000,17725188707009528000,8366826746721323000,4742778578215475000,4002029424845293600],[4002029424845293600,2166474486859326700,1924303400883620400,16084834641749443000,17725188707009528000,4742778578215475000,13846904447064916285,16141281339223525000,9079109751490757000,6102164880094062000,5591755359500854000,13712392741217151405,26023588519449590,10316247453530667000,17025512774010843000,5348726859432207000,1789832635968548900,366962978353611840,1250460246919467000,8876924567444570473,14253625255053304000,8366826746721323000],[16141281339223525000,4002029424845293600,4742778578215475000,8876924567444570473,799182088624980700,26023588519449590],[16141281339223525000,4742778578215475000,799182088624980700,4002029424845293600,1250460246919467000,26023588519449590,8876924567444570473,6102164880094062000],[14253625255053304000,8876924567444570473,1924303400883620400,1250460246919467000,799182088624980700,16141281339223525000,4742778578215475000,6102164880094062000,26023588519449590,4002029424845293600],[1924303400883620400,6102164880094062000,799182088624980700,1250460246919467000,26023588519449590,5348726859432207000,16141281339223525000,8876924567444570473,4002029424845293600,4742778578215475000,14253625255053304000],[8876924567444570473,799182088624980700,26023588519449590,14253625255053304000,6102164880094062000,1924303400883620400,16141281339223525000,4002029424845293600,366962978353611840,5348726859432207000,4742778578215475000,1250460246919467000],[26023588519449590,4742778578215475000,8366826746721323000,8876924567444570473,1250460246919467000,5348726859432207000,366962978353611840,14253625255053304000,799182088624980700,1924303400883620400,6102164880094062000,16141281339223525000,4002029424845293600],[1924303400883620400,799182088624980700,8366826746721323000,14253625255053304000,16141281339223525000,17725188707009528000,1250460246919467000,26023588519449590,5348726859432207000,4002029424845293600,6102164880094062000,4742778578215475000,8876924567444570473,366962978353611840],[1250460246919467000,8876924567444570473,14253625255053304000,16141281339223525000,1924303400883620400,17725188707009528000,4742778578215475000,13846904447064916285,6102164880094062000,8366826746721323000,16084834641749443000,17025512774010843000,4002029424845293600,799182088624980700,26023588519449590,366962978353611840,5348726859432207000],[14253625255053304000,26023588519449590,4742778578215475000,16084834641749443000,6102164880094062000,366962978353611840,17725188707009528000,799182088624980700,1924303400883620400,16141281339223525000,5591755359500854000,4002029424845293600,1250460246919467000,13846904447064916285,8876924567444570473,5348726859432207000,8366826746721323000,17025512774010843000],[799182088624980700,5591755359500854000,1789832635968548900,8366826746721323000,17025512774010843000,1250460246919467000,26023588519449590,13846904447064916285,1924303400883620400,16084834641749443000,5348726859432207000,14253625255053304000,4742778578215475000,6102164880094062000,8876924567444570473,366962978353611840,17725188707009528000,16141281339223525000,4002029424845293600],[8366826746721323000,4742778578215475000,10316247453530667000,26023588519449590,5348726859432207000,9079109751490757000,799182088624980700,13846904447064916285,14253625255053304000,1789832635968548900,366962978353611840,8876924567444570473,16084834641749443000,17725188707009528000,17025512774010843000,5591755359500854000,16141281339223525000,1924303400883620400,1250460246919467000,6102164880094062000,4002029424845293600],[16084834641749443000,17725188707009528000,16141281339223525000,799182088624980700,14253625255053304000,13712392741217151405,8366826746721323000,17025512774010843000,5348726859432207000,8876924567444570473,4002029424845293600,9079109751490757000,6102164880094062000,1250460246919467000,5591755359500854000,4742778578215475000,1789832635968548900,10316247453530667000,13846904447064916285,366962978353611840,26023588519449590,1924303400883620400],[16084834641749443000,14253625255053304000,1789832635968548900,8876924567444570473,5591755359500854000,366962978353611840,2166474486859326700,17725188707009528000,13712392741217151405,17025512774010843000,4002029424845293600,10316247453530667000,1924303400883620400,26023588519449590,1250460246919467000,9079109751490757000,8366826746721323000,16141281339223525000,799182088624980700,5348726859432207000,13846904447064916285,4742778578215475000,6102164880094062000],[3602127523880426500],[5591755359500854000,8366826746721323000],[6102164880094062000,2233138531352324200,5591755359500854000,8366826746721323000,366962978353611840],[8366826746721323000,13846904447064916285,6102164880094062000,8876924567444570473,5591755359500854000,366962978353611840,2233138531352324200,4742778578215475000,14253625255053304000,1789832635968548900],[13846904447064916285,2233138531352324200,8876924567444570473,366962978353611840,1924303400883620400,1789832635968548900,14253625255053304000,5591755359500854000,16084834641749443000,8366826746721323000,26023588519449590,4742778578215475000,6102164880094062000],[14253625255053304000,4742778578215475000,6102164880094062000,1789832635968548900,12796400626461303056,2233138531352324200,8876924567444570473,26023588519449590,8366826746721323000,366962978353611840,13846904447064916285,1924303400883620400,1250460246919467000,16084834641749443000,5591755359500854000],[4002029424845293600,366962978353611840,1789832635968548900,14253625255053304000,4742778578215475000,13846904447064916285,1924303400883620400,2233138531352324200,1250460246919467000,6102164880094062000,16084834641749443000,12796400626461303056,5591755359500854000,8366826746721323000,26023588519449590,8876924567444570473],[4002029424845293600,14253625255053304000,366962978353611840,1924303400883620400,12796400626461303056,5591755359500854000,16141281339223525000,1789832635968548900,16084834641749443000,26023588519449590,13846904447064916285,8366826746721323000,2233138531352324200,1250460246919467000,6102164880094062000,8876924567444570473,4742778578215475000],[9079109751490757000],[9079109751490757000,10316247453530667000],[10316247453530667000,17725188707009528000,9079109751490757000],[3602127523880426500],[9079109751490757000],[2233138531352324200,9079109751490757000],[2233138531352324200,8366826746721323000,366962978353611840,5591755359500854000,9079109751490757000],[366962978353611840,2233138531352324200,5591755359500854000,8366826746721323000,6102164880094062000,9079109751490757000],[5591755359500854000,9079109751490757000,13846904447064916285,2233138531352324200,366962978353611840,1789832635968548900,14253625255053304000,6102164880094062000,8366826746721323000],[1924303400883620400,13846904447064916285,366962978353611840,14253625255053304000,8366826746721323000,2233138531352324200,16084834641749443000,5591755359500854000,6102164880094062000,9079109751490757000,1789832635968548900],[366962978353611840,8366826746721323000,6102164880094062000,14253625255053304000,2233138531352324200,1924303400883620400,9079109751490757000,5591755359500854000,16084834641749443000,4742778578215475000,13846904447064916285,1789832635968548900],[14253625255053304000,1924303400883620400,26023588519449590,5591755359500854000,16084834641749443000,1789832635968548900,9079109751490757000,13846904447064916285,366962978353611840,6102164880094062000,4742778578215475000,4002029424845293600,2233138531352324200,8366826746721323000],[1789832635968548900,26023588519449590,5591755359500854000,1924303400883620400,16084834641749443000,13846904447064916285,4742778578215475000,9079109751490757000,366962978353611840,8876924567444570473,2233138531352324200,14253625255053304000,8366826746721323000,4002029424845293600,6102164880094062000],[5591755359500854000,16141281339223525000,4742778578215475000,14253625255053304000,26023588519449590,2233138531352324200,13846904447064916285,1789832635968548900,1924303400883620400,16084834641749443000,8366826746721323000,8876924567444570473,6102164880094062000,9079109751490757000,366962978353611840,4002029424845293600],[16141281339223525000,1789832635968548900,16084834641749443000,26023588519449590,8876924567444570473,13846904447064916285,1924303400883620400,2233138531352324200,8366826746721323000,10316247453530667000,5591755359500854000,4742778578215475000,6102164880094062000,366962978353611840,4002029424845293600,9079109751490757000,14253625255053304000],[4002029424845293600,2233138531352324200,1789832635968548900,1924303400883620400,16084834641749443000,1250460246919467000,5591755359500854000,4742778578215475000,14253625255053304000,9079109751490757000,8876924567444570473,10316247453530667000,13846904447064916285,6102164880094062000,8366826746721323000,26023588519449590,12796400626461303056,366962978353611840,16141281339223525000],[]],"selection_redo_history":[]}}},"collapsed":[17725188707009528001,9079109751490757001,3602127523880426501],"commit_hash":"e647ca9f91a5e823137122126fe9e980f65d62ea","document_ptz":{"pan":[-999.7861718531644,-499.944688737096],"tilt":0.0,"zoom":0.940975,"flip":false},"document_mode":"DesignMode","render_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file diff --git a/demo-artwork/isometric-fountain.graphite b/demo-artwork/isometric-fountain.graphite index 64526ed53..7fcc50e64 100644 --- a/demo-artwork/isometric-fountain.graphite +++ b/demo-artwork/isometric-fountain.graphite @@ -1 +1 @@ -{"network_interface":{"network":{"exports":[{"Node":{"node_id":15709488322180832347,"output_index":0,"lambda":false}}],"nodes":[[10507084483235320484,{"inputs":[{"Node":{"node_id":9157963288496356916,"output_index":0,"lambda":false}},{"Node":{"node_id":1396768435017101055,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4741515246389989284,{"inputs":[{"Node":{"node_id":14255588039347536657,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-70.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4105329493214975815,{"inputs":[{"Node":{"node_id":12931264630175648107,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969916,-70.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16229837691656808412,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[119.2038270691288,10.452135486817724]],[2,[76.83345669875837,107.20900827532364]],[1,[74.85684586229115,93.12923138495351]],[3,[130.01864188394373,17.639788893964138]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3]],"end_point":[[4,1],[2,3],[3,4],[1,2]],"handle_primary":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[2,[-7.85185185185199,56.395434425300664]],[3,[0.0,0.0]],[4,[43.97876382175265,-36.84748630595526]],[1,[0.0,0.0]]],"stroke":[[2,0],[3,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12172015233077238737,{"inputs":[{"Node":{"node_id":13287180494862716983,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[15166516760575860563,{"inputs":[{"Node":{"node_id":18085100003956405261,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-36.95875397623445,-115.11453403741598]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.442673035713692,1.442673035713692]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10477328336261010694,{"inputs":[{"Node":{"node_id":10189927996178548902,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.24355652970024,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3185536512640676801,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":4101813853952238986,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5258402282444994019,{"inputs":[{"Node":{"node_id":958845362613832240,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-299.97967195575075,-74.37931084632919]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999984,0.9999999999999984]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3970872207068447290,{"inputs":[{"Node":{"node_id":2077983679740571162,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[1.2314781197853364,-154.7967075368743]},"exposed":false}},{"Value":{"tagged_value":{"F64":-1.0453527814904993},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.809730022247584,0.552568608414892]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.4027772116731048,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9115451226763736660,{"inputs":[{"Node":{"node_id":7067047867039575315,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.4745098,"green":0.68235296,"blue":0.60784316,"alpha":1.0}],[1.0,{"red":0.5568628,"green":0.7529412,"blue":0.6392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.02103945787988068,0.9859744936226362],"end":[0.6072632276568447,0.28531051081023584],"transform":[864.8574591113804,0.0,0.0,195.5288174655342,170.80386791692547,510.2135732107871]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.4745098,"green":0.68235296,"blue":0.60784316,"alpha":1.0}],[1.0,{"red":0.5568628,"green":0.7529412,"blue":0.6392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.02103945787988068,0.9859744936226362],"end":[0.6072632276568447,0.28531051081023584],"transform":[864.8574591113804,0.0,0.0,195.5288174655342,170.80386791692547,510.2135732107871]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11860177410232537211,{"inputs":[{"Node":{"node_id":5882319123081134737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14019233912018234740,{"inputs":[{"Node":{"node_id":16069762220015310717,"output_index":0,"lambda":false}},{"Node":{"node_id":17785019773455930267,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4197544064668946479,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[7,[578.4678751731759,580.0]],[4,[419.8557158514987,612.5]],[6,[634.4486372867087,565.0]],[2,[363.87495373796554,587.4999999999999]],[1,[391.8653347947321,595.0]],[3,[345.21469970012123,592.5]],[5,[615.7883832488644,560.0000000000001]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[2,2],[6,6],[5,5],[4,4],[1,1]],"end_point":[[6,7],[5,6],[1,2],[2,3],[4,5],[3,4]],"handle_primary":[[5,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[6,[0.0,0.0]]],"handle_end":[[6,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[5,[0.0,0.0]]],"stroke":[[5,0],[3,0],[6,0],[1,0],[2,0],[4,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5448146793323825465,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[709.0896534380863,630.0]],[2,[597.1281292110198,599.9999999999999]],[3,[783.730669589464,550.0]],[4,[895.6921938165308,580.0000000000001]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[1,1],[4,4]],"end_point":[[1,2],[4,1],[3,4],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4187349759243468746,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"delta":[[10,[607.8683127572016,488.3840877914952]],[12,[609.0096021947874,496.4609053497942]],[3,[589.8710562414265,497.0754458161865]],[6,[594.4362139917694,493.6515775034293]],[8,[580.9382716049382,401.9753086419752]],[17,[668.3566529492455,433.2510288065844]],[7,[596.3676268861453,491.9835390946502]],[1,[583.5500685871057,499.53360768175577]],[15,[615.4183813443072,491.19341563786]],[14,[650.6666666666667,398.2222222222223]],[5,[574.0246913580246,440.2962962962963]],[13,[609.7997256515774,497.6899862825788]],[2,[533.9259259259258,420.7407407407407]],[18,[618.4910836762688,499.9725651577503]],[11,[615.6378600823045,431.5390946502058]],[16,[616.0751917898693,491.077444156548]],[9,[606.0246913580247,486.803840877915]],[4,[591.18792866941,498.3045267489712]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"start_point":[[18,18],[11,11],[4,4],[10,10],[6,6],[17,17],[5,5],[2,2],[8,8],[13,13],[1,1],[9,9],[15,15],[3,3],[14,14],[12,12],[16,16],[7,7]],"end_point":[[8,9],[17,18],[4,5],[16,17],[13,14],[9,10],[15,16],[3,4],[6,7],[5,6],[12,13],[10,11],[7,8],[2,3],[1,2],[18,1],[11,12],[14,15]],"handle_primary":[[7,[0.0,0.0]],[8,[22.10150891632361,44.44444444444463]],[16,[0.0,0.0]],[1,[0.0,0.0]],[9,[0.0,0.0]],[11,[-3.906721536351256,29.62962962962956]],[5,[18.392318244170156,23.769547325102906]],[14,[-18.3045267489714,37.31138545953348]],[18,[-6.945585968035971,18.68277302655963]],[10,[0.0,0.0]],[6,[0.0,0.0]],[17,[-38.27709190672158,34.5020576131688]],[15,[0.0,0.0]],[3,[0.0,0.0]],[13,[0.0,0.0]],[12,[0.0,0.0]],[2,[44.005486968450214,35.16049382716062]],[4,[0.0,0.0]]],"handle_end":[[16,[-35.29218106995893,26.337448559670804]],[17,null],[6,[0.0,0.0]],[3,[0.0,0.0]],[5,null],[18,[7.8075669002856785,13.340866152962064]],[8,null],[10,[-6.189300411522709,26.732510288065782]],[1,[48.21947873799752,48.855967078189394]],[11,[0.0,0.0]],[15,[0.0,0.0]],[13,[-23.747599451303245,35.4677640603565]],[14,null],[4,[21.113854595336193,37.201646090535064]],[12,[0.0,0.0]],[9,[0.0,0.0]],[7,[25.964334705075316,61.47599451303165]],[2,null]],"stroke":[[8,0],[9,0],[14,0],[10,0],[15,0],[5,0],[6,0],[13,0],[3,0],[12,0],[4,0],[11,0],[16,0],[17,0],[7,0],[18,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":18}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9684750473849891261,{"inputs":[{"Node":{"node_id":70804263053697201,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.96862745,"green":0.8352941,"blue":0.62352943,"alpha":1.0}],[0.5772391174087621,{"red":0.7921569,"green":0.8019608,"blue":0.6450981,"alpha":1.0}],[1.0,{"red":0.6156863,"green":0.76862746,"blue":0.6666667,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1306.217782649108,0.0,0.0,739.9999999999992,405.99999999999864,284.9999999999999]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.96862745,"green":0.8352941,"blue":0.62352943,"alpha":1.0}],[0.5772391174087621,{"red":0.7921569,"green":0.8019608,"blue":0.6450981,"alpha":1.0}],[1.0,{"red":0.6156863,"green":0.76862746,"blue":0.6666667,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1306.217782649108,0.0,0.0,739.9999999999992,405.99999999999864,284.9999999999999]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13531127678140037818,{"inputs":[{"Node":{"node_id":3970872207068447290,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14055195208113082127,{"inputs":[{"Node":{"node_id":2510483139353274965,"output_index":0,"lambda":false}},{"Node":{"node_id":12360435709959435360,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18187802220803838247,{"inputs":[{"Node":{"node_id":11634445349252640936,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BlendMode":"Screen"},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::BlendModeNode"}},"visible":true,"skip_deduplication":false}],[8015732980153557800,{"inputs":[{"Node":{"node_id":3806549994589872867,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297002,-70.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2791109467690716388,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[4,[615.5514854925251,605.0634765625002]],[2,[877.0319397786863,584.9999999999998]],[1,[1156.9357503463468,509.9999999999987]],[3,[783.7306695894646,560.0]],[6,[1044.9742261192855,480.0]],[5,[596.8912314546803,600.0634765625]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[4,4],[5,5],[6,6],[1,1],[2,2]],"end_point":[[4,5],[5,6],[3,4],[1,2],[2,3],[6,1]],"handle_primary":[[6,[0.0,0.0]],[4,null],[2,[0.0,0.0]],[3,null],[5,[448.0829946646052,-120.0634765625]],[1,[0.0,0.0]]],"handle_end":[[5,null],[2,null],[1,[0.0,0.0]],[3,null],[4,null],[6,[0.0,0.0]]],"stroke":[[6,0],[5,0],[2,0],[1,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13747030364552895864,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[5,[709.0896534380863,660.0]],[3,[1231.6308657449686,540.0144958496094]],[2,[1231.576766497729,510.00000000000233]],[4,[1156.9357503463516,540.0]],[1,[709.0896534380864,650.0]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[1,1],[4,4],[2,2],[5,5],[3,3]],"end_point":[[2,3],[4,5],[5,1],[3,4],[1,2]],"handle_primary":[[2,[0.0,0.0]],[3,[-74.69511539861696,-0.014495849609375]],[5,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[1,[0.0,0.0]],[3,null],[2,null],[5,[-2.273736754432321e-13,-2.273736754432321e-13]]],"stroke":[[3,0],[2,0],[1,0],[4,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8034980397175569257,{"inputs":[{"Node":{"node_id":4243146970185091100,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[55.4066256813212,48.820258260598735]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.093432966432927,1.093432966432927]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11776939455674933130,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":9684750473849891261,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4968550668755026811,{"inputs":[{"Node":{"node_id":585709295659496998,"output_index":0,"lambda":false}},{"Node":{"node_id":13609749019463823009,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17533670083736420411,{"inputs":[{"Node":{"node_id":7005645574203740491,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.8397260273972602,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.9711254481326403,-0.313902431217137],"end":[1.0169100960157926,0.2104743282968058],"transform":[1332.3243231154509,0.0,0.0,297.49602202927537,-250.85405534350912,609.3847245924164]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.8397260273972602,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.9711254481326403,-0.313902431217137],"end":[1.0169100960157926,0.2104743282968058],"transform":[1332.3243231154509,0.0,0.0,297.49602202927537,-250.85405534350912,609.3847245924164]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12683405703338263457,{"inputs":[{"Node":{"node_id":12537712543904859919,"output_index":0,"lambda":false}},{"Node":{"node_id":14449710315388146362,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1229809699395562135,{"inputs":[{"Node":{"node_id":2843751023378786714,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-36.95875397623445,-88.44786737074935]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.442673035713692,1.442673035713692]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12302362769310895852,{"inputs":[{"Node":{"node_id":15347111149235590492,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.8014369,"green":0.8203125,"blue":0.63446045,"alpha":1.0}],[0.4047792425110607,{"red":0.70046544,"green":0.765625,"blue":0.57421875,"alpha":1.0}],[0.6425390774124099,{"red":0.6,"green":0.70980394,"blue":0.56078434,"alpha":1.0}],[0.8010456340133093,{"red":0.47058824,"green":0.6509804,"blue":0.53333336,"alpha":1.0}],[0.894708599277477,{"red":0.40392157,"green":0.6117647,"blue":0.5176471,"alpha":1.0}],[1.0,{"red":0.26666668,"green":0.5176471,"blue":0.4745098,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5027713289486062,0.6166666666666667],"end":[0.502771328948606,-0.08890027761186703],"transform":[-221.0038859407525,2.7065170151646932e-14,-2.814144532415396e-30,-196.7148850451868,1204.8351529382844,632.1259668592257]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.8014369,"green":0.8203125,"blue":0.63446045,"alpha":1.0}],[0.4047792425110607,{"red":0.70046544,"green":0.765625,"blue":0.57421875,"alpha":1.0}],[0.6425390774124099,{"red":0.6,"green":0.70980394,"blue":0.56078434,"alpha":1.0}],[0.8010456340133093,{"red":0.47058824,"green":0.6509804,"blue":0.53333336,"alpha":1.0}],[0.894708599277477,{"red":0.40392157,"green":0.6117647,"blue":0.5176471,"alpha":1.0}],[1.0,{"red":0.26666668,"green":0.5176471,"blue":0.4745098,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5027713289486062,0.6166666666666667],"end":[0.502771328948606,-0.08890027761186703],"transform":[-221.0038859407525,2.7065170151646932e-14,-2.814144532415396e-30,-196.7148850451868,1204.8351529382844,632.1259668592257]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15488533792651297821,{"inputs":[{"Node":{"node_id":14019233912018234740,"output_index":0,"lambda":false}},{"Node":{"node_id":183952488591282082,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14791465604033956302,{"inputs":[{"Node":{"node_id":18187802220803838247,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":50.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[1147521068928676110,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":938033825024582130,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6821938959315178556,{"inputs":[{"Node":{"node_id":12683405703338263457,"output_index":0,"lambda":false}},{"Node":{"node_id":5326013268137833446,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1490537476612110327,{"inputs":[{"Node":{"node_id":2900504420179573771,"output_index":0,"lambda":false}},{"Node":{"node_id":429913874753911073,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3365825508845848745,{"inputs":[{"Node":{"node_id":7156963182187517674,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.4509804,"green":0.6745098,"blue":0.627451,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}]],"gradient_type":"Linear","start":[0.008641111778101118,0.8823529411764692],"end":[0.9918085332369128,0.12352941176470456],"transform":[485.1666049839542,0.0,0.0,170.00000000000006,377.80762113533183,514.0000000000002]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.4509804,"green":0.6745098,"blue":0.627451,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}]],"gradient_type":"Linear","start":[0.008641111778101118,0.8823529411764692],"end":[0.9918085332369128,0.12352941176470456],"transform":[485.1666049839542,0.0,0.0,170.00000000000006,377.80762113533183,514.0000000000002]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9157963288496356916,{"inputs":[{"Node":{"node_id":10188337730058049439,"output_index":0,"lambda":false}},{"Node":{"node_id":1108089904278882840,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3679103217373457623,{"inputs":[{"Node":{"node_id":7910743362843097140,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[13442128106088307772,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":13700218159488557234,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2225749123534781340,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1156.9357503463518,545.0000000000001]],[4,[1110.285115251741,542.5]],[3,[1128.9453692895852,537.5000000000001]],[1,[1138.2754963085072,550.0000000000001]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[3,3],[2,2]],"end_point":[[3,4],[4,1],[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[2,0],[4,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11490835759023283071,{"inputs":[{"Node":{"node_id":16923062582661131268,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15517065353723874205,{"inputs":[{"Node":{"node_id":3616319631707471648,"output_index":0,"lambda":false}},{"Node":{"node_id":12548387328300782726,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3014633976566537110,{"inputs":[{"Node":{"node_id":5346759588580719138,"output_index":0,"lambda":false}},{"Node":{"node_id":11860177410232537211,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9981992739451603109,{"inputs":[{"Node":{"node_id":13852123721901366011,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.16078432,"green":0.2901961,"blue":0.16078432,"alpha":0.59765625}],[0.8744713248939212,{"red":0.16078432,"green":0.29411766,"blue":0.16078432,"alpha":0.4453125}],[1.0,{"red":0.16078432,"green":0.2784314,"blue":0.16078432,"alpha":0.2109375}]],"gradient_type":"Radial","start":[0.4917953695426216,3.5168687748431413],"end":[0.4917953695426216,-0.06740196271505461],"transform":[-746.5804084818038,9.142973075533649e-14,0.0,-200.04561753794505,1239.1647878825902,870.5228087689718]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.16078432,"green":0.2901961,"blue":0.16078432,"alpha":0.59765625}],[0.8744713248939212,{"red":0.16078432,"green":0.29411766,"blue":0.16078432,"alpha":0.4453125}],[1.0,{"red":0.16078432,"green":0.2784314,"blue":0.16078432,"alpha":0.2109375}]],"gradient_type":"Radial","start":[0.4917953695426216,3.5168687748431413],"end":[0.4917953695426216,-0.06740196271505461],"transform":[-746.5804084818038,9.142973075533649e-14,0.0,-200.04561753794505,1239.1647878825902,870.5228087689718]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[18128923159828618806,{"inputs":[{"Node":{"node_id":1229809699395562135,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.39215687,"green":0.6392157,"blue":0.4745098,"alpha":1.0}],[0.3267294443765037,{"red":0.45324707,"green":0.734375,"blue":0.5498848,"alpha":1.0}],[0.5703803350862179,{"red":0.72745097,"green":0.7784314,"blue":0.5235294,"alpha":1.0}],[1.0,{"red":1.0,"green":0.84705883,"blue":0.4627451,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4425774215957188,0.8669102822986486],"end":[0.40311512028827146,0.4061330859327766],"transform":[-1171.3007272968916,1.4344296865231056e-13,-2.9954223230091924e-14,733.7843838145138,1307.3912558002485,53.87477268101975]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.39215687,"green":0.6392157,"blue":0.4745098,"alpha":1.0}],[0.3267294443765037,{"red":0.45324707,"green":0.734375,"blue":0.5498848,"alpha":1.0}],[0.5703803350862179,{"red":0.72745097,"green":0.7784314,"blue":0.5235294,"alpha":1.0}],[1.0,{"red":1.0,"green":0.84705883,"blue":0.4627451,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4425774215957188,0.8669102822986486],"end":[0.40311512028827146,0.4061330859327766],"transform":[-1171.3007272968916,1.4344296865231056e-13,-2.9954223230091924e-14,733.7843838145138,1307.3912558002485,53.87477268101975]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[1156213189397385283,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[74.64101615137773,610.0]],[3,[83.97114317030051,612.4999999999999]],[1,[55.98076211353359,615.0]],[2,[65.3108891324556,617.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[1,1],[3,3]],"end_point":[[4,1],[1,2],[3,4],[2,3]],"handle_primary":[[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[1,0],[3,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8891726805381758817,{"inputs":[{"Node":{"node_id":17332567356044944766,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-74.42590421819692,41.71533421869417]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.6752258214141986},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[38.26905454222045,23.541084128981048]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4371138567686068,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12998832508553378533,{"inputs":[{"Node":{"node_id":3122972215852775755,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.46666667,"green":0.7019608,"blue":0.654902,"alpha":1.0}],[0.5,{"red":0.44313726,"green":0.68235296,"blue":0.6313726,"alpha":1.0}],[1.0,{"red":0.40784314,"green":0.627451,"blue":0.6,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0051615000620980345,0.22838569993468072],"end":[0.9899367003601665,0.951087390077165],"transform":[682.3892394899885,0.0,0.0,255.9839039030424,96.4778478979974,545.5369369350916]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.46666667,"green":0.7019608,"blue":0.654902,"alpha":1.0}],[0.5,{"red":0.44313726,"green":0.68235296,"blue":0.6313726,"alpha":1.0}],[1.0,{"red":0.40784314,"green":0.627451,"blue":0.6,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0051615000620980345,0.22838569993468072],"end":[0.9899367003601665,0.951087390077165],"transform":[682.3892394899885,0.0,0.0,255.9839039030424,96.4778478979974,545.5369369350916]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9798215931018813676,{"inputs":[{"Node":{"node_id":10779665858841986661,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9210109719406330381,{"inputs":[{"Node":{"node_id":8612613134760093452,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9409313765472227540,{"inputs":[{"Node":{"node_id":6821938959315178556,"output_index":0,"lambda":false}},{"Node":{"node_id":8463468388280418154,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13920465562072008593,{"inputs":[{"Node":{"node_id":3670594928372882885,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-63.99999999999994]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3122972215852775755,{"inputs":[{"Node":{"node_id":10431241258085047322,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3564067978712674849,{"inputs":[{"Node":{"node_id":6777328619777499144,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.24355652970075,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2189393878093040029,{"inputs":[{"Node":{"node_id":15478704582542175684,"output_index":0,"lambda":false}},{"Node":{"node_id":17533670083736420411,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10917301734480569398,{"inputs":[{"Node":{"node_id":3455270778005546310,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13946577152348504742,{"inputs":[{"Node":{"node_id":3021739385836969518,"output_index":0,"lambda":false}},{"Node":{"node_id":15876464101883822838,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2510483139353274965,{"inputs":[{"Node":{"node_id":14202574750104046500,"output_index":0,"lambda":false}},{"Node":{"node_id":18128923159828618806,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16847360882244487081,{"inputs":[{"Node":{"node_id":13817976820605296433,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.9490196,"green":0.92156863,"blue":0.7411765,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6476985249926699,0.10666666666666667],"end":[0.9920644403070608,0.4398792234469302],"transform":[1119.6152422706632,0.0,0.0,300.0,555.8268590219807,337.0]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.9490196,"green":0.92156863,"blue":0.7411765,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6476985249926699,0.10666666666666667],"end":[0.9920644403070608,0.4398792234469302],"transform":[1119.6152422706632,0.0,0.0,300.0,555.8268590219807,337.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7671691070850213967,{"inputs":[{"Node":{"node_id":1658032775659237960,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.22091675,"green":0.4453125,"blue":0.44150904,"alpha":1.0}],[0.6048571201787465,{"red":0.3202623,"green":0.5461857,"blue":0.5423232,"alpha":0.859375}],[0.8131497297124398,{"red":0.41960785,"green":0.64705884,"blue":0.6431373,"alpha":0.71875}],[1.0,{"red":0.43137255,"green":0.61960787,"blue":0.5803922,"alpha":0.3984375}]],"gradient_type":"Radial","start":[0.3691427845059252,-2.109375000000002],"end":[0.05794738050227899,1.089204545454546],"transform":[317.2243186433542,0.0,0.0,109.99999999999989,917.7114317029974,729.0]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.22091675,"green":0.4453125,"blue":0.44150904,"alpha":1.0}],[0.6048571201787465,{"red":0.3202623,"green":0.5461857,"blue":0.5423232,"alpha":0.859375}],[0.8131497297124398,{"red":0.41960785,"green":0.64705884,"blue":0.6431373,"alpha":0.71875}],[1.0,{"red":0.43137255,"green":0.61960787,"blue":0.5803922,"alpha":0.3984375}]],"gradient_type":"Radial","start":[0.3691427845059252,-2.109375000000002],"end":[0.05794738050227899,1.089204545454546],"transform":[317.2243186433542,0.0,0.0,109.99999999999989,917.7114317029974,729.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16244305414728361140,{"inputs":[{"Node":{"node_id":11547499603328872398,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5294118,"green":0.7490196,"blue":0.65882355,"alpha":1.0}],[1.0,{"red":0.46666667,"green":0.69803923,"blue":0.62352943,"alpha":1.0}]],"gradient_type":"Linear","start":[0.008550171763040293,0.13076923076922986],"end":[0.99103054401049,0.7769230769230764],"transform":[335.8845726811991,0.0,0.0,129.9999999999999,415.12812921102034,414.0000000000001]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5294118,"green":0.7490196,"blue":0.65882355,"alpha":1.0}],[1.0,{"red":0.46666667,"green":0.69803923,"blue":0.62352943,"alpha":1.0}]],"gradient_type":"Linear","start":[0.008550171763040293,0.13076923076922986],"end":[0.99103054401049,0.7769230769230764],"transform":[335.8845726811991,0.0,0.0,129.9999999999999,415.12812921102034,414.0000000000001]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9724746185253267560,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[9,[1222.2466394788075,476.5000000000001]],[11,[1175.5960043841962,474.00000000000006]],[1,[1091.6248612138966,461.5]],[4,[1184.9261314031187,496.5]],[6,[1194.256258422041,458.99999999999994]],[2,[1063.63448015713,453.99999999999994]],[8,[1184.9261314031187,486.5]],[5,[1259.567147554496,476.49999999999994]],[10,[1194.2562584220411,469.00000000000006]],[7,[1138.2754963085074,473.99999999999994]],[3,[1044.9742261192855,459.0]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[9,9],[1,1],[2,2],[6,6],[10,10],[7,7],[8,8],[5,5],[4,4],[3,3]],"end_point":[[3,4],[2,3],[1,2],[9,10],[4,5],[8,9],[7,8],[5,6],[10,11],[6,7]],"handle_primary":[[3,[0.0,0.0]],[5,[0.0,0.0]],[6,[0.0,0.0]],[8,[0.0,0.0]],[1,[0.0,0.0]],[10,[0.0,0.0]],[4,[0.0,0.0]],[9,[0.0,0.0]],[2,[0.0,0.0]],[7,[0.0,0.0]]],"handle_end":[[9,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]],[4,[0.0,0.0]],[10,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[7,[0.0,0.0]],[8,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[5,0],[2,0],[1,0],[7,0],[6,0],[9,0],[10,0],[8,0],[4,0],[3,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1108089904278882840,{"inputs":[{"Node":{"node_id":5317925967883407701,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13001069903842109798,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.15793848790232112,1.0756444843098496]],[3,[1.0311603768047983,1.0082447817061446]],[1,[0.02964805558748984,0.4451546735104888]],[2,[1.067391838882569,0.5169672994595966]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[1,1],[2,2],[4,4]],"end_point":[[4,1],[2,3],[1,2],[3,4]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[-0.4856258676143469,-0.19200483651697595]]],"handle_end":[[2,null],[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[1,0],[3,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4837219841531371489,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1007.6537180435968,230.0]],[2,[1343.5382907247958,320.00000000000006]],[4,[597.1281292110205,340.0000000000001]],[1,[933.0127018922194,430.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[4,4],[1,1]],"end_point":[[4,1],[3,4],[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17785019773455930267,{"inputs":[{"Node":{"node_id":17887542695709892422,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,-6.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10189927996178548902,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[709.0896534380867,660.0]],[2,[298.5640646055101,570.0000000000006]],[3,[597.1281292110203,649.9999999999999]],[4,[597.1281292110198,630.0]],[6,[709.0896534380864,649.9999999999999]],[1,[298.56406460551045,540.0000000000002]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[6,6],[1,1],[5,5],[2,2],[4,4],[3,3]],"end_point":[[3,4],[5,6],[6,1],[1,2],[2,3],[4,5]],"handle_primary":[[1,[0.0,0.0]],[5,[-2.273736754432321e-13,-10.000000000000114]],[2,[0.0,0.0]],[4,[0.0,0.0]],[6,[0.0,0.0]],[3,[-5.684341886080801e-13,-19.999999999999886]]],"handle_end":[[3,null],[1,[0.0,0.0]],[6,[0.0,0.0]],[5,null],[4,null],[2,null]],"stroke":[[1,0],[4,0],[3,0],[5,0],[6,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13868917743026516656,{"inputs":[{"Node":{"node_id":5258402282444994019,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.9529412,"green":0.83137256,"blue":0.49411765,"alpha":1.0}],[0.5,{"red":0.6039216,"green":0.77254903,"blue":0.6117647,"alpha":1.0}],[1.0,{"red":0.48010254,"green":0.71875,"blue":0.58451086,"alpha":1.0}]],"gradient_type":"Radial","start":[0.990188567383927,0.031432585832447346],"end":[0.003820820042059303,0.7823921936299838],"transform":[506.9103296893421,0.0,0.0,226.3770224587539,740.0631868527961,262.88438481107136]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.9529412,"green":0.83137256,"blue":0.49411765,"alpha":1.0}],[0.5,{"red":0.6039216,"green":0.77254903,"blue":0.6117647,"alpha":1.0}],[1.0,{"red":0.48010254,"green":0.71875,"blue":0.58451086,"alpha":1.0}]],"gradient_type":"Radial","start":[0.990188567383927,0.031432585832447346],"end":[0.003820820042059303,0.7823921936299838],"transform":[506.9103296893421,0.0,0.0,226.3770224587539,740.0631868527961,262.88438481107136]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9393309733761233513,{"inputs":[{"Node":{"node_id":13946577152348504742,"output_index":0,"lambda":false}},{"Node":{"node_id":11895211316848895241,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11634802583144606404,{"inputs":[{"Node":{"node_id":9226731772122225003,"output_index":0,"lambda":false}},{"Node":{"node_id":6868877732348460627,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8165914767449151618,{"inputs":[{"Node":{"node_id":11158238411769751544,"output_index":0,"lambda":false}},{"Node":{"node_id":13942146309185231085,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14400993470150734626,{"inputs":[{"Node":{"node_id":2088390810384907709,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-69.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14202574750104046500,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":1831743139584171612,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15216519480392295991,{"inputs":[{"Node":{"node_id":12019361655085452072,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.79607844,"green":0.7607843,"blue":0.57254905,"alpha":0.01}],[0.6837652235970189,{"red":0.6666667,"green":0.6666667,"blue":0.6666667,"alpha":0.011764706}],[0.7972664177223364,{"red":0.79607844,"green":0.7607843,"blue":0.57254905,"alpha":0.53515625}],[1.0,{"red":0.9647059,"green":0.7607843,"blue":0.5568628,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5377061694297174,0.1861799653787184],"end":[0.4291107938423666,0.936951921882358],"transform":[-221.0038859407525,2.7065170151646932e-14,-2.629542652075462e-30,-183.8108080683632,1243.8351529382842,529.2218898824021]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.79607844,"green":0.7607843,"blue":0.57254905,"alpha":0.01}],[0.6837652235970189,{"red":0.6666667,"green":0.6666667,"blue":0.6666667,"alpha":0.011764706}],[0.7972664177223364,{"red":0.79607844,"green":0.7607843,"blue":0.57254905,"alpha":0.53515625}],[1.0,{"red":0.9647059,"green":0.7607843,"blue":0.5568628,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5377061694297174,0.1861799653787184],"end":[0.4291107938423666,0.936951921882358],"transform":[-221.0038859407525,2.7065170151646932e-14,-2.629542652075462e-30,-183.8108080683632,1243.8351529382842,529.2218898824021]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[1831743139584171612,{"inputs":[{"Node":{"node_id":6569279146800941123,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.44433594,"green":0.7109375,"blue":0.60144055,"alpha":1.0}],[0.31019165912642926,{"red":0.42991638,"green":0.68359375,"blue":0.5723318,"alpha":0.85546875}],[1.0,{"red":0.41487122,"green":0.66796875,"blue":0.5466929,"alpha":0.3515625}]],"gradient_type":"Radial","start":[0.49564744287268736,0.12680209698558276],"end":[0.6983677910772572,0.8876146788990837],"transform":[340.37037037037106,0.0,0.0,113.03703703703678,837.2962962962961,682.6666666666667]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.44433594,"green":0.7109375,"blue":0.60144055,"alpha":1.0}],[0.31019165912642926,{"red":0.42991638,"green":0.68359375,"blue":0.5723318,"alpha":0.85546875}],[1.0,{"red":0.41487122,"green":0.66796875,"blue":0.5466929,"alpha":0.3515625}]],"gradient_type":"Radial","start":[0.49564744287268736,0.12680209698558276],"end":[0.6983677910772572,0.8876146788990837],"transform":[340.37037037037106,0.0,0.0,113.03703703703678,837.2962962962961,682.6666666666667]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12360435709959435360,{"inputs":[{"Node":{"node_id":15723520455917422372,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.47843137,"green":0.7294118,"blue":0.5686275,"alpha":1.0}],[1.0,{"red":0.39215687,"green":0.6392157,"blue":0.4745098,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5005723020410011,0.4324498034559026],"end":[0.5007962736667897,0.9150264743070644],"transform":[-992.1891732446936,1.215081295162773e-13,-2.5681507542728992e-14,629.116269946799,1261.8846407334754,149.34195758136912]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.47843137,"green":0.7294118,"blue":0.5686275,"alpha":1.0}],[1.0,{"red":0.39215687,"green":0.6392157,"blue":0.4745098,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5005723020410011,0.4324498034559026],"end":[0.5007962736667897,0.9150264743070644],"transform":[-992.1891732446936,1.215081295162773e-13,-2.5681507542728992e-14,629.116269946799,1261.8846407334754,149.34195758136912]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[2077983679740571162,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[-130.2776544123526,8.793446239014884]],[1,[-137.83320996790803,20.957167389569804]],[3,[-119.7591358938339,55.2367451774976]],[4,[-124.49987663457466,76.24680898300153]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[3,3],[4,4]],"end_point":[[4,1],[3,4],[2,3],[1,2]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[2,[-5.037037037036939,-9.952135486817731]],[1,[0.0,0.0]],[4,[6.814814814814781,36.49116345166567]],[3,[0.0,0.0]]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2058192342619930156,{"inputs":[{"Node":{"node_id":2155997486525176376,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,-5.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10181153433637856462,{"inputs":[{"Node":{"node_id":9150078008481575131,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[187.102540378,187.10254037799996]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.141592653589793},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[373.205080756,373.205080756]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-3.2814312084546346e-17,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11579925754926059876,{"inputs":[{"Node":{"node_id":15670426414376277308,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[1175.596004383839,384.99999999999983]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.141592653589793},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[410.52558883186134,109.99999999999974]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-3.2814312084546346e-17,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9138781233934614517,{"inputs":[{"Node":{"node_id":8073807569018624098,"output_index":0,"lambda":false}},{"Node":{"node_id":4884180935153120645,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12370676490908282512,{"inputs":[{"Node":{"node_id":9666682009015049330,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.643741535074667,{"red":0.27450982,"green":0.49411765,"blue":0.5137255,"alpha":0.5019608}],[0.8214781907174007,{"red":0.27450982,"green":0.5019608,"blue":0.52156866,"alpha":0.17254902}],[1.0,{"red":0.0,"green":1.0,"blue":1.0,"alpha":0.003921569}]],"gradient_type":"Linear","start":[0.8142178455184718,0.014814814814815058],"end":[0.8217337510617708,0.33779273207824057],"transform":[1667.7715501019673,0.0,0.0,377.053346257955,-488.4641717793936,466.6341200282825]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.643741535074667,{"red":0.27450982,"green":0.49411765,"blue":0.5137255,"alpha":0.5019608}],[0.8214781907174007,{"red":0.27450982,"green":0.5019608,"blue":0.52156866,"alpha":0.17254902}],[1.0,{"red":0.0,"green":1.0,"blue":1.0,"alpha":0.003921569}]],"gradient_type":"Linear","start":[0.8142178455184718,0.014814814814815058],"end":[0.8217337510617708,0.33779273207824057],"transform":[1667.7715501019673,0.0,0.0,377.053346257955,-488.4641717793936,466.6341200282825]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16261620049358949344,{"inputs":[{"Node":{"node_id":16059265180575745658,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[7340659059180155803,{"inputs":[{"Node":{"node_id":7171713123860587892,"output_index":0,"lambda":false}},{"Node":{"node_id":13531127678140037818,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6589978257209505606,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[709.0896534380868,470.0]],[3,[821.0511776651532,440.0000000000001]],[1,[709.0896534380868,410.0000000000001]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[3,1],[2,3],[1,2]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16398743435291795904,{"inputs":[{"Node":{"node_id":5574499968250848265,"output_index":0,"lambda":false}},{"Node":{"node_id":4741515246389989284,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8181290118694677328,{"inputs":[{"Node":{"node_id":5540780316862276409,"output_index":0,"lambda":false}},{"Node":{"node_id":17638504852426495381,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13837327017498431546,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[4,[718.4197804570089,566.5]],[8,[727.7499074759312,594.0]],[2,[774.4005425705421,566.5]],[12,[1287.5575286112626,593.9999999999999]],[7,[634.4486372867094,569.0000000000001]],[3,[746.4101615137755,574.0]],[6,[765.0704155516199,533.9999999999999]],[11,[858.3716857408418,479.00000000000006]],[1,[662.4390183434757,536.5]],[10,[914.3524478543748,464.0]],[9,[1063.63448015713,504.0000000000001]],[5,[802.3909236273088,543.9999999999999]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"start_point":[[5,5],[7,7],[3,3],[6,6],[8,8],[9,9],[10,10],[11,11],[2,2],[4,4],[1,1]],"end_point":[[4,5],[5,6],[9,10],[2,3],[6,7],[1,2],[10,11],[11,12],[7,8],[8,9],[3,4]],"handle_primary":[[10,[0.0,0.0]],[7,[0.0,0.0]],[9,[0.0,0.0]],[5,[0.0,0.0]],[8,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[11,[0.0,0.0]],[6,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[7,[0.0,0.0]],[6,[0.0,0.0]],[10,[0.0,0.0]],[11,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[9,[0.0,0.0]],[8,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[7,0],[1,0],[2,0],[10,0],[3,0],[6,0],[8,0],[9,0],[11,0],[5,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[183952488591282082,{"inputs":[{"Node":{"node_id":17965270694495451178,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,-6.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1032659476619711014,{"inputs":[{"Node":{"node_id":3014633976566537110,"output_index":0,"lambda":false}},{"Node":{"node_id":2452294403891427489,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5670058004691708784,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[-115.759135893834,30.3564064604534]],[2,[-117.83320996790816,-58.65991650497199]],[3,[-130.2776544123526,8.793446239014884]],[1,[-109.83320996790816,-37.64985269946783]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[2,2],[1,1]],"end_point":[[1,2],[3,4],[4,1],[2,3]],"handle_primary":[[3,[-0.7407407407406481,44.23171327474574]],[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[0.7407407407406481,-44.23171327474574]],[4,[-12.740740740740762,23.22164946924204]],[1,[0.0,0.0]]],"stroke":[[4,0],[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11221222899304956410,{"inputs":[{"Node":{"node_id":5448146793323825465,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8242413775403456296,{"inputs":[{"Node":{"node_id":9138781233934614517,"output_index":0,"lambda":false}},{"Node":{"node_id":9115451226763736660,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15157035456876170143,{"inputs":[{"Node":{"node_id":17059035448296015006,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-63.99999999999994]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9150078008481575131,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[0.5,1.0]],[2,[1.0,0.5]],[4,[0.0,0.5]],[1,[0.5,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[4,4],[1,1]],"end_point":[[2,3],[1,2],[3,4],[4,1]],"handle_primary":[[3,[-0.275892388889507,0.0]],[4,[0.0,-0.275892388889507]],[1,[0.27589238888950707,0.0]],[2,[0.0,0.27589238888950707]]],"handle_end":[[3,[0.0,0.27589238888950707]],[1,[0.0,-0.275892388889507]],[4,[-0.275892388889507,0.0]],[2,[0.27589238888950707,0.0]]],"stroke":[[2,0],[3,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15775513677915164685,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"delta":[[13,[734.8148148148149,620.9492455418381]],[2,[667.3909465020577,593.3827160493828]],[8,[701.8247218411828,611.4580094497792]],[11,[713.6278006401462,612.5505258344765]],[14,[728.493827160494,609.9753086419753]],[5,[662.6063100137173,612.5432098765428]],[7,[692.1871665904588,615.6720012193263]],[17,[749.8271604938273,587.4567901234568]],[15,[763.4567901234569,605.6296296296294]],[18,[725.5089163237311,594.6117969821673]],[1,[699.8518518518516,598.1234567901233]],[6,[695.3964334705074,609.7777777777776]],[3,[699.7421124828531,603.0617283950616]],[12,[721.9094650205761,611.3799725651577]],[9,[709.3552812071331,611.4970278920897]],[10,[709.413808870599,616.4718792866942]],[16,[726.2990397805214,601.9862825788753]],[4,[682.3593964334707,606.4197530864195]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"start_point":[[10,10],[2,2],[5,5],[7,7],[8,8],[4,4],[13,13],[9,9],[16,16],[1,1],[15,15],[18,18],[14,14],[3,3],[6,6],[11,11],[17,17],[12,12]],"end_point":[[7,8],[13,14],[5,6],[12,13],[2,3],[11,12],[10,11],[8,9],[6,7],[17,18],[4,5],[15,16],[18,1],[9,10],[1,2],[16,17],[3,4],[14,15]],"handle_primary":[[14,[-0.1771601410563335,-2.331086581557088]],[6,[0.0,0.0]],[2,[5.399176954732297,6.584362139917744]],[16,[0.0,0.0]],[15,[-15.992684042066571,-5.647919524462736]],[18,[-0.0877914951989851,0.0]],[5,[0.0,0.0]],[4,[-6.038618148571572,2.2123832635880945]],[11,[0.9510922553114368,-0.40840938602514143]],[13,[-3.101966163694442,-4.096936442615402]],[12,[0.6886396813392821,0.35058484628291353]],[7,[0.0,0.0]],[3,[0.0,0.0]],[9,[1.0398530837227329,0.17152215813985094]],[17,[-7.648317030623161,4.388047332817109]],[1,[-13.651577503429507,-4.016460905349504]],[8,[0.0,0.0]],[10,[2.71082158531226,-3.275875783141601]]],"handle_end":[[8,[-3.7847889041303233,-0.6242950769699291]],[3,[6.038618148571345,-2.2123832635879808]],[17,null],[11,[-1.2025737194898056,-0.6122274594622468]],[1,[8.559670781892919,2.502057613168745]],[6,[4.13595488492615,-4.1749733272365575]],[7,[-5.1358024691359105,5.530864197530718]],[5,[-8.69135802469134,3.3580246913579685]],[10,null],[18,[0.0,0.0]],[15,[2.8483462886752022,1.1315348270080676]],[2,[0.0,0.0]],[13,[-0.5267489711934559,1.053497942386798]],[12,[-6.90626428898031,-2.3996342021031296]],[14,[-22.51851851851859,-0.614540466392441]],[16,[-5.977212841894016,7.381559383908893]],[9,null],[4,[0.0,0.0]]],"stroke":[[15,0],[1,0],[2,0],[10,0],[6,0],[18,0],[5,0],[4,0],[3,0],[11,0],[13,0],[17,0],[14,0],[12,0],[8,0],[9,0],[16,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":18}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6569279146800941123,{"inputs":[{"Node":{"node_id":15775513677915164685,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,26.66666666666663]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7799679303995308634,{"inputs":[{"Node":{"node_id":4323461535289334196,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2881239077602364410,{"inputs":[{"Node":{"node_id":9641315149170593327,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.47058824,"green":0.73333335,"blue":0.6117647,"alpha":0.296875}],[0.2777869967086046,{"red":0.46666667,"green":0.72156864,"blue":0.6,"alpha":0.70703125}],[0.36183495566130336,{"red":0.46666667,"green":0.72156864,"blue":0.6039216,"alpha":0.80078125}],[0.6507416725274494,{"red":0.4745098,"green":0.7294118,"blue":0.5921569,"alpha":0.23137255}],[1.0,{"red":0.47058824,"green":0.7176471,"blue":0.6039216,"alpha":0.18359375}]],"gradient_type":"Linear","start":[0.94412535478592,0.7803313772362046],"end":[0.3197649256748516,0.1688059143071423],"transform":[484.7509931080075,0.0,0.0,412.6696147733683,724.2574339293515,434.66666666666674]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.47058824,"green":0.73333335,"blue":0.6117647,"alpha":0.296875}],[0.2777869967086046,{"red":0.46666667,"green":0.72156864,"blue":0.6,"alpha":0.70703125}],[0.36183495566130336,{"red":0.46666667,"green":0.72156864,"blue":0.6039216,"alpha":0.80078125}],[0.6507416725274494,{"red":0.4745098,"green":0.7294118,"blue":0.5921569,"alpha":0.23137255}],[1.0,{"red":0.47058824,"green":0.7176471,"blue":0.6039216,"alpha":0.18359375}]],"gradient_type":"Linear","start":[0.94412535478592,0.7803313772362046],"end":[0.3197649256748516,0.1688059143071423],"transform":[484.7509931080075,0.0,0.0,412.6696147733683,724.2574339293515,434.66666666666674]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[2088390810384907709,{"inputs":[{"Node":{"node_id":14341957170885045113,"output_index":0,"lambda":false}},{"Node":{"node_id":9323583246068171750,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2062662104423219162,{"inputs":[{"Node":{"node_id":10810157408196882043,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.24355652970144,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6556170892691431702,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":3365825508845848745,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11595529463602678384,{"inputs":[{"Node":{"node_id":4398598693761352299,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-63.99999999999994]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10810157408196882043,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1231.5767664977286,540.0]],[3,[1306.217782649106,559.9999999999999]],[1,[1231.576766497731,510.00000000000233]],[4,[1306.2177826491084,530.0000000000023]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[3,3],[2,2]],"end_point":[[3,4],[4,1],[2,3],[1,2]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[-6.821210263296962e-13,-1.1368683772161605e-13]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[3,0],[2,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4323461535289334196,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[597.1281292110198,630.0]],[1,[634.4486372867091,639.9999999999999]],[3,[597.1281292110203,649.9999999999999]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[1,2],[2,3],[3,1]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[0.0,1.1368683772161605e-13]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16807867745126764195,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[0.5,1.0]],[2,[1.0,0.5]],[4,[0.0,0.5]],[1,[0.5,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[3,3],[1,1],[4,4]],"end_point":[[1,2],[2,3],[3,4],[4,1]],"handle_primary":[[2,[0.0,0.27589238888950707]],[4,[0.0,-0.275892388889507]],[3,[-0.275892388889507,0.0]],[1,[0.27589238888950707,0.0]]],"handle_end":[[4,[-0.275892388889507,0.0]],[1,[0.0,-0.275892388889507]],[2,[0.27589238888950707,0.0]],[3,[0.0,0.27589238888950707]]],"stroke":[[2,0],[4,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17881728913029763313,{"inputs":[{"Node":{"node_id":16793555741218543212,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15709488322180832347,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7838724497953148309,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1270.0,635.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"red":0.5529412,"green":0.78039217,"blue":0.70980394,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Network":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14330881008352607546,{"inputs":[{"Node":{"node_id":11595529463602678384,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}],[0.7251131221719457,{"red":0.39215687,"green":0.6156863,"blue":0.5921569,"alpha":0.5019608}],[1.0,{"red":0.5058824,"green":0.7294118,"blue":0.6392157,"alpha":0.0}]],"gradient_type":"Linear","start":[0.3284027974661107,0.17846479235419954],"end":[0.3331499206771569,0.5505113976358942],"transform":[842.6155846750064,0.0,0.0,225.77816544354573,370.28268480418546,448.7065465860055]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}],[0.7251131221719457,{"red":0.39215687,"green":0.6156863,"blue":0.5921569,"alpha":0.5019608}],[1.0,{"red":0.5058824,"green":0.7294118,"blue":0.6392157,"alpha":0.0}]],"gradient_type":"Linear","start":[0.3284027974661107,0.17846479235419954],"end":[0.3331499206771569,0.5505113976358942],"transform":[842.6155846750064,0.0,0.0,225.77816544354573,370.28268480418546,448.7065465860055]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[70804263053697201,{"inputs":[{"Node":{"node_id":13942787566051910019,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[3.410605131648481e-13,3.410605131648481e-13]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1268.999999999999,634.9999999999992]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[194878846429432339,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[522.4871130596428,380.00000000000006]],[1,[671.7691453623979,420.00000000000006]],[2,[559.8076211353317,450.0000000000001]],[3,[410.5255888325765,410.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[3,3],[1,1],[4,4]],"end_point":[[2,3],[1,2],[3,4],[4,1]],"handle_primary":[[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[2,0],[4,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3806549994589872867,{"inputs":[{"Node":{"node_id":11429712783984224234,"output_index":0,"lambda":false}},{"Node":{"node_id":11479492521093639512,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[326112971739898070,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[597.1281292110207,610.0]],[4,[578.4678751731759,605.0]],[1,[559.8076211353317,610.0]],[2,[578.4678751731759,615.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[1,1],[2,2]],"end_point":[[2,3],[4,1],[1,2],[3,4]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[-1.1368683772161605e-13,-1.1368683772161605e-13]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4898866541060902381,{"inputs":[{"Node":{"node_id":7799679303995308634,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.39520264,"green":0.72265625,"blue":0.56068987,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.39520264,"green":0.72265625,"blue":0.56068987,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[10779665858841986661,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[122.7099999086348,-47.60198818628578]],[4,[127.45074064937567,-74.14101615113282]],[2,[97.17913571110468,-93.86098831945704]],[1,[98.808765340734,-112.29086885060116]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[3,4],[4,1],[2,3],[1,2]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[-5.92592592592608,-17.692685309898252]]],"stroke":[[3,0],[2,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7952384394377946257,{"inputs":[{"Node":{"node_id":9935922395919478146,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}],[0.15303737473719153,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}],[0.45863166412588735,{"red":0.7921569,"green":0.8509804,"blue":0.58431375,"alpha":1.0}],[0.6476150394844262,{"red":0.9764706,"green":0.92941177,"blue":0.54509807,"alpha":1.0}],[1.0,{"red":0.9764706,"green":0.92941177,"blue":0.54509807,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5550432633852689,0.9407795494396834],"end":[0.3799981368712242,0.012217625842737945],"transform":[548.4300072318631,0.0,0.0,524.1079289375543,1123.2642857142864,356.5966454230286]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}],[0.15303737473719153,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}],[0.45863166412588735,{"red":0.7921569,"green":0.8509804,"blue":0.58431375,"alpha":1.0}],[0.6476150394844262,{"red":0.9764706,"green":0.92941177,"blue":0.54509807,"alpha":1.0}],[1.0,{"red":0.9764706,"green":0.92941177,"blue":0.54509807,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5550432633852689,0.9407795494396834],"end":[0.3799981368712242,0.012217625842737945],"transform":[548.4300072318631,0.0,0.0,524.1079289375543,1123.2642857142864,356.5966454230286]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9666682009015049330,{"inputs":[{"Node":{"node_id":2791109467690716388,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[958845362613832240,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[4,[1195.671865772399,520.3793108463286]],[2,[971.7488173182714,480.37931084632993]],[1,[971.7488173182716,440.37931084632993]],[3,[1195.6718657723986,420.3793108463287]],[6,[1382.2744061508486,330.3793108463298]],[5,[1382.2744061508483,470.3793108463301]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[3,3],[6,6],[5,5],[4,4],[1,1]],"end_point":[[4,5],[2,3],[3,4],[1,2],[5,6],[6,1]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[5,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[6,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[5,[0.0,0.0]],[6,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[3,0],[6,0],[1,0],[2,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13817976820605296433,{"inputs":[{"Node":{"node_id":4837219841531371489,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969996,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15595689026000825531,{"inputs":[{"Node":{"node_id":2785423879796980286,"output_index":0,"lambda":false}},{"Node":{"node_id":12172015233077238737,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17433098630591807963,{"inputs":[{"Node":{"node_id":11490835759023283071,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.49019608,"green":0.69411767,"blue":0.627451,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.49019608,"green":0.69411767,"blue":0.627451,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3670594928372882885,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[559.8076211353316,450.00000000000006]],[1,[671.7691453623979,459.99999999999994]],[4,[559.8076211353317,490.00000000000006]],[2,[671.7691453623979,420.00000000000006]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[1,1],[4,4]],"end_point":[[3,4],[4,1],[1,2],[2,3]],"handle_primary":[[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[2,0],[4,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15723520455917422372,{"inputs":[{"Node":{"node_id":4187349759243468746,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[55.4066256813212,75.48692492726542]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.093432966432927,1.093432966432927]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13743495762122910279,{"inputs":[{"Node":{"node_id":322234583139821148,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.30980393,"green":0.54901963,"blue":0.5568628,"alpha":1.0}],[1.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0487255567160787,0.14016773560900295],"end":[0.9275384787415986,0.5063561479050618],"transform":[117.20355654603016,0.0,0.0,62.809196653128225,646.2891914581903,455.19617712971046]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.30980393,"green":0.54901963,"blue":0.5568628,"alpha":1.0}],[1.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0487255567160787,0.14016773560900295],"end":[0.9275384787415986,0.5063561479050618],"transform":[117.20355654603016,0.0,0.0,62.809196653128225,646.2891914581903,455.19617712971046]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17250040304106119844,{"inputs":[{"Node":{"node_id":6142412830271644616,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,16.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12548387328300782726,{"inputs":[{"Node":{"node_id":764189229787475993,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.7883568080179962,0.844472024944475],"end":[0.14631144508187544,0.21558322991428724],"transform":[468.8142261841201,0.0,0.0,125.61839330625676,23.40711309206017,381.9187810343939]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.7883568080179962,0.844472024944475],"end":[0.14631144508187544,0.21558322991428724],"transform":[468.8142261841201,0.0,0.0,125.61839330625676,23.40711309206017,381.9187810343939]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7339104629465306715,{"inputs":[{"Node":{"node_id":16229837691656808412,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9226731772122225003,{"inputs":[{"Node":{"node_id":8884703330021429739,"output_index":0,"lambda":false}},{"Node":{"node_id":9695624216919732577,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10188337730058049439,{"inputs":[{"Node":{"node_id":1268775104597510914,"output_index":0,"lambda":false}},{"Node":{"node_id":11076863066321508991,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15898396405528650339,{"inputs":[{"Node":{"node_id":16807867745126764195,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[1156.935750346027,389.9999999999999]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.141592653589793},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[373.2050807562376,99.99999999999976]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-3.2814312084546346e-17,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4046495708656778502,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[130.0186418839436,64.45168544306966]],[4,[122.38078180163905,40.36997488237489]],[2,[111.05567892098054,93.44803081206965]],[1,[106.87778599676416,75.02595252015249]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[3,3],[4,4],[1,1]],"end_point":[[2,3],[4,1],[1,2],[3,4]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[3,0],[1,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9771562518763748677,{"inputs":[{"Node":{"node_id":14234384001010789008,"output_index":0,"lambda":false}},{"Node":{"node_id":12554549497938935061,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11479492521093639512,{"inputs":[{"Node":{"node_id":15216519480392295991,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BlendMode":"Lighten"},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::BlendModeNode"}},"visible":true,"skip_deduplication":false}],[15300421479077882117,{"inputs":[{"Node":{"node_id":7030585744407664630,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4887570735033124574,{"inputs":[{"Node":{"node_id":9210109719406330381,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.39607844,"green":0.57322305,"blue":0.627451,"alpha":0.6313726}],[1.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.0}]],"gradient_type":"Linear","start":[0.7128143377734406,-0.305555555555558],"end":[0.6180751590210081,0.944444444444442],"transform":[348.32474203976165,0.0,0.0,120.0,901.7091296728228,809.666666666667]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.39607844,"green":0.57322305,"blue":0.627451,"alpha":0.6313726}],[1.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.0}]],"gradient_type":"Linear","start":[0.7128143377734406,-0.305555555555558],"end":[0.6180751590210081,0.944444444444442],"transform":[348.32474203976165,0.0,0.0,120.0,901.7091296728228,809.666666666667]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5365849201631468915,{"inputs":[{"Node":{"node_id":10849502918952703647,"output_index":0,"lambda":false}},{"Node":{"node_id":2310170068575553369,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14483299526002574058,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[839.7114317029976,625.0000000000001]],[2,[1156.9357503463518,589.9999999999999]],[1,[1156.9357503463516,540.0]],[3,[933.0127018922192,649.9999999999999]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[2,2],[1,1]],"end_point":[[4,1],[3,4],[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[2.273736754432321e-13,0.0]],[3,[0.0,0.0]]],"stroke":[[3,0],[4,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14234384001010789008,{"inputs":[{"Node":{"node_id":4757672276235057645,"output_index":0,"lambda":false}},{"Node":{"node_id":8863202447825570192,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16793555741218543212,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[2,[634.4486372867091,470.00000000000006]],[5,[298.56406460551005,480.00000000000006]],[4,[597.1281292110201,559.9999999999999]],[6,[410.5255888325765,450.0000000000001]],[1,[559.7618537735666,489.9877366723751]],[3,[783.7306695894638,509.9999999999999]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[1,1],[5,5],[6,6],[3,3],[2,2],[4,4]],"end_point":[[5,6],[2,3],[6,1],[1,2],[3,4],[4,5]],"handle_primary":[[6,[0.0,0.0]],[2,[149.28203230275471,39.99999999999983]],[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[5,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[5,[0.0,0.0]],[1,null],[2,null],[6,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[4,0],[1,0],[3,0],[6,0],[2,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2209276411833629008,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[0.1274934116812796,0.166664669692703]],[6,[0.5000000000000018,0.10816199860278752]],[3,[0.5,1.0]],[1,[0.8725092774641316,0.16666767219504575]],[2,[1.0,0.5]],[4,[0.0,0.5]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[3,3],[4,4],[5,5],[1,1],[6,6]],"end_point":[[2,3],[4,5],[6,1],[1,2],[3,4],[5,6]],"handle_primary":[[2,[0.0,0.27589238888950707]],[1,[0.07925873631249913,0.08849560350574948]],[5,[0.14548887396141374,-0.05850358027814341]],[3,[-0.275892388889507,0.0]],[6,[0.22701785858837376,9.09188805575667e-7]],[4,[0.0,-0.12799231715991943]]],"handle_end":[[1,[0.0,-0.12799086965193351]],[5,null],[3,[0.0,0.27589238888950707]],[2,[0.27589238888950707,0.0]],[4,[-0.07926033448372466,0.08849596308181285]],[6,null]],"stroke":[[2,0],[4,0],[3,0],[6,0],[5,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5434119356821575534,{"inputs":[{"Node":{"node_id":1490537476612110327,"output_index":0,"lambda":false}},{"Node":{"node_id":16261620049358949344,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2032185045476767535,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7340659059180155803,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15261165353096835967,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[2,[877.0319397786863,584.9999999999998]],[4,[615.7883832488644,605.0000000000001]],[3,[783.7306695894646,560.0]],[6,[1044.9742261192855,480.0]],[5,[597.1281292110198,599.9999999999999]],[1,[1156.9357503463468,509.9999999999987]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[2,2],[4,4],[1,1],[5,5],[6,6]],"end_point":[[1,2],[4,5],[6,1],[3,4],[2,3],[5,6]],"handle_primary":[[4,null],[5,[447.84609690826574,-119.99999999999989]],[3,null],[6,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[6,[0.0,0.0]],[2,null],[5,null],[3,null],[1,[0.0,0.0]],[4,null]],"stroke":[[5,0],[4,0],[3,0],[1,0],[2,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1658032775659237960,{"inputs":[{"Node":{"node_id":14483299526002574058,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297003,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18185020559178852986,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":4847316728405535983,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6785205785632793666,{"inputs":[{"Node":{"node_id":10917301734480569398,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.49803922,"green":0.73333335,"blue":0.6666667,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.49803922,"green":0.73333335,"blue":0.6666667,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4884180935153120645,{"inputs":[{"Node":{"node_id":11221222899304956410,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4094933109340779,0.6607209771464397],"end":[0.921423168424672,0.39536705519277415],"transform":[351.6106696380906,0.0,0.0,94.21379497969252,533.0177827301501,601.7509693203432]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4094933109340779,0.6607209771464397],"end":[0.921423168424672,0.39536705519277415],"transform":[351.6106696380906,0.0,0.0,94.21379497969252,533.0177827301501,601.7509693203432]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7838724497953148309,{"inputs":[{"Node":{"node_id":9771562518763748677,"output_index":0,"lambda":false}},{"Node":{"node_id":2058192342619930156,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17873337220577786871,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[597.1281292110198,599.9999999999999]],[3,[783.7306695894646,560.0]],[2,[877.0319397786863,584.9999999999998]],[1,[1156.9357503463468,509.9999999999987]],[6,[1044.9742261192855,480.0]],[4,[615.7883832488646,605.0000000000001]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[6,6],[2,2],[1,1],[3,3],[4,4],[5,5]],"end_point":[[5,6],[1,2],[4,5],[6,1],[3,4],[2,3]],"handle_primary":[[5,[447.84609690826574,-119.99999999999989]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,null],[4,null],[6,[0.0,0.0]]],"handle_end":[[3,null],[6,[0.0,0.0]],[4,null],[2,null],[5,null],[1,[0.0,0.0]]],"stroke":[[3,0],[5,0],[2,0],[6,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7861616450605235840,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1343.5382907247954,439.792314581573]],[4,[1231.5767664977302,450.00000000000233]],[1,[1343.3813269975649,420.0420583039525]],[3,[1268.8972745734186,460.00000000000233]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[1,1],[4,4]],"end_point":[[1,2],[3,4],[4,1],[2,3]],"handle_primary":[[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8463468388280418154,{"inputs":[{"Node":{"node_id":9993538712344947860,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":74.5472},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[15670426414376277308,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.5,0.0]],[2,[1.0,0.5]],[3,[0.5,1.0]],[4,[0.0,0.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[4,4],[2,2]],"end_point":[[4,1],[1,2],[3,4],[2,3]],"handle_primary":[[4,[0.0,-0.275892388889507]],[1,[0.27589238888950707,0.0]],[2,[0.0,0.27589238888950707]],[3,[-0.275892388889507,0.0]]],"handle_end":[[3,[0.0,0.27589238888950707]],[1,[0.0,-0.275892388889507]],[2,[0.27589238888950707,0.0]],[4,[-0.275892388889507,0.0]]],"stroke":[[4,0],[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2292399603649738346,{"inputs":[{"Node":{"node_id":16510804133693080967,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.9127081032507663,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.6216293634586009,-3.518518518518513],"end":[0.4157051295501385,0.32812296023903675],"transform":[1332.3243231154509,0.0,0.0,297.49602202927537,-250.85405534350912,609.3847245924164]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.9127081032507663,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.6216293634586009,-3.518518518518513],"end":[0.4157051295501385,0.32812296023903675],"transform":[1332.3243231154509,0.0,0.0,297.49602202927537,-250.85405534350912,609.3847245924164]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4069478660487729695,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[59.855160808698834,104.19217420861494]],[1,[-22.15328312748764,98.9633432080564]],[4,[55.822325899541134,88.0419325229343]],[2,[-23.148253406408465,116.21917209054972]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[2,2],[3,3]],"end_point":[[1,2],[2,3],[3,4],[4,1]],"handle_primary":[[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[4,[24.844120782255654,5.22590107758802]],[2,[-27.645547736903644,17.139482007743737]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[1,0],[4,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5326013268137833446,{"inputs":[{"Node":{"node_id":12875121980058869686,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.48235294,"green":0.69803923,"blue":0.69411767,"alpha":1.0}],[0.5005297191519419,{"red":0.48235294,"green":0.69803923,"blue":0.69411767,"alpha":1.0}],[0.8104119804726813,{"red":0.5686275,"green":0.69411767,"blue":0.5372549,"alpha":0.87890625}],[1.0,{"red":0.3529412,"green":0.5647059,"blue":0.57254905,"alpha":0.296875}]],"gradient_type":"Radial","start":[0.0015840517590797742,0.9627709247339196],"end":[1.0370671897237005,-1.554312234475219e-14],"transform":[2645.364887303592,0.0,0.0,759.3749999999876,-1035.2336294696888,690.8750000000118]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.48235294,"green":0.69803923,"blue":0.69411767,"alpha":1.0}],[0.5005297191519419,{"red":0.48235294,"green":0.69803923,"blue":0.69411767,"alpha":1.0}],[0.8104119804726813,{"red":0.5686275,"green":0.69411767,"blue":0.5372549,"alpha":0.87890625}],[1.0,{"red":0.3529412,"green":0.5647059,"blue":0.57254905,"alpha":0.296875}]],"gradient_type":"Radial","start":[0.0015840517590797742,0.9627709247339196],"end":[1.0370671897237005,-1.554312234475219e-14],"transform":[2645.364887303592,0.0,0.0,759.3749999999876,-1035.2336294696888,690.8750000000118]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12537712543904859919,{"inputs":[{"Node":{"node_id":4968550668755026811,"output_index":0,"lambda":false}},{"Node":{"node_id":8508454285877707748,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12469956387875933942,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":2881239077602364410,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13207576193421440093,{"inputs":[{"Node":{"node_id":12930243402848966353,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5686275,"green":0.7411765,"blue":0.654902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5686275,"green":0.7411765,"blue":0.654902,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5574499968250848265,{"inputs":[{"Node":{"node_id":11776939455674933130,"output_index":0,"lambda":false}},{"Node":{"node_id":5925268772265373737,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18371793711669837037,{"inputs":[{"Node":{"node_id":7861616450605235840,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.00000000000006]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10742991645899166287,{"inputs":[{"Node":{"node_id":1104068854328504126,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-298.5640646053887,-114.0000000000026]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999996,0.9999999999999996]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18085100003956405261,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"delta":[[2,[476.9512618480758,444.1904085078117]],[13,[526.0246913580248,490.07407407407413]],[4,[511.55555555555554,490.2222222222222]],[15,[556.7578325004595,420.13017723423656]],[7,[515.1604938271604,486.716049382716]],[5,[497.38271604938257,447.60493827160496]],[1,[510.41975308641986,500.1481481481481]],[11,[531.5890484844431,432.90541944395505]],[9,[505.311372421164,416.4524664944526]],[3,[480.5925925925926,440.2962962962962]],[18,[568.2339832275112,446.0155371619765]],[16,[530.3703703703702,486.71604938271594]],[8,[502.0960349862431,417.9179038759178]],[17,[565.2914244954804,444.3855996237166]],[14,[552.9705625612692,418.19081042008474]],[10,[524.0493827160495,487.1111111111112]],[19,[530.7654320987656,499.55555555555566]],[6,[499.77650172698026,445.9388618767647]],[12,[533.8924329970387,433.46495092641567]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"start_point":[[2,2],[18,18],[12,12],[17,17],[13,13],[15,15],[10,10],[7,7],[16,16],[1,1],[9,9],[19,19],[4,4],[5,5],[11,11],[14,14],[6,6],[8,8],[3,3]],"end_point":[[11,12],[3,4],[9,10],[15,16],[1,2],[14,15],[10,11],[13,14],[2,3],[8,9],[4,5],[18,19],[7,8],[5,6],[16,17],[12,13],[17,18],[6,7],[19,1]],"handle_primary":[[7,[0.0,0.0]],[11,[7.784237194372736,-22.222909722529664]],[6,[3.9272019767233246,4.629039357803151]],[18,[-19.30865594294653,18.299752742610902]],[15,[-11.459519915000214,23.15277176924241]],[14,[15.260998855532309,-21.888591759537466]],[1,[-9.283950617284065,-12.246913580246884]],[19,[-1.5204271954055455,4.429070525747022]],[3,[21.32824309569804,17.329197515254634]],[2,[-17.16805625160663,-20.28383937076643]],[4,[0.0,0.0]],[5,[-10.016557406305251,-15.024836109457851]],[13,[0.0,0.0]],[10,[0.0,0.0]],[12,[-5.082537215847424,18.7049831985629]],[9,[11.197015798182122,18.39034937970939]],[8,[-8.936088730151937,-20.93774746663439]],[17,[27.324497401397252,-21.15032331824051]],[16,[0.0,0.0]]],"handle_end":[[9,[0.7901234567898427,-21.135802469135857]],[7,[18.59187624528363,43.5617887769169]],[18,[4.54320987654296,-13.23456790123464]],[11,[5.082537215847424,-18.704983198562843]],[10,[-7.784237194372736,22.22290972252955]],[14,[11.286699158099054,-22.803605349427187]],[5,[-12.032856371187677,-14.183269935989983]],[1,[28.522359190346833,33.698803394714844]],[16,[-28.402535606591755,21.984770746653737]],[15,[4.54320987654296,-11.851851851852018]],[4,[13.03703703703701,19.555555555555543]],[6,[0.7901234567898427,-16.197530864197745]],[8,[-11.197015798182008,-18.39034937970939]],[13,[-15.260998855532534,21.888591759537743]],[12,[3.7530864197531177,-16.59259259259261]],[19,[2.7053847913285836,3.5688054694122116]],[2,[-22.123456790123555,-17.97530864197529]],[3,[-3.111111111111086,-12.0]],[17,[19.435079545528083,-18.419570542198244]]],"stroke":[[2,0],[17,0],[15,0],[19,0],[3,0],[5,0],[14,0],[18,0],[8,0],[12,0],[11,0],[6,0],[1,0],[4,0],[16,0],[13,0],[10,0],[9,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":19}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8612613134760093452,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[802.3909236273086,635.0000000000001]],[1,[933.0127018922192,650.0]],[4,[933.0127018922192,670.0000000000001]],[2,[839.7114317029974,625.0000000000001]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[1,1],[2,2]],"end_point":[[1,2],[4,1],[2,3],[3,4]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12931264630175648107,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[8,[709.0896534380863,649.9999999999999]],[7,[298.56406460551045,540.0000000000001]],[6,[298.56406460551034,520.0000000000002]],[5,[261.2435565296994,530.0000000000001]],[11,[1492.8203230275508,480.0000000000001]],[10,[1306.2177826491086,530.0000000000023]],[4,[261.24355652969956,704.9999999999997]],[2,[1531.2435565296985,470.3]],[3,[1531.243556529699,704.9999999999997]],[1,[1492.820323027551,460.0000000000025]],[9,[1231.576766497731,510.0000000000024]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"start_point":[[1,1],[3,3],[9,9],[7,7],[11,11],[2,2],[8,8],[10,10],[6,6],[4,4],[5,5]],"end_point":[[2,3],[9,10],[5,6],[8,9],[4,5],[11,1],[7,8],[10,11],[6,7],[1,2],[3,4]],"handle_primary":[[5,[0.0,0.0]],[10,[0.0,0.0]],[8,[0.0,0.0]],[7,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[6,[0.0,0.0]],[2,[0.0,0.0]],[9,[0.0,0.0]],[11,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[0.0,0.0]],[11,[0.0,0.0]],[9,[0.0,0.0]],[10,[0.0,0.0]],[8,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]],[6,[0.0,0.0]],[7,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[9,0],[4,0],[5,0],[10,0],[8,0],[1,0],[11,0],[2,0],[7,0],[3,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":11}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4757672276235057645,{"inputs":[{"Node":{"node_id":4924169570021915606,"output_index":0,"lambda":false}},{"Node":{"node_id":14400993470150734626,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15134939288287905620,{"inputs":[{"Node":{"node_id":8958782938691501404,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10989897386232385465,{"inputs":[{"Node":{"node_id":10507084483235320484,"output_index":0,"lambda":false}},{"Node":{"node_id":7339104629465306715,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5540780316862276409,{"inputs":[{"Node":{"node_id":1032659476619711014,"output_index":0,"lambda":false}},{"Node":{"node_id":13743495762122910279,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9695624216919732577,{"inputs":[{"Node":{"node_id":1156213189397385283,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[16852951849051795674,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[4,[933.0127018922192,670.0]],[6,[1343.5382907247958,520.0]],[5,[1343.5382907247958,560.0]],[7,[1306.2177826491068,529.9999999999972]],[1,[1156.9357503463525,530.0]],[3,[933.0127018922192,650.0]],[8,[1231.576766497731,510.0000000000022]],[2,[1156.9357503463518,590.0]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[8,8],[4,4],[2,2],[5,5],[1,1],[3,3],[7,7],[6,6]],"end_point":[[6,7],[4,5],[3,4],[5,6],[8,1],[1,2],[7,8],[2,3]],"handle_primary":[[8,[0.0,0.0]],[1,[0.0,0.0]],[2,null],[5,null],[7,[-74.64101615137588,-19.99999999999494]],[3,[0.0,20.0]],[6,null],[4,[0.0,0.0]]],"handle_end":[[5,null],[6,null],[1,null],[7,null],[4,null],[2,null],[8,[0.0,0.0]],[3,null]],"stroke":[[3,0],[4,0],[7,0],[5,0],[6,0],[1,0],[8,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14124486712683868036,{"inputs":[{"Node":{"node_id":14449527838292182035,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.44433594,"green":0.7109375,"blue":0.60144055,"alpha":1.0}],[0.31019165912642926,{"red":0.42991638,"green":0.68359375,"blue":0.5723318,"alpha":0.85546875}],[1.0,{"red":0.41487122,"green":0.66796875,"blue":0.5466929,"alpha":0.3515625}]],"gradient_type":"Radial","start":[0.49564744287268736,0.12680209698558276],"end":[0.6983677910772572,0.8876146788990837],"transform":[340.37037037037106,0.0,0.0,113.03703703703678,837.2962962962961,682.6666666666667]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.44433594,"green":0.7109375,"blue":0.60144055,"alpha":1.0}],[0.31019165912642926,{"red":0.42991638,"green":0.68359375,"blue":0.5723318,"alpha":0.85546875}],[1.0,{"red":0.41487122,"green":0.66796875,"blue":0.5466929,"alpha":0.3515625}]],"gradient_type":"Radial","start":[0.49564744287268736,0.12680209698558276],"end":[0.6983677910772572,0.8876146788990837],"transform":[340.37037037037106,0.0,0.0,113.03703703703678,837.2962962962961,682.6666666666667]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11450962621506425680,{"inputs":[{"Node":{"node_id":514222872092587805,"output_index":0,"lambda":false}},{"Node":{"node_id":6006052038693767172,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11158238411769751544,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14124486712683868036,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2310170068575553369,{"inputs":[{"Node":{"node_id":3564067978712674849,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.94921875,"green":0.8861847,"blue":0.5710144,"alpha":1.0}],[1.0,{"red":0.6594621,"green":0.859375,"blue":0.62438965,"alpha":1.0}]],"gradient_type":"Radial","start":[0.9615262104062824,0.1999999999999842],"end":[0.047819464216158014,0.809999999999961],"transform":[373.20508075688934,0.0,0.0,100.00000000000384,799.1535329954577,376.0000000000008]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.94921875,"green":0.8861847,"blue":0.5710144,"alpha":1.0}],[1.0,{"red":0.6594621,"green":0.859375,"blue":0.62438965,"alpha":1.0}]],"gradient_type":"Radial","start":[0.9615262104062824,0.1999999999999842],"end":[0.047819464216158014,0.809999999999961],"transform":[373.20508075688934,0.0,0.0,100.00000000000384,799.1535329954577,376.0000000000008]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[6868877732348460627,{"inputs":[{"Node":{"node_id":7884283658260267478,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[4191887059541031673,{"inputs":[{"Node":{"node_id":4046495708656778502,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13287180494862716983,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[765.0704155516202,530.0]],[2,[783.7306695894644,525.0]],[4,[830.3813046840752,527.5]],[3,[811.7210506462309,532.5]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[2,2],[1,1]],"end_point":[[3,4],[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1396768435017101055,{"inputs":[{"Node":{"node_id":15914878146223026034,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16727310898641763441,{"inputs":[{"Node":{"node_id":13920465562072008593,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.4117647,"green":0.6392157,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.4117647,"green":0.6392157,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9278774434958175105,{"inputs":[{"Node":{"node_id":3927358878935116440,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-298.5640646053914,-74.00000000000011]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999972,0.9999999999999972]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12930243402848966353,{"inputs":[{"Node":{"node_id":7948029953091985757,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[895.6921938163274,315.9999999999998]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.141592653589793},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[373.2050807562376,99.99999999999976]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-3.2814312084546346e-17,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14805036488257720752,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[877.0319397786858,590.0]],[4,[942.3428289111416,582.5]],[3,[895.6921938165302,595.0]],[1,[849.0415587219195,597.5000000000001]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[1,1],[3,3]],"end_point":[[3,4],[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[3,0],[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18011777376689315137,{"inputs":[{"Node":{"node_id":10564228200140683112,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[8343201730608263656,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[933.0127018922194,430.0]],[6,[597.1281292110205,340.0000000000001]],[5,[597.1281292110203,439.99999999999994]],[2,[933.0127018922194,470.0]],[4,[709.0896534380868,470.0]],[3,[709.0896534380868,410.0000000000001]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[1,1],[5,5],[2,2],[4,4],[3,3],[6,6]],"end_point":[[6,1],[3,4],[2,3],[4,5],[5,6],[1,2]],"handle_primary":[[4,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[5,[0.0,0.0]],[6,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[6,0],[2,0],[3,0],[5,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9935922395919478146,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"delta":[[16,[1349.7942386831278,385.3168724279836]],[10,[1307.9176954732511,360.6913580246913]],[3,[1276.181069958848,406.51851851851853]],[19,[1353.7448559670786,395.8518518518519]],[5,[1303.7037037037037,419.6872427983538]],[18,[1353.2181069958854,390.3209876543211]],[11,[1318.5843621399176,404.93827160493817]],[14,[1320.9547325102878,428.11522633744846]],[12,[1330.9629629629628,378.8641975308641]],[9,[1303.5720164609054,369.51440329218104]],[1,[1317.9649443682358,445.9417771681145]],[4,[1281.3168724279838,402.0411522633745]],[8,[1311.341563786008,420.872427983539]],[20,[1325.5637860082302,441.9423868312756]],[17,[1331.2263374485594,418.633744855967]],[15,[1346.7654320987656,379.522633744856]],[7,[1291.19341563786,379.78600823045264]],[13,[1334.9135802469134,382.9465020576131]],[6,[1283.8189300411525,381.6296296296296]],[2,[1309.8491083676272,442.3520804755373]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"start_point":[[1,1],[14,14],[12,12],[15,15],[20,20],[7,7],[18,18],[2,2],[16,16],[19,19],[17,17],[10,10],[13,13],[11,11],[9,9],[8,8],[5,5],[3,3],[6,6],[4,4]],"end_point":[[3,4],[16,17],[15,16],[20,1],[11,12],[18,19],[12,13],[17,18],[5,6],[4,5],[1,2],[9,10],[7,8],[8,9],[2,3],[14,15],[19,20],[13,14],[10,11],[6,7]],"handle_primary":[[15,[17.514403292181214,-18.96296296296299]],[8,[0.0,0.0]],[17,[0.0,0.0]],[12,[8.691358024691226,-13.168724279835374]],[13,[-7.506172839506235,20.67489711934155]],[11,[0.0,0.0]],[14,[0.0,0.0]],[5,[0.0,0.0]],[6,[-13.958847736625785,-23.967078189300366]],[9,[-8.427983539094384,-34.502057613168745]],[18,[14.617283950616866,-16.32921810699594]],[2,[-1.1927104603494172,-1.8387619597050957]],[1,[-5.73075474332677,0.190602104454058]],[10,[10.930041152263357,24.88888888888891]],[4,[11.934313314187648,6.04743230718924]],[16,[-13.168724279835487,17.382716049382793]],[3,[-25.9423868312756,-18.304526748971227]],[19,[-17.792694511774243,22.05806648377495]],[20,[-0.8876695625660886,2.750800182899013]],[7,[13.958847736626012,18.304526748971227]]],"handle_end":[[6,[-21.35436745259517,-28.00242524443996]],[13,[0.0,0.0]],[16,[0.0,0.0]],[17,[-11.234881916731185,12.550678897970386]],[12,[7.506172839506235,-20.67489711934155]],[5,[8.275699533270199,14.209219953350214]],[1,[1.8728852309102424,2.887364730986178]],[14,[-16.17829033097064,17.51634441849427]],[2,[21.160177959832257,14.930277849830986]],[15,[22.902000000470935,-30.23064000062169]],[20,[6.571889866311722,-0.218577847920983]],[8,[7.512329871725342,30.753600412376215]],[3,[-29.366255144032948,-14.880658436213992]],[4,[0.0,0.0]],[11,[-8.691358024691226,13.168724279835374]],[19,[2.149866795831258,-6.662224576095184]],[9,[-11.24897964853426,-25.61514642859032]],[10,[0.0,0.0]],[7,[0.0,0.0]],[18,[19.22633744855989,-23.835390946502]]],"stroke":[[14,0],[6,0],[3,0],[9,0],[17,0],[1,0],[5,0],[11,0],[8,0],[13,0],[16,0],[18,0],[12,0],[20,0],[2,0],[19,0],[7,0],[15,0],[10,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":20}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8073807569018624098,{"inputs":[{"Node":{"node_id":8028812053913481975,"output_index":0,"lambda":false}},{"Node":{"node_id":12998832508553378533,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12875121980058869686,{"inputs":[{"Node":{"node_id":13747030364552895864,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14341957170885045113,{"inputs":[{"Node":{"node_id":12469956387875933942,"output_index":0,"lambda":false}},{"Node":{"node_id":7952384394377946257,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[514222872092587805,{"inputs":[{"Node":{"node_id":5434119356821575534,"output_index":0,"lambda":false}},{"Node":{"node_id":3679103217373457623,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9908869573449854874,{"inputs":[{"Node":{"node_id":16416441286881083283,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17059035448296015006,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[821.0511776651532,440.0000000000001]],[3,[933.0127018922194,470.0]],[2,[821.0511776651531,500.0]],[1,[709.0896534380867,469.99999999999994]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[2,2],[1,1]],"end_point":[[3,4],[1,2],[4,1],[2,3]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,5.684341886080804e-14]]],"stroke":[[2,0],[1,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8028812053913481975,{"inputs":[{"Node":{"node_id":15517065353723874205,"output_index":0,"lambda":false}},{"Node":{"node_id":6785205785632793666,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9993538712344947860,{"inputs":[{"Node":{"node_id":15134939288287905620,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.38039216,"green":0.58431375,"blue":0.57254905,"alpha":1.0}],[1.0,{"red":0.38039216,"green":0.58431375,"blue":0.5764706,"alpha":0.0}]],"gradient_type":"Radial","start":[0.9375072552322194,-0.022211489741806645],"end":[0.8621391458239049,0.9748376053312908],"transform":[252.09601447033225,0.0,0.0,101.29892349242375,1209.6581574189368,708.250000000008]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.38039216,"green":0.58431375,"blue":0.57254905,"alpha":1.0}],[1.0,{"red":0.38039216,"green":0.58431375,"blue":0.5764706,"alpha":0.0}]],"gradient_type":"Radial","start":[0.9375072552322194,-0.022211489741806645],"end":[0.8621391458239049,0.9748376053312908],"transform":[252.09601447033225,0.0,0.0,101.29892349242375,1209.6581574189368,708.250000000008]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[456239140723765386,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1.0,0.5]],[3,[0.5,1.0]],[1,[0.5,0.0]],[4,[0.0,0.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[1,1],[2,2],[4,4]],"end_point":[[2,3],[1,2],[4,1],[3,4]],"handle_primary":[[3,[-0.275892388889507,0.0]],[1,[0.27589238888950707,0.0]],[2,[0.0,0.27589238888950707]],[4,[0.0,-0.275892388889507]]],"handle_end":[[1,[0.0,-0.275892388889507]],[3,[0.0,0.27589238888950707]],[4,[-0.275892388889507,0.0]],[2,[0.27589238888950707,0.0]]],"stroke":[[4,0],[2,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2465823993152870948,{"inputs":[{"Node":{"node_id":15898396405528650339,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3778839,"green":0.76171875,"blue":0.72573423,"alpha":1.0}],[1.0,{"red":0.7411765,"green":0.87058824,"blue":0.7372549,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4840260278337376,0.5459259284371654],"end":[-0.00035013139300899,0.5459259284371651],"transform":[-1259.5671475523018,1.5425248755610888e-13,0.0,-337.4999999999992,1616.6581574178408,781.2499999999995]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3778839,"green":0.76171875,"blue":0.72573423,"alpha":1.0}],[1.0,{"red":0.7411765,"green":0.87058824,"blue":0.7372549,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4840260278337376,0.5459259284371654],"end":[-0.00035013139300899,0.5459259284371651],"transform":[-1259.5671475523018,1.5425248755610888e-13,0.0,-337.4999999999992,1616.6581574178408,781.2499999999995]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14161755104759532162,{"inputs":[{"Node":{"node_id":13837327017498431546,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,16.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3021739385836969518,{"inputs":[{"Node":{"node_id":6556170892691431702,"output_index":0,"lambda":false}},{"Node":{"node_id":13868917743026516656,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11547499603328872398,{"inputs":[{"Node":{"node_id":8343201730608263656,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6777328619777499144,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[1343.5382907246749,419.99978273075953]],[3,[1268.8972745734193,460.0000000000024]],[2,[1380.8587988003642,430.0]],[4,[1231.5767664977295,450.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[1,1],[2,2]],"end_point":[[3,4],[4,1],[2,3],[1,2]],"handle_primary":[[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[-6.821210263296962e-13,-5.684341886080804e-14]],[2,[0.0,0.0]]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3455270778005546310,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[410.5255888325765,410.0]],[3,[410.5255888325765,450.0000000000001]],[1,[559.8076211353316,449.99999999999994]],[2,[559.7618537735666,489.9877366723752]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[3,3],[4,4]],"end_point":[[4,1],[1,2],[3,4],[2,3]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[0.0,5.684341886080804e-14]],[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[3,0],[1,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11076863066321508991,{"inputs":[{"Node":{"node_id":8891726805381758817,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5925268772265373737,{"inputs":[{"Node":{"node_id":4105329493214975815,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.49019608,"green":0.7882353,"blue":0.75686276,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.49019608,"green":0.7882353,"blue":0.75686276,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11895211316848895241,{"inputs":[{"Node":{"node_id":10742991645899166287,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5019608,"green":0.72156864,"blue":0.62352943,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5019608,"green":0.72156864,"blue":0.62352943,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7639490284239357347,{"inputs":[{"Node":{"node_id":14805036488257720752,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[7259756719760382667,{"inputs":[{"Node":{"node_id":15157035456876170143,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}],[1.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":0.0}]],"gradient_type":"Linear","start":[0.4803107402195895,-0.1138575403671318],"end":[0.41147745365941946,0.9225580029175888],"transform":[842.6155846750064,0.0,0.0,225.77816544354573,370.28268480418546,448.7065465860055]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}],[1.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":0.0}]],"gradient_type":"Linear","start":[0.4803107402195895,-0.1138575403671318],"end":[0.41147745365941946,0.9225580029175888],"transform":[842.6155846750064,0.0,0.0,225.77816544354573,370.28268480418546,448.7065465860055]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[2036609094647228373,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[0.8725092774628217,0.1666676721950458]],[5,[0.12749341167028605,0.1666646696927025]],[3,[0.5,1.0]],[4,[0.0,0.5]],[2,[1.0,0.5]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[4,4],[3,3],[1,1],[2,2],[5,5]],"end_point":[[1,2],[3,4],[4,5],[5,1],[2,3]],"handle_primary":[[4,[0.0,-0.12799231715991943]],[2,[0.0,0.27589238888950707]],[1,[0.07925873631249913,0.08849560350574948]],[5,null],[3,[-0.275892388889507,0.0]]],"handle_end":[[1,[0.0,-0.12799086965193351]],[5,null],[2,[0.27589238888950707,0.0]],[3,[0.0,0.27589238888950707]],[4,[-0.07926033448372466,0.0884959630818129]]],"stroke":[[5,0],[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14842592386831797498,{"inputs":[{"Node":{"node_id":664587514588499648,"output_index":0,"lambda":false}},{"Node":{"node_id":14330881008352607546,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4243146970185091100,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"delta":[[9,[606.0246913580247,486.803840877915]],[13,[609.7997256515774,497.6899862825788]],[7,[596.3676268861453,491.9835390946502]],[4,[591.18792866941,498.3045267489712]],[3,[589.8710562414265,497.0754458161865]],[10,[607.8683127572016,488.3840877914952]],[2,[533.9259259259258,420.7407407407407]],[1,[583.5500685871057,499.53360768175577]],[16,[616.0751917898693,491.077444156548]],[5,[574.0246913580246,440.2962962962963]],[8,[580.9382716049382,401.9753086419752]],[18,[618.4910836762688,499.9725651577503]],[14,[650.6666666666667,398.2222222222223]],[15,[615.4183813443072,491.19341563786]],[17,[668.3566529492455,433.2510288065844]],[6,[594.4362139917694,493.6515775034293]],[12,[609.0096021947874,496.4609053497942]],[11,[615.6378600823045,431.5390946502058]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"start_point":[[16,16],[8,8],[10,10],[14,14],[9,9],[7,7],[13,13],[15,15],[4,4],[12,12],[3,3],[2,2],[17,17],[5,5],[18,18],[1,1],[6,6],[11,11]],"end_point":[[16,17],[13,14],[4,5],[9,10],[15,16],[1,2],[12,13],[5,6],[11,12],[2,3],[8,9],[3,4],[6,7],[14,15],[7,8],[17,18],[10,11],[18,1]],"handle_primary":[[17,[-38.27709190672158,34.5020576131688]],[1,[0.0,0.0]],[6,[0.0,0.0]],[9,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[18,[-7.386678859929702,8.10852004267656]],[15,[0.0,0.0]],[13,[0.0,0.0]],[16,[0.0,0.0]],[11,[-3.906721536351256,29.62962962962956]],[8,[22.10150891632361,44.44444444444463]],[2,[44.005486968450214,35.16049382716062]],[10,[0.0,0.0]],[7,[0.0,0.0]],[14,[-18.3045267489714,37.31138545953348]],[5,[18.392318244170156,23.769547325102906]],[12,[0.0,0.0]]],"handle_end":[[12,[0.0,0.0]],[5,null],[4,[21.113854595336193,37.201646090535064]],[8,null],[17,null],[18,[3.2434080170708057,6.03566529492457]],[15,[0.0,0.0]],[3,[0.0,0.0]],[14,null],[9,[0.0,0.0]],[10,[-6.189300411522709,26.732510288065782]],[13,[-23.747599451303245,35.4677640603565]],[16,[-35.29218106995893,26.337448559670804]],[2,null],[11,[0.0,0.0]],[6,[0.0,0.0]],[1,[48.21947873799752,48.855967078189394]],[7,[25.964334705075316,61.47599451303165]]],"stroke":[[14,0],[1,0],[7,0],[10,0],[3,0],[6,0],[16,0],[18,0],[8,0],[12,0],[15,0],[2,0],[5,0],[17,0],[13,0],[11,0],[4,0],[9,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":18}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17965270694495451178,{"inputs":[{"Node":{"node_id":9409313765472227540,"output_index":0,"lambda":false}},{"Node":{"node_id":4887570735033124574,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15167880819976070791,{"inputs":[{"Node":{"node_id":4898866541060902381,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":33.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[16069762220015310717,{"inputs":[{"Node":{"node_id":16398743435291795904,"output_index":0,"lambda":false}},{"Node":{"node_id":14791465604033956302,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16510804133693080967,{"inputs":[{"Node":{"node_id":3966971396176820223,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969996,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2785423879796980286,{"inputs":[{"Node":{"node_id":11634802583144606404,"output_index":0,"lambda":false}},{"Node":{"node_id":16591255610014418910,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2921219300441868542,{"inputs":[{"Node":{"node_id":11506204916439878896,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.49019608,"green":0.69411767,"blue":0.627451,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.49019608,"green":0.69411767,"blue":0.627451,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7067047867039575315,{"inputs":[{"Node":{"node_id":15261165353096835967,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969996,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5261200785298607501,{"inputs":[{"Node":{"node_id":2465823993152870948,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BlendMode":"Lighten"},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::BlendModeNode"}},"visible":true,"skip_deduplication":false}],[12554549497938935061,{"inputs":[{"Node":{"node_id":14055195208113082127,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[833.274364370262,-33.56362500933909]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.141592653589793},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.8,-0.6]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.2246467991473532e-16,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8256712316698018135,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1343.538290724796,579.9999999999998]],[4,[1343.5382907247958,520.0]],[2,[1268.8972745734184,559.9999999999999]],[1,[1268.897274573418,500.00000000000006]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3]],"end_point":[[2,3],[1,2],[4,1],[3,4]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[1,0],[4,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18046677540207938977,{"inputs":[{"Node":{"node_id":2189393878093040029,"output_index":0,"lambda":false}},{"Node":{"node_id":2292399603649738346,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4134257789770357215,{"inputs":[{"Node":{"node_id":9640215309187299519,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-298.5640646053945,-71.86019325256757]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999948,0.9999999999999948]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15914878146223026034,{"inputs":[{"Node":{"node_id":4069478660487729695,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[39.06014871394696,-80.31594690033606]},"exposed":false}},{"Value":{"tagged_value":{"F64":-0.44070994426773896},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.7021527212517815,1.4014617956106905]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.8600612888523491,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2640491057355360805,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[4,[410.5255888325763,460.0]],[5,[410.5255888325765,450.0000000000001]],[7,[671.7691453623979,459.99999999999994]],[9,[821.0511776651531,440.00000000000006]],[2,[653.1088913245535,475.0]],[3,[559.8076211353318,500.00000000000017]],[6,[559.7618537735666,489.9877366723752]],[8,[709.0896534380868,470.00000000000006]],[10,[933.0127018922194,470.0]],[1,[783.7306695894642,510.0]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[1,1],[10,10],[8,8],[7,7],[9,9],[3,3],[5,5],[4,4],[6,6],[2,2]],"end_point":[[8,9],[6,7],[4,5],[7,8],[3,4],[9,10],[2,3],[1,2],[10,1],[5,6]],"handle_primary":[[2,null],[3,[-149.2820323027555,-40.00000000000017]],[5,null],[4,[0.0,0.0]],[1,null],[9,[0.0,0.0]],[6,null],[8,[0.0,0.0]],[7,[37.32050807568885,10.000000000000114]],[10,[0.0,0.0]]],"handle_end":[[9,[0.0,0.0]],[1,null],[2,null],[3,null],[6,null],[5,null],[8,[0.0,0.0]],[10,null],[4,null],[7,null]],"stroke":[[4,0],[8,0],[7,0],[1,0],[6,0],[2,0],[3,0],[9,0],[10,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3680957604830907751,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"remove":[],"delta":[[9,[1321.5253772290812,429.56378600823047]],[13,[1322.315500685871,442.4691358024692]],[14,[1313.0096021947877,442.29355281207137]],[4,[1311.6049382716046,423.2427983539094]],[10,[1354.710562414266,375.5720164609054]],[6,[1317.750342935528,414.37585733882025]],[3,[1278.0100594421583,366.7343392775492]],[1,[1304.1133973479657,421.12604785855825]],[2,[1304.6986739826243,420.69684499314127]],[11,[1325.124828532236,431.14403292181055]],[15,[1264.5486968449932,395.9981710105167]],[12,[1360.3292181069958,385.0534979423868]],[8,[1319.9451303155006,428.8614540466391]],[7,[1336.2743484224964,374.25514403292175]],[5,[1301.1577503429353,350.639231824417]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"remove":[],"start_point":[[10,10],[1,1],[4,4],[12,12],[14,14],[6,6],[9,9],[15,15],[2,2],[5,5],[7,7],[11,11],[13,13],[3,3],[8,8]],"end_point":[[3,4],[7,8],[9,10],[13,14],[5,6],[11,12],[15,1],[14,15],[6,7],[4,5],[1,2],[12,13],[10,11],[2,3],[8,9]],"handle_primary":[[5,[15.978052126200282,30.375857338820197]],[4,[0.0,0.0]],[14,[-1.4013919408635047,-1.0754868383370422]],[11,[6.190926179952385,-9.64405832444237]],[2,[0.0,0.0]],[8,[0.0,0.0]],[9,[0.0,0.0]],[7,[-16.182898948331285,35.4677640603565]],[15,[30.375857338820197,15.10013717421117]],[3,[22.884316415180592,29.146776406035656]],[13,[-1.0925163846973192,0.8063811410860922]],[6,[0.0,0.0]],[10,[-22.650205761316556,26.60082304526742]],[1,[0.0,0.0]],[12,[-18.78737997256485,20.455418381344316]]],"handle_end":[[15,[0.0,0.0]],[6,[-20.484682213077576,38.013717421124625]],[2,[26.044810242340873,43.48605395518973]],[10,null],[14,[36.34567901234527,22.650205761316897]],[5,[0.0,0.0]],[1,[0.0,0.0]],[9,[-20.894375857338673,18.52400548696835]],[13,[0.8337588052027058,0.639861408644208]],[12,[1.2603823499284772,-0.9302822106615168]],[7,[0.0,0.0]],[11,[-18.34842249657072,19.13854595336079]],[4,[16.153635116598025,62.683127572016474]],[8,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[14,0],[2,0],[15,0],[8,0],[13,0],[7,0],[3,0],[4,0],[1,0],[11,0],[6,0],[12,0],[5,0],[9,0],[10,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":15}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7910743362843097140,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[1,[-9.33012701892199,592.5]],[9,[326.55444566227675,562.5]],[2,[121.29165124598823,557.5000000000001]],[5,[177.2724133595217,587.5]],[11,[18.66025403784454,515.0]],[8,[261.24355652982126,545.0]],[3,[83.97114317030001,547.5]],[6,[130.62177826491063,599.9999999999999]],[10,[261.2435565298214,580.0]],[7,[93.30127018922188,590.0]],[4,[55.98076211353338,555.0000000000001]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[7,7],[1,1],[9,9],[2,2],[8,8],[10,10],[3,3],[5,5],[6,6],[4,4]],"end_point":[[6,7],[10,11],[2,3],[9,10],[1,2],[8,9],[7,8],[3,4],[4,5],[5,6]],"handle_primary":[[7,[0.0,0.0]],[9,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]],[6,[0.0,0.0]],[1,[0.0,0.0]],[10,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[8,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[5,[0.0,0.0]],[6,[0.0,0.0]],[3,[0.0,0.0]],[9,[0.0,0.0]],[2,[0.0,0.0]],[7,[0.0,0.0]],[4,[0.0,0.0]],[10,[0.0,0.0]],[8,[0.0,0.0]]],"stroke":[[7,0],[10,0],[9,0],[2,0],[1,0],[3,0],[4,0],[6,0],[5,0],[8,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17887542695709892422,{"inputs":[{"Node":{"node_id":14842592386831797498,"output_index":0,"lambda":false}},{"Node":{"node_id":7259756719760382667,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10564228200140683112,{"inputs":[{"Node":{"node_id":13001069903842109798,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-140.23409378379097,-66.17529531267506]},"exposed":false}},{"Value":{"tagged_value":{"F64":-1.1549250908208777},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[61.12160376625298,24.813625019997943]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.6236723178991973,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11634445349252640936,{"inputs":[{"Node":{"node_id":2032185045476767535,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[708.5896534382083,269.5]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,0.267949192432]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-3.2814312084546346e-17,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3966971396176820223,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[783.7306695894646,560.0]],[5,[597.1281292110198,599.9999999999999]],[1,[1156.9357503463468,509.9999999999987]],[6,[1044.9742261192855,480.0]],[4,[615.7883832488646,605.0000000000001]],[2,[877.0319397786863,584.9999999999998]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[5,5],[4,4],[3,3],[6,6],[1,1]],"end_point":[[5,6],[4,5],[2,3],[1,2],[3,4],[6,1]],"handle_primary":[[6,[0.0,0.0]],[4,null],[3,null],[5,[447.84609690826574,-119.99999999999989]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[2,null],[6,[0.0,0.0]],[4,null],[5,null],[1,[0.0,0.0]],[3,null]],"stroke":[[5,0],[4,0],[2,0],[1,0],[6,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2900504420179573771,{"inputs":[{"Node":{"node_id":3185536512640676801,"output_index":0,"lambda":false}},{"Node":{"node_id":10852750245702849075,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2843751023378786714,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"delta":[[15,[556.7578325004595,420.13017723423656]],[7,[515.1604938271604,486.716049382716]],[16,[530.3703703703702,486.71604938271594]],[18,[568.2339832275112,446.0155371619765]],[11,[531.5890484844431,432.90541944395505]],[17,[565.2914244954804,444.3855996237166]],[13,[526.0246913580248,490.07407407407413]],[12,[533.8924329970387,433.46495092641567]],[4,[511.55555555555554,490.2222222222222]],[8,[502.0960349862431,417.9179038759178]],[9,[505.311372421164,416.4524664944526]],[3,[480.5925925925926,440.2962962962962]],[5,[497.38271604938257,447.60493827160496]],[1,[510.41975308641986,500.1481481481481]],[6,[499.77650172698026,445.9388618767647]],[14,[552.9705625612692,418.19081042008474]],[10,[524.0493827160495,487.1111111111112]],[19,[530.7654320987656,499.55555555555566]],[2,[476.9512618480758,444.1904085078117]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"start_point":[[1,1],[19,19],[17,17],[8,8],[14,14],[11,11],[9,9],[16,16],[3,3],[5,5],[6,6],[18,18],[4,4],[2,2],[13,13],[10,10],[7,7],[12,12],[15,15]],"end_point":[[4,5],[1,2],[17,18],[14,15],[7,8],[3,4],[12,13],[5,6],[10,11],[6,7],[16,17],[9,10],[8,9],[2,3],[19,1],[15,16],[13,14],[18,19],[11,12]],"handle_primary":[[14,[15.260998855532309,-21.888591759537466]],[9,[11.197015798182122,18.39034937970939]],[18,[-19.30865594294653,18.299752742610902]],[2,[-17.16805625160663,-20.28383937076643]],[3,[21.32824309569804,17.329197515254634]],[16,[0.0,0.0]],[12,[-5.082537215847424,18.7049831985629]],[17,[27.324497401397252,-21.15032331824051]],[5,[-10.016557406305251,-15.024836109457851]],[8,[-8.936088730151937,-20.93774746663439]],[6,[3.9272019767233246,4.629039357803151]],[10,[0.0,0.0]],[13,[0.0,0.0]],[15,[-11.459519915000214,23.15277176924241]],[19,[-1.5204271954055455,4.429070525747022]],[7,[0.0,0.0]],[1,[-9.283950617284065,-12.246913580246884]],[4,[0.0,0.0]],[11,[7.784237194372736,-22.222909722529664]]],"handle_end":[[8,[-11.197015798182008,-18.39034937970939]],[15,[4.54320987654296,-11.851851851852018]],[14,[11.286699158099054,-22.803605349427187]],[6,[0.7901234567898427,-16.197530864197745]],[1,[28.522359190346833,33.698803394714844]],[17,[19.435079545528083,-18.419570542198244]],[18,[4.54320987654296,-13.23456790123464]],[9,[0.7901234567898427,-21.135802469135857]],[12,[3.7530864197531177,-16.59259259259261]],[16,[-28.402535606591755,21.984770746653737]],[3,[-3.111111111111086,-12.0]],[11,[5.082537215847424,-18.704983198562843]],[13,[-15.260998855532534,21.888591759537743]],[2,[-22.123456790123555,-17.97530864197529]],[4,[13.03703703703701,19.555555555555543]],[19,[2.7053847913285836,3.5688054694122116]],[5,[-12.032856371187677,-14.183269935989983]],[10,[-7.784237194372736,22.22290972252955]],[7,[18.59187624528363,43.5617887769169]]],"stroke":[[10,0],[14,0],[19,0],[5,0],[2,0],[7,0],[11,0],[8,0],[17,0],[18,0],[1,0],[9,0],[3,0],[16,0],[12,0],[13,0],[6,0],[15,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":19}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7637119583909417127,{"inputs":[{"Node":{"node_id":4740496570730418920,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[8166796652234334001,{"inputs":[{"Node":{"node_id":8034980397175569257,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.47937012,"green":0.73046875,"blue":0.56778514,"alpha":1.0}],[1.0,{"red":0.36862746,"green":0.57254905,"blue":0.45490196,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4830458531002497,0.18799510852727777],"end":[0.5102584056336581,0.7583861422837161],"transform":[330.72972441489793,0.0,0.0,262.97748583483383,694.2423781243951,620.5615190102498]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.47937012,"green":0.73046875,"blue":0.56778514,"alpha":1.0}],[1.0,{"red":0.36862746,"green":0.57254905,"blue":0.45490196,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4830458531002497,0.18799510852727777],"end":[0.5102584056336581,0.7583861422837161],"transform":[330.72972441489793,0.0,0.0,262.97748583483383,694.2423781243951,620.5615190102498]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16591255610014418910,{"inputs":[{"Node":{"node_id":2225749123534781340,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[5891705401441266824,{"inputs":[{"Node":{"node_id":5670058004691708784,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17332567356044944766,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1.0,1.0]],[4,[-0.10921713655450987,1.0126086768123077]],[1,[0.0,0.0]],[2,[1.0,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[2,2],[3,3]],"end_point":[[1,2],[3,4],[4,1],[2,3]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[429913874753911073,{"inputs":[{"Node":{"node_id":11236872744106223256,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.9098039,"blue":0.7764706,"alpha":0.75}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[13701442050580061197,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[4,[1380.8587988003635,429.9999999999991]],[2,[1343.5382907247958,520.0000000000001]],[1,[1268.897274573418,500.00000000000006]],[3,[1530.14083110324,469.9999999999986]],[5,[1380.8587988003635,469.9997827307588]],[6,[1380.8587988003635,469.9999999999993]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[2,2],[1,1],[6,6],[5,5],[4,4]],"end_point":[[4,5],[3,4],[5,6],[1,2],[6,1],[2,3]],"handle_primary":[[3,[0.0,0.0]],[6,[0.0,0.0]],[4,[0.0,0.0]],[5,[0.0,0.0002172692405224552]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,null],[3,[0.0,0.0]],[2,[0.0,0.0]],[6,[4.547473508864641e-13,5.684341886080804e-14]],[5,null]],"stroke":[[3,0],[2,0],[5,0],[1,0],[6,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16059265180575745658,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[1194.256258422041,640.0]],[5,[839.7114317029976,645.0]],[3,[1100.9549882328188,585.0]],[4,[1082.2947341949744,580.0]],[2,[1044.9742261192855,599.9999999999999]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[1,1],[2,2]],"end_point":[[4,5],[3,4],[1,2],[2,3]],"handle_primary":[[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5882319123081134737,{"inputs":[{"Node":{"node_id":14102693648424950146,"output_index":0,"lambda":false}},{"Node":{"node_id":13207576193421440093,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7030585744407664630,{"inputs":[{"Node":{"node_id":13701442050580061197,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-298.5640646053887,-113.99999999999903]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999996,0.9999999999999996]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4740496570730418920,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[261.24355652982155,620.0]],[2,[242.58330249197704,615.0]],[1,[279.9038105676662,605.0000000000001]],[4,[298.56406460551034,610.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[2,2],[4,4]],"end_point":[[3,4],[4,1],[1,2],[2,3]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10651614176902312108,{"inputs":[{"Node":{"node_id":4134257789770357215,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.41568628,"green":0.6313726,"blue":0.6039216,"alpha":1.0}],[0.869076264787314,{"red":0.46666667,"green":0.69803923,"blue":0.6313726,"alpha":1.0}],[0.9670173672287944,{"red":0.39215687,"green":0.6117647,"blue":0.6,"alpha":1.0}],[1.0,{"red":0.37254903,"green":0.5647059,"blue":0.5529412,"alpha":1.0}]],"gradient_type":"Radial","start":[0.004591093221745557,0.9549938856995572],"end":[1.0010898078090742,0.23229219555707512],"transform":[682.3892394899896,0.0,0.0,255.98390390304277,553.867087387986,415.53693693509086]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.41568628,"green":0.6313726,"blue":0.6039216,"alpha":1.0}],[0.869076264787314,{"red":0.46666667,"green":0.69803923,"blue":0.6313726,"alpha":1.0}],[0.9670173672287944,{"red":0.39215687,"green":0.6117647,"blue":0.6,"alpha":1.0}],[1.0,{"red":0.37254903,"green":0.5647059,"blue":0.5529412,"alpha":1.0}]],"gradient_type":"Radial","start":[0.004591093221745557,0.9549938856995572],"end":[1.0010898078090742,0.23229219555707512],"transform":[682.3892394899896,0.0,0.0,255.98390390304277,553.867087387986,415.53693693509086]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[18431382379595272672,{"inputs":[{"Node":{"node_id":10989897386232385465,"output_index":0,"lambda":false}},{"Node":{"node_id":4191887059541031673,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13609749019463823009,{"inputs":[{"Node":{"node_id":2062662104423219162,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.34901962,"green":0.5647059,"blue":0.5686275,"alpha":1.0}],[1.0,{"red":0.34901962,"green":0.5647059,"blue":0.5686275,"alpha":0.0}]],"gradient_type":"Linear","start":[0.6190188337031772,0.2673182752249348],"end":[0.4910887633661796,0.9800526827918484],"transform":[244.87384707744465,0.0,0.0,164.03437392974598,690.4184767777101,515.1506140834983]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.34901962,"green":0.5647059,"blue":0.5686275,"alpha":1.0}],[1.0,{"red":0.34901962,"green":0.5647059,"blue":0.5686275,"alpha":0.0}]],"gradient_type":"Linear","start":[0.6190188337031772,0.2673182752249348],"end":[0.4910887633661796,0.9800526827918484],"transform":[244.87384707744465,0.0,0.0,164.03437392974598,690.4184767777101,515.1506140834983]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4847316728405535983,{"inputs":[{"Node":{"node_id":11579925754926059876,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5686275,"green":0.7411765,"blue":0.654902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5686275,"green":0.7411765,"blue":0.654902,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[10431241258085047322,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[597.1281292110202,599.9999999999999]],[6,[298.56406460551045,540.0000000000001]],[4,[709.0896534380863,630.0]],[2,[597.1281292110192,559.9999999999998]],[1,[298.56406460551034,479.99999999999983]],[5,[709.0896534380863,649.9999999999999]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[6,6],[2,2],[3,3],[4,4],[1,1],[5,5]],"end_point":[[6,1],[4,5],[5,6],[1,2],[2,3],[3,4]],"handle_primary":[[1,[0.0,0.0]],[6,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[1,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[2,0],[5,0],[4,0],[3,0],[1,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5346759588580719138,{"inputs":[{"Node":{"node_id":57904581517036791,"output_index":0,"lambda":false}},{"Node":{"node_id":16244305414728361140,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8508454285877707748,{"inputs":[{"Node":{"node_id":9908869573449854874,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5137255,"green":0.7294118,"blue":0.68235296,"alpha":1.0}],[1.0,{"red":0.49019608,"green":0.7882353,"blue":0.75686276,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0033697141397510677,0.6230645063687077],"end":[0.058070316242295306,1.09924019568288],"transform":[593.4286164571708,0.0,0.0,254.41394967234703,831.0003152001923,405.4836980340858]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5137255,"green":0.7294118,"blue":0.68235296,"alpha":1.0}],[1.0,{"red":0.49019608,"green":0.7882353,"blue":0.75686276,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0033697141397510677,0.6230645063687077],"end":[0.058070316242295306,1.09924019568288],"transform":[593.4286164571708,0.0,0.0,254.41394967234703,831.0003152001923,405.4836980340858]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11236872744106223256,{"inputs":[{"Node":{"node_id":9724746185253267560,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,16.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14102693648424950146,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":16847360882244487081,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6142412830271644616,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1175.5960043841962,429.0]],[3,[1203.586385440963,436.5]],[4,[1250.2370205355735,424.00000000000006]],[1,[1278.2274015923404,401.49999999999994]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[1,1],[2,2]],"end_point":[[1,2],[3,4],[2,3]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[1,0],[2,0],[3,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[57904581517036791,{"inputs":[{"Node":{"node_id":9393309733761233513,"output_index":0,"lambda":false}},{"Node":{"node_id":15300421479077882117,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10852750245702849075,{"inputs":[{"Node":{"node_id":17250040304106119844,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.77254903,"alpha":0.75}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[14449710315388146362,{"inputs":[{"Node":{"node_id":7671691070850213967,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":81.1788},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[6006052038693767172,{"inputs":[{"Node":{"node_id":4197544064668946479,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[16923062582661131268,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[597.1281292110202,399.9999999999999]],[4,[671.769145362398,420.0000000000001]],[2,[597.1281292110202,409.99999999999994]],[3,[653.1088913245534,424.99999999999994]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[1,1],[2,2]],"end_point":[[1,2],[4,1],[3,4],[2,3]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[4,0],[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8958782938691501404,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[1156.9357503463525,530.0]],[3,[1231.6308657449686,540.0144958496094]],[2,[1231.576766497729,510.00000000000233]],[4,[1156.9357503463516,540.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3]],"end_point":[[2,3],[1,2],[3,4],[4,1]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[-74.69511539861696,-0.014495849609375]]],"handle_end":[[2,null],[3,null],[1,[0.0,0.0]],[4,[0.0,-2.273736754432321e-13]]],"stroke":[[4,0],[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15478704582542175684,{"inputs":[{"Node":{"node_id":8242413775403456296,"output_index":0,"lambda":false}},{"Node":{"node_id":13696921450692276893,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[532055960192543062,{"inputs":[{"Node":{"node_id":326112971739898070,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[13942787566051910019,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.0,0.0]],[4,[0.0,1.0]],[3,[1.000788022064618,1.0000000000000009]],[2,[1.000788022064618,-6.266203653947348e-16]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[4,4],[1,1]],"end_point":[[2,3],[1,2],[3,4],[4,1]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13852123721901366011,{"inputs":[{"Node":{"node_id":456239140723765386,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[819.6941583984747,299.6363877833991]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.141592653589793},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[221.20900992053447,59.27277556679853]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-3.2814312084546346e-17,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7171713123860587892,{"inputs":[{"Node":{"node_id":18431382379595272672,"output_index":0,"lambda":false}},{"Node":{"node_id":9798215931018813676,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7884283658260267478,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[1184.9261314031187,552.5]],[3,[1250.2370205355735,545.0000000000001]],[4,[1203.5863854409629,557.4999999999999]],[2,[1231.5767664977295,540.0000000000001]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[1,1],[4,4]],"end_point":[[1,2],[4,1],[2,3],[3,4]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[4,0],[2,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16564941800301062922,{"inputs":[{"Node":{"node_id":18371793711669837037,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.03}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.03}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3616319631707471648,{"inputs":[{"Node":{"node_id":12852312236973354891,"output_index":0,"lambda":false}},{"Node":{"node_id":16727310898641763441,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1104068854328504126,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1530.14083110324,470.00000000000216]],[1,[1343.538290724796,580.0000000000001]],[4,[1343.5382907247958,520.0]],[2,[1530.14083110324,530.000000000003]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[1,1],[3,3]],"end_point":[[2,3],[1,2],[3,4],[4,1]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[4,0],[2,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13942146309185231085,{"inputs":[{"Node":{"node_id":15166516760575860563,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.36862746,"green":0.57254905,"blue":0.45490196,"alpha":1.0}],[0.2134053325596848,{"red":0.45490196,"green":0.70980394,"blue":0.58431375,"alpha":1.0}],[1.0,{"red":1.0,"green":0.84705883,"blue":0.4627451,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4417705336480124,0.7894513882255817],"end":[0.4000315611112892,0.37243515464306],"transform":[1317.713318209003,0.0,0.0,1100.6765757217709,406.8730842197156,-30.930650690931543]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.36862746,"green":0.57254905,"blue":0.45490196,"alpha":1.0}],[0.2134053325596848,{"red":0.45490196,"green":0.70980394,"blue":0.58431375,"alpha":1.0}],[1.0,{"red":1.0,"green":0.84705883,"blue":0.4627451,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4417705336480124,0.7894513882255817],"end":[0.4000315611112892,0.37243515464306],"transform":[1317.713318209003,0.0,0.0,1100.6765757217709,406.8730842197156,-30.930650690931543]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14449527838292182035,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"delta":[[11,[713.6278006401462,612.5505258344765]],[6,[695.3964334705074,609.7777777777776]],[9,[709.3552812071331,611.4970278920897]],[16,[726.2990397805214,601.9862825788753]],[13,[734.8148148148149,620.9492455418381]],[5,[662.6063100137173,612.5432098765428]],[8,[701.8247218411828,611.4580094497792]],[2,[667.3909465020577,593.3827160493828]],[10,[709.413808870599,616.4718792866942]],[15,[763.4567901234569,605.6296296296294]],[17,[749.8271604938273,587.4567901234568]],[1,[699.8518518518516,598.1234567901233]],[18,[725.5089163237311,594.6117969821673]],[4,[682.3593964334707,606.4197530864195]],[12,[721.9094650205761,611.3799725651577]],[7,[692.1871665904588,615.6720012193263]],[14,[728.493827160494,609.9753086419753]],[3,[699.7421124828531,603.0617283950616]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"start_point":[[6,6],[9,9],[1,1],[13,13],[2,2],[15,15],[12,12],[17,17],[18,18],[16,16],[8,8],[10,10],[3,3],[11,11],[5,5],[14,14],[4,4],[7,7]],"end_point":[[10,11],[5,6],[4,5],[13,14],[1,2],[18,1],[17,18],[14,15],[2,3],[11,12],[7,8],[12,13],[15,16],[16,17],[6,7],[9,10],[8,9],[3,4]],"handle_primary":[[10,[2.71082158531226,-3.275875783141601]],[5,[0.0,0.0]],[17,[-7.648317030623161,4.388047332817109]],[15,[-15.992684042066571,-5.647919524462736]],[3,[0.0,0.0]],[2,[5.399176954732297,6.584362139917744]],[16,[0.0,0.0]],[12,[0.6886396813392821,0.35058484628291353]],[6,[0.0,0.0]],[7,[0.0,0.0]],[14,[-0.1771601410563335,-2.331086581557088]],[8,[0.0,0.0]],[9,[1.0398530837227329,0.17152215813985094]],[13,[-3.101966163694442,-4.096936442615402]],[18,[-0.0877914951989851,0.0]],[11,[0.9510922553114368,-0.40840938602514143]],[1,[-13.651577503429507,-4.016460905349504]],[4,[-6.038618148571572,2.2123832635880945]]],"handle_end":[[7,[-5.1358024691359105,5.530864197530718]],[18,[0.0,0.0]],[10,null],[11,[-1.2025737194898056,-0.6122274594622468]],[2,[0.0,0.0]],[17,null],[12,[-6.90626428898031,-2.3996342021031296]],[13,[-0.5267489711934559,1.053497942386798]],[16,[-5.977212841894016,7.381559383908893]],[15,[2.8483462886752022,1.1315348270080676]],[4,[0.0,0.0]],[5,[-8.69135802469134,3.3580246913579685]],[8,[-3.7847889041303233,-0.6242950769699291]],[6,[4.13595488492615,-4.1749733272365575]],[1,[8.559670781892919,2.502057613168745]],[3,[6.038618148571345,-2.2123832635879808]],[9,null],[14,[-22.51851851851859,-0.614540466392441]]],"stroke":[[6,0],[14,0],[2,0],[13,0],[16,0],[7,0],[15,0],[12,0],[18,0],[5,0],[1,0],[3,0],[11,0],[8,0],[17,0],[9,0],[4,0],[10,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":18}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13861850149743924125,{"inputs":[{"Node":{"node_id":13442128106088307772,"output_index":0,"lambda":false}},{"Node":{"node_id":5891705401441266824,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4398598693761352299,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[821.0511776651531,500.0]],[3,[933.0127018922194,470.0]],[1,[709.0896534380867,469.99999999999994]],[4,[821.0511776651532,440.0000000000001]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[3,3],[1,1]],"end_point":[[4,1],[3,4],[1,2],[2,3]],"handle_primary":[[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,5.684341886080804e-14]]],"stroke":[[3,0],[1,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16732345645494316637,{"inputs":[{"Node":{"node_id":11450962621506425680,"output_index":0,"lambda":false}},{"Node":{"node_id":7637119583909417127,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[938033825024582130,{"inputs":[{"Node":{"node_id":10477328336261010694,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5019608,"green":0.72156864,"blue":0.70980394,"alpha":1.0}],[1.0,{"red":0.5019608,"green":0.72156864,"blue":0.70980394,"alpha":0.0}]],"gradient_type":"Linear","start":[0.44995556068938913,0.40889389103747775],"end":[0.42763248011625454,0.6979899795516591],"transform":[861.8034829475831,0.0,0.0,248.35202392783896,117.22673062625182,378.4503745891131]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5019608,"green":0.72156864,"blue":0.70980394,"alpha":1.0}],[1.0,{"red":0.5019608,"green":0.72156864,"blue":0.70980394,"alpha":0.0}]],"gradient_type":"Linear","start":[0.44995556068938913,0.40889389103747775],"end":[0.42763248011625454,0.6979899795516591],"transform":[861.8034829475831,0.0,0.0,248.35202392783896,117.22673062625182,378.4503745891131]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12019361655085452072,{"inputs":[{"Node":{"node_id":2036609094647228373,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[1080.8351529382842,378.98352292316827]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.141592653589793},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[221.0038859407525,220.57244110912933]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-1.2222560378726955e-16,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[585709295659496998,{"inputs":[{"Node":{"node_id":11990662272042254522,"output_index":0,"lambda":false}},{"Node":{"node_id":12331680982485935376,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15347111149235590492,{"inputs":[{"Node":{"node_id":2209276411833629008,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[1080.8351529382842,378.9835229231682]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.141592653589793},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[221.0038859407525,220.57244110912933]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-1.2222560378726955e-16,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14752203606937854133,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[597.1281292110197,559.9999999999997]],[3,[1044.9742261192855,439.99999999999994]],[1,[597.1281292110193,599.9999999999997]],[4,[1044.9742261192855,480.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[4,4],[1,1]],"end_point":[[3,4],[1,2],[4,1],[2,3]],"handle_primary":[[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[3,0],[4,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10849502918952703647,{"inputs":[{"Node":{"node_id":9663740787529879916,"output_index":0,"lambda":false}},{"Node":{"node_id":17433098630591807963,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11506204916439878896,{"inputs":[{"Node":{"node_id":2640491057355360805,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7005645574203740491,{"inputs":[{"Node":{"node_id":17873337220577786871,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969996,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2452294403891427489,{"inputs":[{"Node":{"node_id":9278774434958175105,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.3372549,"green":0.5647059,"blue":0.5529412,"alpha":1.0}]],"gradient_type":"Linear","start":[0.027025122260555538,0.6600000000000135],"end":[0.9916422150126412,0.04000000000001247],"transform":[111.96152422706125,0.0,0.0,99.99999999999976,862.9742261192855,483.9999999999988]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.3372549,"green":0.5647059,"blue":0.5529412,"alpha":1.0}]],"gradient_type":"Linear","start":[0.027025122260555538,0.6600000000000135],"end":[0.9916422150126412,0.04000000000001247],"transform":[111.96152422706125,0.0,0.0,99.99999999999976,862.9742261192855,483.9999999999988]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17638504852426495381,{"inputs":[{"Node":{"node_id":17881728913029763313,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.7363207208514658,0.8045676758185962],"end":[0.02104094774655124,0.19319223963735063],"transform":[703.2213392761797,0.0,0.0,157.02299163282092,64.20355654603011,465.66437657189834]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.7363207208514658,0.8045676758185962],"end":[0.02104094774655124,0.19319223963735063],"transform":[703.2213392761797,0.0,0.0,157.02299163282092,64.20355654603011,465.66437657189834]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13696921450692276893,{"inputs":[{"Node":{"node_id":729026403095264425,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.9059757781988896,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.8930663763318565,-1.4466906873466163],"end":[1.0003976000579349,0.2239198862330611],"transform":[1332.3243231154509,0.0,0.0,297.49602202927537,-250.85405534350912,609.3847245924164]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.9059757781988896,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.8930663763318565,-1.4466906873466163],"end":[1.0003976000579349,0.2239198862330611],"transform":[1332.3243231154509,0.0,0.0,297.49602202927537,-250.85405534350912,609.3847245924164]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[764189229787475993,{"inputs":[{"Node":{"node_id":194878846429432339,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[664587514588499648,{"inputs":[{"Node":{"node_id":5365849201631468915,"output_index":0,"lambda":false}},{"Node":{"node_id":16564941800301062922,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4924169570021915606,{"inputs":[{"Node":{"node_id":972153153989181918,"output_index":0,"lambda":false}},{"Node":{"node_id":8015732980153557800,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13853529851208960143,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[29.146213900404632,142.10291541428978]],[1,[-39.199465111941095,125.88462054688308]],[2,[28.09271595801783,129.8163283935271]],[4,[-40.648024782723304,138.90840278889075]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3]],"end_point":[[4,1],[3,4],[1,2],[2,3]],"handle_primary":[[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[3,[27.65672806576993,9.286366023261053]],[1,[-37.794238683127446,8.35487917411865]],[2,[0.0,0.0]]],"stroke":[[2,0],[1,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16416441286881083283,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1492.8203230275508,509.99999999999994]],[3,[1492.8203230275506,480.00000000000006]],[1,[1306.217782649107,559.9999999999999]],[4,[1306.2177826491068,529.9999999999972]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[1,2],[3,4],[2,3],[4,1]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7948029953091985757,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[0.5,1.0]],[2,[1.0,0.5]],[4,[0.0,0.5]],[1,[0.5,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[3,3],[1,1]],"end_point":[[2,3],[4,1],[3,4],[1,2]],"handle_primary":[[3,[-0.275892388889507,0.0]],[2,[0.0,0.27589238888950707]],[4,[0.0,-0.275892388889507]],[1,[0.27589238888950707,0.0]]],"handle_end":[[1,[0.0,-0.275892388889507]],[4,[-0.275892388889507,0.0]],[2,[0.27589238888950707,0.0]],[3,[0.0,0.27589238888950707]]],"stroke":[[2,0],[3,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9663740787529879916,{"inputs":[{"Node":{"node_id":14633096010607565334,"output_index":0,"lambda":false}},{"Node":{"node_id":10651614176902312108,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9323583246068171750,{"inputs":[{"Node":{"node_id":3680957604830907751,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.54901963,"green":0.7372549,"blue":0.654902,"alpha":1.0}],[1.0,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}]],"gradient_type":"Linear","start":[0.481496333638864,0.31809715494984925],"end":[0.5186182401466546,0.7659061379880119],"transform":[215.50617283950584,0.0,0.0,207.67783479697297,1364.2345679012346,470.9382716049381]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.54901963,"green":0.7372549,"blue":0.654902,"alpha":1.0}],[1.0,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}]],"gradient_type":"Linear","start":[0.481496333638864,0.31809715494984925],"end":[0.5186182401466546,0.7659061379880119],"transform":[215.50617283950584,0.0,0.0,207.67783479697297,1364.2345679012346,470.9382716049381]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15876464101883822838,{"inputs":[{"Node":{"node_id":3227544593834141716,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.33333334,"green":0.5647059,"blue":0.5529412,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.33333334,"green":0.5647059,"blue":0.5529412,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5317925967883407701,{"inputs":[{"Node":{"node_id":13853529851208960143,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,2.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[729026403095264425,{"inputs":[{"Node":{"node_id":9392462024456293097,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969996,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[972153153989181918,{"inputs":[{"Node":{"node_id":15488533792651297821,"output_index":0,"lambda":false}},{"Node":{"node_id":9981992739451603109,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12852312236973354891,{"inputs":[{"Node":{"node_id":8181290118694677328,"output_index":0,"lambda":false}},{"Node":{"node_id":2921219300441868542,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5017082804473894058,{"inputs":[{"Node":{"node_id":8165914767449151618,"output_index":0,"lambda":false}},{"Node":{"node_id":8166796652234334001,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1268775104597510914,{"inputs":[{"Node":{"node_id":13861850149743924125,"output_index":0,"lambda":false}},{"Node":{"node_id":18011777376689315137,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9641315149170593327,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"delta":[[7,[1284.082304526749,376.2304526748971]],[2,[1297.047751590237,432.45710241679353]],[9,[1269.113854595336,397.6954732510288]],[16,[1323.5884773662551,445.96633567616453]],[3,[1311.0123456790122,389.1358024691358]],[6,[1286.7160493827164,380.04205830395256]],[13,[1312.9218106995884,446.85871056241416]],[20,[1326.2661179698216,436.1481481481482]],[17,[1343.538290724795,449.4814814814814]],[5,[1280.0,432.79012345679007]],[1,[1313.111111111111,440.66666666666663]],[12,[1302.7379972565157,443.9615912208504]],[15,[1319.4403292181073,447.7366255144034]],[14,[1325.5637860082304,455.6378600823044]],[11,[1259.4489801206926,442.53166286845914]],[4,[1309.432098765432,385.3827160493827]],[19,[1353.7580246913572,440.1251028806582]],[10,[1267.5056400134067,396.48371220183463]],[8,[1270.5185185185182,430.0]],[18,[1327.484998303753,444.1384489176408]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"start_point":[[2,2],[18,18],[1,1],[20,20],[3,3],[11,11],[13,13],[9,9],[5,5],[14,14],[12,12],[8,8],[6,6],[17,17],[10,10],[15,15],[4,4],[7,7],[16,16],[19,19]],"end_point":[[9,10],[12,13],[4,5],[7,8],[11,12],[5,6],[10,11],[17,18],[16,17],[13,14],[8,9],[3,4],[2,3],[6,7],[20,1],[14,15],[1,2],[18,19],[15,16],[19,20]],"handle_primary":[[1,[-1.6922078070856514,-5.274941522376082]],[18,[26.44161668001243,-3.0566001241026584]],[13,[0.0,0.0]],[14,[0.7997581306144639,-0.5767761645364544]],[20,null],[16,[19.75931834024595,4.512540664093933]],[5,[0.0,-30.09785939152056]],[8,[-2.1728395061727497,-5.1111111111111995]],[10,[-0.14088374697121253,12.961503560065635]],[15,[0.05852766346606586,-1.7558299039780536]],[4,[-16.197530864197688,14.61728395061732]],[12,[9.763281342613707,0.018425375535628064]],[6,null],[11,[14.00629256044499,3.614815506799175]],[9,[0.0,0.0]],[2,[-7.975963753017595,-5.0295761250696955]],[17,[0.17673990847697496,-0.9253757795596016]],[3,null],[19,[-0.162851070793522,-0.9241759662677964]],[7,[-10.798353909464822,37.53086419753089]]],"handle_end":[[20,null],[16,null],[7,null],[15,null],[19,[1.229080932784882,6.672153635116501]],[10,[-4.337869009581482,-9.544008547471435]],[14,[-0.022878726643284608,0.6863617992941045]],[9,null],[5,null],[13,[-0.8413105648451165,0.6067432917530482]],[2,null],[6,null],[18,null],[3,null],[12,[0.0,0.0]],[17,null],[1,[3.0857646420445235,-0.2303077208630384]],[8,[0.0,0.0]],[4,null],[11,[-11.251577773519555,-0.02123410547835647]]],"stroke":[[8,0],[16,0],[19,0],[18,0],[13,0],[2,0],[5,0],[10,0],[7,0],[4,0],[12,0],[20,0],[11,0],[3,0],[15,0],[17,0],[14,0],[1,0],[9,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":20}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3927358878935116440,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[1194.2562584220414,520.0000000000001]],[2,[1082.2947341949798,490.0000000000013]],[3,[1082.2947341949805,450.0000000000013]],[4,[1194.2562584220411,420.00000000000006]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[2,2],[4,4]],"end_point":[[3,4],[2,3],[1,2],[4,1]],"handle_primary":[[2,[6.821210263296962e-13,-40.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[0.0,-1.1368683772161605e-13]],[1,null],[2,null]],"stroke":[[1,0],[3,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14255588039347536657,{"inputs":[{"Node":{"node_id":18185020559178852986,"output_index":0,"lambda":false}},{"Node":{"node_id":5261200785298607501,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9640215309187299519,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[2,[1194.2562584220475,517.8601932525687]],[5,[1268.8972745734306,517.8601932525701]],[1,[1268.8972745734306,457.8601932525698]],[3,[746.4101615137856,637.8601932525706]],[4,[746.4101615137852,657.8601932525711]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[5,5],[1,1],[2,2],[3,3],[4,4]],"end_point":[[3,4],[4,5],[2,3],[1,2],[5,1]],"handle_primary":[[1,[0.0,0.0]],[2,[-447.8460969082618,120.00000000000192]],[5,[0.0,-60.00000000000029]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[4,null],[1,null],[5,null],[3,[0.0,0.0]],[2,null]],"stroke":[[1,0],[3,0],[2,0],[4,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4101813853952238986,{"inputs":[{"Node":{"node_id":14161755104759532162,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[8884703330021429739,{"inputs":[{"Node":{"node_id":16732345645494316637,"output_index":0,"lambda":false}},{"Node":{"node_id":532055960192543062,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2155997486525176376,{"inputs":[{"Node":{"node_id":15595689026000825531,"output_index":0,"lambda":false}},{"Node":{"node_id":7639490284239357347,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13700218159488557234,{"inputs":[{"Node":{"node_id":10181153433637856462,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.4831746395427087,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.49908141270537343,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.5160486374122156,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.65708869278784,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.6729954659505047,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.6899626906573468,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.7291993977919214,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.7440457194104085,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.7588920410288952,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5008896367526079,0.4999999999999998],"end":[1.0,0.5],"transform":[-1889.35072132725,6.199774420689026e-14,-1.0738324292042565e-13,-506.25000000045327,2021.9872361261616,956.3750000002264]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.4831746395427087,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.49908141270537343,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.5160486374122156,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.65708869278784,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.6729954659505047,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.6899626906573468,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.7291993977919214,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.7440457194104085,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.7588920410288952,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5008896367526079,0.4999999999999998],"end":[1.0,0.5],"transform":[-1889.35072132725,6.199774420689026e-14,-1.0738324292042565e-13,-506.25000000045327,2021.9872361261616,956.3750000002264]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[8863202447825570192,{"inputs":[{"Node":{"node_id":5017082804473894058,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-299.38891648776223,-111.69072674057747]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0616145921394244,1.0616145921394244]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7156963182187517674,{"inputs":[{"Node":{"node_id":14752203606937854133,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565296996,-63.99999999999977]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[322234583139821148,{"inputs":[{"Node":{"node_id":6589978257209505606,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-63.99999999999994]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11990662272042254522,{"inputs":[{"Node":{"node_id":1147521068928676110,"output_index":0,"lambda":false}},{"Node":{"node_id":15167880819976070791,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14633096010607565334,{"inputs":[{"Node":{"node_id":18046677540207938977,"output_index":0,"lambda":false}},{"Node":{"node_id":12370676490908282512,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3227544593834141716,{"inputs":[{"Node":{"node_id":8256712316698018135,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-298.5640646053871,-113.9999999999974]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999996,0.9999999999999996]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2183401450260403525,{"inputs":[{"Node":{"node_id":16852951849051795674,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11429712783984224234,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":12302362769310895852,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9392462024456293097,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[783.7306695894646,560.0]],[5,[597.1281292110198,599.9999999999999]],[2,[877.0319397786863,584.9999999999998]],[1,[1156.9357503463468,509.9999999999987]],[6,[1044.9742261192855,480.0]],[4,[615.7883832488646,605.0000000000001]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[4,4],[2,2],[3,3],[6,6],[5,5],[1,1]],"end_point":[[3,4],[4,5],[5,6],[2,3],[6,1],[1,2]],"handle_primary":[[4,null],[6,[0.0,0.0]],[2,[0.0,0.0]],[3,null],[5,[447.84609690826574,-119.99999999999989]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[5,null],[6,[0.0,0.0]],[3,null],[2,null],[4,null]],"stroke":[[5,0],[3,0],[2,0],[4,0],[6,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12331680982485935376,{"inputs":[{"Node":{"node_id":2183401450260403525,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.6313726}],[1.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.0}]],"gradient_type":"Linear","start":[0.7293479177394283,-0.000903965337796908],"end":[0.7877909957441462,0.5587258938108439],"transform":[508.0879347267641,0.0,0.0,198.0243662458641,767.745306197191,484.2026674087032]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.6313726}],[1.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.0}]],"gradient_type":"Linear","start":[0.7293479177394283,-0.000903965337796908],"end":[0.7877909957441462,0.5587258938108439],"transform":[508.0879347267641,0.0,0.0,198.0243662458641,767.745306197191,484.2026674087032]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[5258402282444994019,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7171713123860587892,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[958845362613832240,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15216519480392295991,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[194878846429432339,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4323461535289334196,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7067047867039575315,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1268775104597510914,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13837327017498431546,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7948029953091985757,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4069478660487729695,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7156963182187517674,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12998832508553378533,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9666682009015049330,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13861850149743924125,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2032185045476767535,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-36,216]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9724746185253267560,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,36]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6821938959315178556,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10989897386232385465,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15478704582542175684,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14805036488257720752,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,6]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8863202447825570192,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[764189229787475993,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11429712783984224234,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[326112971739898070,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,21]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8612613134760093452,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18187802220803838247,{"persistent_metadata":{"reference":"Blend Mode","display_name":"Blend Mode","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Blend Mode","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16510804133693080967,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13817976820605296433,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9323583246068171750,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14055195208113082127,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,48]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8034980397175569257,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17332567356044944766,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15261165353096835967,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7339104629465306715,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6142412830271644616,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,39]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7838724497953148309,{"persistent_metadata":{"reference":"Merge","display_name":"Geometric Ripples","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-9,3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12019361655085452072,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3185536512640676801,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9115451226763736660,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5891705401441266824,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14449710315388146362,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15876464101883822838,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[183952488591282082,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2225749123534781340,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,12]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14124486712683868036,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2310170068575553369,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13442128106088307772,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10564228200140683112,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6569279146800941123,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13852123721901366011,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8015732980153557800,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15517065353723874205,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14019233912018234740,{"persistent_metadata":{"reference":"Merge","display_name":"Structure","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":27}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1229809699395562135,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11895211316848895241,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3616319631707471648,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2791109467690716388,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17638504852426495381,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15300421479077882117,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9392462024456293097,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12930243402848966353,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9935922395919478146,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17873337220577786871,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16069762220015310717,{"persistent_metadata":{"reference":"Merge","display_name":"Fountain Water Ripples","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":87}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[57904581517036791,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7259756719760382667,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3564067978712674849,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11579925754926059876,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18046677540207938977,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13868917743026516656,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5346759588580719138,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8958782938691501404,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12370676490908282512,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4134257789770357215,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7637119583909417127,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[456239140723765386,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15157035456876170143,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13696921450692276893,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5434119356821575534,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8242413775403456296,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4398598693761352299,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10779665858841986661,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8181290118694677328,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12172015233077238737,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13701442050580061197,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11860177410232537211,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8884703330021429739,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2088390810384907709,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,72]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14161755104759532162,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9150078008481575131,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2881239077602364410,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11634802583144606404,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3927358878935116440,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14341957170885045113,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10742991645899166287,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18371793711669837037,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17059035448296015006,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5670058004691708784,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5925268772265373737,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9278774434958175105,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12302362769310895852,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6868877732348460627,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16398743435291795904,{"persistent_metadata":{"reference":"Merge","display_name":"Fountain Water","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":36}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1490537476612110327,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4757672276235057645,{"persistent_metadata":{"reference":"Merge","display_name":"Plant (Right)","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":9}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15670426414376277308,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7884283658260267478,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,15]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13920465562072008593,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9981992739451603109,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17881728913029763313,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6556170892691431702,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10431241258085047322,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13942146309185231085,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2465823993152870948,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15134939288287905620,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4924169570021915606,{"persistent_metadata":{"reference":"Merge","display_name":"Sphere","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":9}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[972153153989181918,{"persistent_metadata":{"reference":"Merge","display_name":"Sphere Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14842592386831797498,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4191887059541031673,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13946577152348504742,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17785019773455930267,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5261200785298607501,{"persistent_metadata":{"reference":"Blend Mode","display_name":"Blend Mode","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Blend Mode","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3679103217373457623,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13001069903842109798,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5326013268137833446,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11236872744106223256,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,36]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8028812053913481975,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13743495762122910279,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2292399603649738346,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17250040304106119844,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,39]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10188337730058049439,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12548387328300782726,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10917301734480569398,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[70804263053697201,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7671691070850213967,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9157963288496356916,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14102693648424950146,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6589978257209505606,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7861616450605235840,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5540780316862276409,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14400993470150734626,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12852312236973354891,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1156213189397385283,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,18]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14791465604033956302,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4243146970185091100,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16732345645494316637,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7952384394377946257,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4046495708656778502,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3970872207068447290,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11221222899304956410,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4187349759243468746,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1147521068928676110,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18128923159828618806,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12931264630175648107,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1108089904278882840,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3021739385836969518,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11450962621506425680,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4197544064668946479,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,27]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2077983679740571162,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7799679303995308634,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15775513677915164685,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[322234583139821148,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12554549497938935061,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7030585744407664630,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18085100003956405261,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10477328336261010694,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3227544593834141716,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3806549994589872867,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,84]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9771562518763748677,{"persistent_metadata":{"reference":"Merge","display_name":"Plant (Upper Left)","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":39}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16261620049358949344,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[585709295659496998,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7910743362843097140,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,30]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4837219841531371489,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10651614176902312108,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1104068854328504126,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11479492521093639512,{"persistent_metadata":{"reference":"Blend Mode","display_name":"Blend Mode","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Blend Mode","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16727310898641763441,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11158238411769751544,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12360435709959435360,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12875121980058869686,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4101813853952238986,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11776939455674933130,{"persistent_metadata":{"reference":"Merge","display_name":"Backdrop Gradient","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3680957604830907751,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17433098630591807963,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8073807569018624098,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11990662272042254522,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[514222872092587805,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2900504420179573771,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11595529463602678384,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[532055960192543062,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14202574750104046500,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18431382379595272672,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2036609094647228373,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4741515246389989284,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9210109719406330381,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4884180935153120645,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12331680982485935376,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14483299526002574058,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12683405703338263457,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9138781233934614517,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10852750245702849075,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10849502918952703647,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9695624216919732577,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9684750473849891261,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3122972215852775755,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9226731772122225003,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16416441286881083283,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7340659059180155803,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-44,219]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16229837691656808412,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3455270778005546310,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13287180494862716983,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,9]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4968550668755026811,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3670594928372882885,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15488533792651297821,{"persistent_metadata":{"reference":"Merge","display_name":"Structure Reflection","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11490835759023283071,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7639490284239357347,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15166516760575860563,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[664587514588499648,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9640215309187299519,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11506204916439878896,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9798215931018813676,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14234384001010789008,{"persistent_metadata":{"reference":"Merge","display_name":"Plant (Lower Left)","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":9}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1658032775659237960,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2183401450260403525,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2209276411833629008,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2843751023378786714,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17887542695709892422,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,126]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15167880819976070791,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12537712543904859919,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1831743139584171612,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9908869573449854874,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11634445349252640936,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17533670083736420411,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3014633976566537110,{"persistent_metadata":{"reference":"Merge","display_name":"Boolean Cut","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10507084483235320484,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9409313765472227540,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2189393878093040029,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10810157408196882043,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2058192342619930156,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16564941800301062922,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5882319123081134737,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,189]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16923062582661131268,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11076863066321508991,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8256712316698018135,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3365825508845848745,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9993538712344947860,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8343201730608263656,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9641315149170593327,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15709488322180832347,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":true,"unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"y":"H","unit":" px","x":"W"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-5,0]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2155997486525176376,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,6]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6785205785632793666,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7005645574203740491,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2510483139353274965,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16591255610014418910,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8891726805381758817,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14752203606937854133,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17965270694495451178,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,96]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5365849201631468915,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15347111149235590492,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8165914767449151618,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16852951849051795674,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15898396405528650339,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4898866541060902381,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4887570735033124574,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9663740787529879916,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16244305414728361140,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13853529851208960143,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2785423879796980286,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13700218159488557234,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10189927996178548902,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14255588039347536657,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,255]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16807867745126764195,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14633096010607565334,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13531127678140037818,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1032659476619711014,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2452294403891427489,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9393309733761233513,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8508454285877707748,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2062662104423219162,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[729026403095264425,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13942787566051910019,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14449527838292182035,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5574499968250848265,{"persistent_metadata":{"reference":"Merge","display_name":"Water","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15595689026000825531,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15914878146223026034,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[938033825024582130,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8463468388280418154,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15723520455917422372,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5448146793323825465,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4740496570730418920,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,24]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[429913874753911073,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18185020559178852986,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6777328619777499144,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12469956387875933942,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4105329493214975815,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5017082804473894058,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,60]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13747030364552895864,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10181153433637856462,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3966971396176820223,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11547499603328872398,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2640491057355360805,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6006052038693767172,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13609749019463823009,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16059265180575745658,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,33]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2921219300441868542,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14330881008352607546,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13207576193421440093,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4847316728405535983,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16793555741218543212,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5317925967883407701,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1396768435017101055,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18011777376689315137,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8166796652234334001,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16847360882244487081,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[693.0,-4081.136664739667],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,693.0,-4081.0],"node_graph_top_right":[1468.796875,0.0]},"selection_undo_history":[[],[],[],[],[],[15517065353723874205],[7340659059180155803],[7340659059180155803,13442128106088307772,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[16398743435291795904,4741515246389989284,14255588039347536657,5261200785298607501,2465823993152870948,15898396405528650339,16807867745126764195,18185020559178852986,4847316728405535983,11579925754926059876,15670426414376277308,5574499968250848265,5925268772265373737,4105329493214975815,12931264630175648107,11776939455674933130,9684750473849891261,70804263053697201,13942787566051910019],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[16398743435291795904,4741515246389989284,14255588039347536657,5261200785298607501,2465823993152870948,15898396405528650339,16807867745126764195,18185020559178852986,4847316728405535983,11579925754926059876,15670426414376277308,5574499968250848265,5925268772265373737,4105329493214975815,12931264630175648107,11776939455674933130,9684750473849891261,70804263053697201,13942787566051910019],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412,10507084483235320484,1396768435017101055,15914878146223026034,4069478660487729695,9157963288496356916,1108089904278882840,5317925967883407701,13853529851208960143,10188337730058049439,11076863066321508991,8891726805381758817,17332567356044944766,1268775104597510914,18011777376689315137,10564228200140683112,13001069903842109798,13861850149743924125,5891705401441266824,5670058004691708784],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[13442128106088307772],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412,10507084483235320484,1396768435017101055,15914878146223026034,4069478660487729695,9157963288496356916,1108089904278882840,5317925967883407701,13853529851208960143,10188337730058049439,11076863066321508991,8891726805381758817,17332567356044944766,1268775104597510914,18011777376689315137,10564228200140683112,13001069903842109798],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[13861850149743924125],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412,10507084483235320484,1396768435017101055,15914878146223026034,4069478660487729695,9157963288496356916,1108089904278882840,5317925967883407701,13853529851208960143,10188337730058049439,11076863066321508991,8891726805381758817,17332567356044944766],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[1268775104597510914],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412,10507084483235320484,1396768435017101055,15914878146223026034,4069478660487729695,9157963288496356916,1108089904278882840,5317925967883407701,13853529851208960143],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[10188337730058049439],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412,10507084483235320484,1396768435017101055,15914878146223026034,4069478660487729695],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[9157963288496356916],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[10507084483235320484],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[10989897386232385465],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[18431382379595272672],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7171713123860587892],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[2032185045476767535],[]],"selection_redo_history":[]}}},"collapsed":[7838724497953148310,9771562518763748678,14234384001010789009,4757672276235057646,4924169570021915607,15488533792651297822,16398743435291795905,972153153989181919,14019233912018234741,5574499968250848266,11776939455674933131,2032185045476767536,16069762220015310718],"name":"isometric-fountain.graphite","commit_hash":"8d83fa707928a1c54fe10224695a0c4791ab3501","document_ptz":{"pan":[-639.4105997694348,-319.94980900906876],"tilt":0.0,"zoom":1.0,"flip":false},"document_mode":"DesignMode","view_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Isometric":{"y_axis_spacing":20.0,"angle_a":15.0,"angle_b":15.0}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.60784316,"green":0.60784316,"blue":0.60784316,"alpha":0.25},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file +{"network_interface":{"network":{"exports":[{"Node":{"node_id":15709488322180832347,"output_index":0}}],"nodes":[[10507084483235320484,{"inputs":[{"Node":{"node_id":9157963288496356916,"output_index":0}},{"Node":{"node_id":1396768435017101055,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4741515246389989284,{"inputs":[{"Node":{"node_id":14255588039347536657,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-70.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4105329493214975815,{"inputs":[{"Node":{"node_id":12931264630175648107,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969916,-70.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16229837691656808412,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[130.01864188394373,17.639788893964138]],[4,[119.2038270691288,10.452135486817724]],[1,[74.85684586229115,93.12923138495351]],[2,[76.83345669875837,107.20900827532364]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[2,2],[3,3]],"end_point":[[3,4],[2,3],[4,1],[1,2]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[4,[43.97876382175265,-36.84748630595526]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[-7.85185185185199,56.395434425300664]]],"stroke":[[1,0],[3,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12172015233077238737,{"inputs":[{"Node":{"node_id":13287180494862716983,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15166516760575860563,{"inputs":[{"Node":{"node_id":18085100003956405261,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-36.95875397623445,-115.11453403741598]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.442673035713692,1.442673035713692]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10477328336261010694,{"inputs":[{"Node":{"node_id":10189927996178548902,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.24355652970024,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3185536512640676801,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":4101813853952238986,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5258402282444994019,{"inputs":[{"Node":{"node_id":958845362613832240,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-299.97967195575075,-74.37931084632919]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999984,0.9999999999999984]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3970872207068447290,{"inputs":[{"Node":{"node_id":2077983679740571162,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[1.2314781197853364,-154.7967075368743]},"exposed":false}},{"Value":{"tagged_value":{"F64":-59.89430248166697},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.809730022247584,0.552568608414892]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-21.93845255979099,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9115451226763736660,{"inputs":[{"Node":{"node_id":7067047867039575315,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.4745098,"green":0.68235296,"blue":0.60784316,"alpha":1.0}],[1.0,{"red":0.5568628,"green":0.7529412,"blue":0.6392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.02103945787988068,0.9859744936226362],"end":[0.6072632276568447,0.28531051081023584]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.4745098,"green":0.68235296,"blue":0.60784316,"alpha":1.0}],[1.0,{"red":0.5568628,"green":0.7529412,"blue":0.6392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.02103945787988068,0.9859744936226362],"end":[0.6072632276568447,0.28531051081023584]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11860177410232537211,{"inputs":[{"Node":{"node_id":5882319123081134737,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4197544064668946479,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[1,[391.8653347947321,595.0]],[4,[419.8557158514987,612.5]],[3,[345.21469970012123,592.5]],[5,[615.7883832488644,560.0000000000001]],[7,[578.4678751731759,580.0]],[2,[363.87495373796554,587.4999999999999]],[6,[634.4486372867087,565.0]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[5,5],[2,2],[4,4],[1,1],[6,6],[3,3]],"end_point":[[6,7],[3,4],[1,2],[2,3],[4,5],[5,6]],"handle_primary":[[6,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[5,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[6,0],[5,0],[3,0],[2,0],[1,0],[4,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14019233912018234740,{"inputs":[{"Node":{"node_id":16069762220015310717,"output_index":0}},{"Node":{"node_id":17785019773455930267,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5448146793323825465,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[895.6921938165308,580.0000000000001]],[1,[709.0896534380863,630.0]],[3,[783.730669589464,550.0]],[2,[597.1281292110198,599.9999999999999]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[2,2],[1,1]],"end_point":[[3,4],[4,1],[1,2],[2,3]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[1,0],[3,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4187349759243468746,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"delta":[[14,[650.6666666666667,398.2222222222223]],[15,[615.4183813443072,491.19341563786]],[12,[609.0096021947874,496.4609053497942]],[3,[589.8710562414265,497.0754458161865]],[18,[618.4910836762688,499.9725651577503]],[7,[596.3676268861453,491.9835390946502]],[13,[609.7997256515774,497.6899862825788]],[1,[583.5500685871057,499.53360768175577]],[11,[615.6378600823045,431.5390946502058]],[6,[594.4362139917694,493.6515775034293]],[8,[580.9382716049382,401.9753086419752]],[5,[574.0246913580246,440.2962962962963]],[9,[606.0246913580247,486.803840877915]],[17,[668.3566529492455,433.2510288065844]],[16,[616.0751917898693,491.077444156548]],[2,[533.9259259259258,420.7407407407407]],[4,[591.18792866941,498.3045267489712]],[10,[607.8683127572016,488.3840877914952]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"start_point":[[18,18],[7,7],[17,17],[10,10],[11,11],[12,12],[15,15],[6,6],[3,3],[5,5],[13,13],[9,9],[8,8],[16,16],[4,4],[14,14],[2,2],[1,1]],"end_point":[[5,6],[18,1],[2,3],[12,13],[7,8],[9,10],[10,11],[8,9],[16,17],[1,2],[17,18],[3,4],[4,5],[6,7],[14,15],[11,12],[15,16],[13,14]],"handle_primary":[[12,[0.0,0.0]],[2,[44.005486968450214,35.16049382716062]],[3,[0.0,0.0]],[1,[0.0,0.0]],[11,[-3.906721536351256,29.62962962962956]],[8,[22.10150891632361,44.44444444444463]],[4,[0.0,0.0]],[6,[0.0,0.0]],[7,[0.0,0.0]],[9,[0.0,0.0]],[14,[-18.3045267489714,37.31138545953348]],[18,[-6.945585968035971,18.68277302655963]],[15,[0.0,0.0]],[17,[-38.27709190672158,34.5020576131688]],[16,[0.0,0.0]],[5,[18.392318244170156,23.769547325102906]],[13,[0.0,0.0]],[10,[0.0,0.0]]],"handle_end":[[11,[0.0,0.0]],[7,[25.964334705075316,61.47599451303165]],[1,[48.21947873799752,48.855967078189394]],[12,[0.0,0.0]],[2,null],[10,[-6.189300411522709,26.732510288065782]],[6,[0.0,0.0]],[3,[0.0,0.0]],[13,[-23.747599451303245,35.4677640603565]],[14,null],[18,[7.8075669002856785,13.340866152962064]],[8,null],[15,[0.0,0.0]],[17,null],[5,null],[16,[-35.29218106995893,26.337448559670804]],[9,[0.0,0.0]],[4,[21.113854595336193,37.201646090535064]]],"stroke":[[12,0],[13,0],[10,0],[5,0],[18,0],[6,0],[14,0],[17,0],[2,0],[3,0],[8,0],[11,0],[7,0],[1,0],[15,0],[9,0],[16,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":18}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9684750473849891261,{"inputs":[{"Node":{"node_id":70804263053697201,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.96862745,"green":0.8352941,"blue":0.62352943,"alpha":1.0}],[0.5772391174087621,{"red":0.7921569,"green":0.8019608,"blue":0.6450981,"alpha":1.0}],[1.0,{"red":0.6156863,"green":0.76862746,"blue":0.6666667,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.96862745,"green":0.8352941,"blue":0.62352943,"alpha":1.0}],[0.5772391174087621,{"red":0.7921569,"green":0.8019608,"blue":0.6450981,"alpha":1.0}],[1.0,{"red":0.6156863,"green":0.76862746,"blue":0.6666667,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13531127678140037818,{"inputs":[{"Node":{"node_id":3970872207068447290,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14055195208113082127,{"inputs":[{"Node":{"node_id":2510483139353274965,"output_index":0}},{"Node":{"node_id":12360435709959435360,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18187802220803838247,{"inputs":[{"Node":{"node_id":11634445349252640936,"output_index":0}},{"Value":{"tagged_value":{"BlendMode":"Screen"},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::BlendModeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8015732980153557800,{"inputs":[{"Node":{"node_id":3806549994589872867,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297002,-70.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2791109467690716388,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[6,[1044.9742261192855,480.0]],[5,[596.8912314546803,600.0634765625]],[2,[877.0319397786863,584.9999999999998]],[3,[783.7306695894646,560.0]],[4,[615.5514854925251,605.0634765625002]],[1,[1156.9357503463468,509.9999999999987]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[5,5],[4,4],[3,3],[2,2],[6,6],[1,1]],"end_point":[[2,3],[5,6],[3,4],[1,2],[6,1],[4,5]],"handle_primary":[[5,[448.0829946646052,-120.0634765625]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,null],[6,[0.0,0.0]],[3,null]],"handle_end":[[2,null],[1,[0.0,0.0]],[6,[0.0,0.0]],[4,null],[5,null],[3,null]],"stroke":[[4,0],[3,0],[5,0],[1,0],[2,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13747030364552895864,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[2,[1231.576766497729,510.00000000000233]],[1,[709.0896534380864,650.0]],[4,[1156.9357503463516,540.0]],[3,[1231.6308657449686,540.0144958496094]],[5,[709.0896534380863,660.0]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[2,2],[5,5],[3,3],[1,1],[4,4]],"end_point":[[5,1],[3,4],[4,5],[2,3],[1,2]],"handle_primary":[[5,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[-74.69511539861696,-0.014495849609375]]],"handle_end":[[5,[-2.273736754432321e-13,-2.273736754432321e-13]],[3,null],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,null]],"stroke":[[4,0],[1,0],[5,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8034980397175569257,{"inputs":[{"Node":{"node_id":4243146970185091100,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[55.4066256813212,48.820258260598735]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.093432966432927,1.093432966432927]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11776939455674933130,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":9684750473849891261,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4968550668755026811,{"inputs":[{"Node":{"node_id":585709295659496998,"output_index":0}},{"Node":{"node_id":13609749019463823009,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17533670083736420411,{"inputs":[{"Node":{"node_id":7005645574203740491,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.8397260273972602,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.9711254481326403,-0.313902431217137],"end":[1.0169100960157926,0.2104743282968058]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.8397260273972602,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.9711254481326403,-0.313902431217137],"end":[1.0169100960157926,0.2104743282968058]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12683405703338263457,{"inputs":[{"Node":{"node_id":12537712543904859919,"output_index":0}},{"Node":{"node_id":14449710315388146362,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1229809699395562135,{"inputs":[{"Node":{"node_id":2843751023378786714,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-36.95875397623445,-88.44786737074935]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.442673035713692,1.442673035713692]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12302362769310895852,{"inputs":[{"Node":{"node_id":15347111149235590492,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.8014369,"green":0.8203125,"blue":0.63446045,"alpha":1.0}],[0.4047792425110607,{"red":0.70046544,"green":0.765625,"blue":0.57421875,"alpha":1.0}],[0.6425390774124099,{"red":0.6,"green":0.70980394,"blue":0.56078434,"alpha":1.0}],[0.8010456340133093,{"red":0.47058824,"green":0.6509804,"blue":0.53333336,"alpha":1.0}],[0.894708599277477,{"red":0.40392157,"green":0.6117647,"blue":0.5176471,"alpha":1.0}],[1.0,{"red":0.26666668,"green":0.5176471,"blue":0.4745098,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5027713289486062,0.6166666666666667],"end":[0.502771328948606,-0.08890027761186703]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.8014369,"green":0.8203125,"blue":0.63446045,"alpha":1.0}],[0.4047792425110607,{"red":0.70046544,"green":0.765625,"blue":0.57421875,"alpha":1.0}],[0.6425390774124099,{"red":0.6,"green":0.70980394,"blue":0.56078434,"alpha":1.0}],[0.8010456340133093,{"red":0.47058824,"green":0.6509804,"blue":0.53333336,"alpha":1.0}],[0.894708599277477,{"red":0.40392157,"green":0.6117647,"blue":0.5176471,"alpha":1.0}],[1.0,{"red":0.26666668,"green":0.5176471,"blue":0.4745098,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5027713289486062,0.6166666666666667],"end":[0.502771328948606,-0.08890027761186703]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15488533792651297821,{"inputs":[{"Node":{"node_id":14019233912018234740,"output_index":0}},{"Node":{"node_id":183952488591282082,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14791465604033956302,{"inputs":[{"Node":{"node_id":18187802220803838247,"output_index":0}},{"Value":{"tagged_value":{"F64":50.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1147521068928676110,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":938033825024582130,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6821938959315178556,{"inputs":[{"Node":{"node_id":12683405703338263457,"output_index":0}},{"Node":{"node_id":5326013268137833446,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1490537476612110327,{"inputs":[{"Node":{"node_id":2900504420179573771,"output_index":0}},{"Node":{"node_id":429913874753911073,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3365825508845848745,{"inputs":[{"Node":{"node_id":7156963182187517674,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.4509804,"green":0.6745098,"blue":0.627451,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}]],"gradient_type":"Linear","start":[0.008641111778101118,0.8823529411764692],"end":[0.9918085332369128,0.12352941176470456]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.4509804,"green":0.6745098,"blue":0.627451,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}]],"gradient_type":"Linear","start":[0.008641111778101118,0.8823529411764692],"end":[0.9918085332369128,0.12352941176470456]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9157963288496356916,{"inputs":[{"Node":{"node_id":10188337730058049439,"output_index":0}},{"Node":{"node_id":1108089904278882840,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3679103217373457623,{"inputs":[{"Node":{"node_id":7910743362843097140,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13442128106088307772,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":13700218159488557234,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2225749123534781340,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[1138.2754963085072,550.0000000000001]],[3,[1128.9453692895852,537.5000000000001]],[2,[1156.9357503463518,545.0000000000001]],[4,[1110.285115251741,542.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[3,4],[2,3],[4,1],[1,2]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11490835759023283071,{"inputs":[{"Node":{"node_id":16923062582661131268,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15517065353723874205,{"inputs":[{"Node":{"node_id":3616319631707471648,"output_index":0}},{"Node":{"node_id":12548387328300782726,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3014633976566537110,{"inputs":[{"Node":{"node_id":5346759588580719138,"output_index":0}},{"Node":{"node_id":11860177410232537211,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9981992739451603109,{"inputs":[{"Node":{"node_id":13852123721901366011,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.16078432,"green":0.2901961,"blue":0.16078432,"alpha":0.59765625}],[0.8744713248939212,{"red":0.16078432,"green":0.29411766,"blue":0.16078432,"alpha":0.4453125}],[1.0,{"red":0.16078432,"green":0.2784314,"blue":0.16078432,"alpha":0.2109375}]],"gradient_type":"Radial","start":[0.4917953695426216,3.5168687748431413],"end":[0.4917953695426216,-0.06740196271505461]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.16078432,"green":0.2901961,"blue":0.16078432,"alpha":0.59765625}],[0.8744713248939212,{"red":0.16078432,"green":0.29411766,"blue":0.16078432,"alpha":0.4453125}],[1.0,{"red":0.16078432,"green":0.2784314,"blue":0.16078432,"alpha":0.2109375}]],"gradient_type":"Radial","start":[0.4917953695426216,3.5168687748431413],"end":[0.4917953695426216,-0.06740196271505461]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18128923159828618806,{"inputs":[{"Node":{"node_id":1229809699395562135,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.39215687,"green":0.6392157,"blue":0.4745098,"alpha":1.0}],[0.3267294443765037,{"red":0.45324707,"green":0.734375,"blue":0.5498848,"alpha":1.0}],[0.5703803350862179,{"red":0.72745097,"green":0.7784314,"blue":0.5235294,"alpha":1.0}],[1.0,{"red":1.0,"green":0.84705883,"blue":0.4627451,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4425774215957188,0.8669102822986486],"end":[0.40311512028827146,0.4061330859327766]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.39215687,"green":0.6392157,"blue":0.4745098,"alpha":1.0}],[0.3267294443765037,{"red":0.45324707,"green":0.734375,"blue":0.5498848,"alpha":1.0}],[0.5703803350862179,{"red":0.72745097,"green":0.7784314,"blue":0.5235294,"alpha":1.0}],[1.0,{"red":1.0,"green":0.84705883,"blue":0.4627451,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4425774215957188,0.8669102822986486],"end":[0.40311512028827146,0.4061330859327766]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1156213189397385283,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[83.97114317030051,612.4999999999999]],[1,[55.98076211353359,615.0]],[4,[74.64101615137773,610.0]],[2,[65.3108891324556,617.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[4,4],[1,1]],"end_point":[[2,3],[1,2],[4,1],[3,4]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8891726805381758817,{"inputs":[{"Node":{"node_id":17332567356044944766,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-74.42590421819692,41.71533421869417]},"exposed":false}},{"Value":{"tagged_value":{"F64":38.68758978528783},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[38.26905454222045,23.541084128981048]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[23.61080512850412,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12998832508553378533,{"inputs":[{"Node":{"node_id":3122972215852775755,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.46666667,"green":0.7019608,"blue":0.654902,"alpha":1.0}],[0.5,{"red":0.44313726,"green":0.68235296,"blue":0.6313726,"alpha":1.0}],[1.0,{"red":0.40784314,"green":0.627451,"blue":0.6,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0051615000620980345,0.22838569993468072],"end":[0.9899367003601665,0.951087390077165]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.46666667,"green":0.7019608,"blue":0.654902,"alpha":1.0}],[0.5,{"red":0.44313726,"green":0.68235296,"blue":0.6313726,"alpha":1.0}],[1.0,{"red":0.40784314,"green":0.627451,"blue":0.6,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0051615000620980345,0.22838569993468072],"end":[0.9899367003601665,0.951087390077165]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9798215931018813676,{"inputs":[{"Node":{"node_id":10779665858841986661,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9210109719406330381,{"inputs":[{"Node":{"node_id":8612613134760093452,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9409313765472227540,{"inputs":[{"Node":{"node_id":6821938959315178556,"output_index":0}},{"Node":{"node_id":8463468388280418154,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13920465562072008593,{"inputs":[{"Node":{"node_id":3670594928372882885,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-63.99999999999994]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3122972215852775755,{"inputs":[{"Node":{"node_id":10431241258085047322,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3564067978712674849,{"inputs":[{"Node":{"node_id":6777328619777499144,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.24355652970075,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2189393878093040029,{"inputs":[{"Node":{"node_id":15478704582542175684,"output_index":0}},{"Node":{"node_id":17533670083736420411,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10917301734480569398,{"inputs":[{"Node":{"node_id":3455270778005546310,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13946577152348504742,{"inputs":[{"Node":{"node_id":3021739385836969518,"output_index":0}},{"Node":{"node_id":15876464101883822838,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2510483139353274965,{"inputs":[{"Node":{"node_id":14202574750104046500,"output_index":0}},{"Node":{"node_id":18128923159828618806,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16847360882244487081,{"inputs":[{"Node":{"node_id":13817976820605296433,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.9490196,"green":0.92156863,"blue":0.7411765,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6476985249926699,0.10666666666666667],"end":[0.9920644403070608,0.4398792234469302]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.9490196,"green":0.92156863,"blue":0.7411765,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6476985249926699,0.10666666666666667],"end":[0.9920644403070608,0.4398792234469302]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7671691070850213967,{"inputs":[{"Node":{"node_id":1658032775659237960,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.22091675,"green":0.4453125,"blue":0.44150904,"alpha":1.0}],[0.6048571201787465,{"red":0.3202623,"green":0.5461857,"blue":0.5423232,"alpha":0.859375}],[0.8131497297124398,{"red":0.41960785,"green":0.64705884,"blue":0.6431373,"alpha":0.71875}],[1.0,{"red":0.43137255,"green":0.61960787,"blue":0.5803922,"alpha":0.3984375}]],"gradient_type":"Radial","start":[0.3691427845059252,-2.109375000000002],"end":[0.05794738050227899,1.089204545454546]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.22091675,"green":0.4453125,"blue":0.44150904,"alpha":1.0}],[0.6048571201787465,{"red":0.3202623,"green":0.5461857,"blue":0.5423232,"alpha":0.859375}],[0.8131497297124398,{"red":0.41960785,"green":0.64705884,"blue":0.6431373,"alpha":0.71875}],[1.0,{"red":0.43137255,"green":0.61960787,"blue":0.5803922,"alpha":0.3984375}]],"gradient_type":"Radial","start":[0.3691427845059252,-2.109375000000002],"end":[0.05794738050227899,1.089204545454546]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16244305414728361140,{"inputs":[{"Node":{"node_id":11547499603328872398,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5294118,"green":0.7490196,"blue":0.65882355,"alpha":1.0}],[1.0,{"red":0.46666667,"green":0.69803923,"blue":0.62352943,"alpha":1.0}]],"gradient_type":"Linear","start":[0.008550171763040293,0.13076923076922986],"end":[0.99103054401049,0.7769230769230764]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5294118,"green":0.7490196,"blue":0.65882355,"alpha":1.0}],[1.0,{"red":0.46666667,"green":0.69803923,"blue":0.62352943,"alpha":1.0}]],"gradient_type":"Linear","start":[0.008550171763040293,0.13076923076922986],"end":[0.99103054401049,0.7769230769230764]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9724746185253267560,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[9,[1222.2466394788075,476.5000000000001]],[6,[1194.256258422041,458.99999999999994]],[10,[1194.2562584220411,469.00000000000006]],[8,[1184.9261314031187,486.5]],[1,[1091.6248612138966,461.5]],[5,[1259.567147554496,476.49999999999994]],[11,[1175.5960043841962,474.00000000000006]],[7,[1138.2754963085074,473.99999999999994]],[3,[1044.9742261192855,459.0]],[2,[1063.63448015713,453.99999999999994]],[4,[1184.9261314031187,496.5]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[2,2],[3,3],[8,8],[9,9],[4,4],[6,6],[5,5],[1,1],[7,7],[10,10]],"end_point":[[4,5],[5,6],[1,2],[2,3],[6,7],[9,10],[3,4],[7,8],[8,9],[10,11]],"handle_primary":[[6,[0.0,0.0]],[10,[0.0,0.0]],[7,[0.0,0.0]],[4,[0.0,0.0]],[8,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[5,[0.0,0.0]],[9,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[9,[0.0,0.0]],[1,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]],[8,[0.0,0.0]],[4,[0.0,0.0]],[10,[0.0,0.0]],[6,[0.0,0.0]],[3,[0.0,0.0]],[7,[0.0,0.0]]],"stroke":[[4,0],[9,0],[3,0],[6,0],[1,0],[5,0],[7,0],[8,0],[10,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1108089904278882840,{"inputs":[{"Node":{"node_id":5317925967883407701,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13001069903842109798,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.15793848790232112,1.0756444843098496]],[2,[1.067391838882569,0.5169672994595966]],[3,[1.0311603768047983,1.0082447817061446]],[1,[0.02964805558748984,0.4451546735104888]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[1,1],[3,3]],"end_point":[[4,1],[2,3],[1,2],[3,4]],"handle_primary":[[3,[-0.4856258676143469,-0.19200483651697595]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,null],[4,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4837219841531371489,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1343.5382907247958,320.00000000000006]],[4,[597.1281292110205,340.0000000000001]],[1,[933.0127018922194,430.0]],[3,[1007.6537180435968,230.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[4,4],[2,2]],"end_point":[[1,2],[3,4],[2,3],[4,1]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[4,0],[2,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17785019773455930267,{"inputs":[{"Node":{"node_id":17887542695709892422,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,-6.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10189927996178548902,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[709.0896534380867,660.0]],[3,[597.1281292110203,649.9999999999999]],[2,[298.5640646055101,570.0000000000006]],[6,[709.0896534380864,649.9999999999999]],[4,[597.1281292110198,630.0]],[1,[298.56406460551045,540.0000000000002]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[1,1],[2,2],[6,6],[5,5],[4,4]],"end_point":[[1,2],[3,4],[4,5],[5,6],[6,1],[2,3]],"handle_primary":[[2,[0.0,0.0]],[6,[0.0,0.0]],[5,[-2.273736754432321e-13,-10.000000000000114]],[1,[0.0,0.0]],[3,[-5.684341886080801e-13,-19.999999999999886]],[4,[0.0,0.0]]],"handle_end":[[5,null],[6,[0.0,0.0]],[4,null],[1,[0.0,0.0]],[2,null],[3,null]],"stroke":[[6,0],[3,0],[5,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13868917743026516656,{"inputs":[{"Node":{"node_id":5258402282444994019,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.9529412,"green":0.83137256,"blue":0.49411765,"alpha":1.0}],[0.5,{"red":0.6039216,"green":0.77254903,"blue":0.6117647,"alpha":1.0}],[1.0,{"red":0.48010254,"green":0.71875,"blue":0.58451086,"alpha":1.0}]],"gradient_type":"Radial","start":[0.990188567383927,0.031432585832447346],"end":[0.003820820042059303,0.7823921936299838]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.9529412,"green":0.83137256,"blue":0.49411765,"alpha":1.0}],[0.5,{"red":0.6039216,"green":0.77254903,"blue":0.6117647,"alpha":1.0}],[1.0,{"red":0.48010254,"green":0.71875,"blue":0.58451086,"alpha":1.0}]],"gradient_type":"Radial","start":[0.990188567383927,0.031432585832447346],"end":[0.003820820042059303,0.7823921936299838]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9393309733761233513,{"inputs":[{"Node":{"node_id":13946577152348504742,"output_index":0}},{"Node":{"node_id":11895211316848895241,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11634802583144606404,{"inputs":[{"Node":{"node_id":9226731772122225003,"output_index":0}},{"Node":{"node_id":6868877732348460627,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8165914767449151618,{"inputs":[{"Node":{"node_id":11158238411769751544,"output_index":0}},{"Node":{"node_id":13942146309185231085,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14400993470150734626,{"inputs":[{"Node":{"node_id":2088390810384907709,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-69.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14202574750104046500,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":1831743139584171612,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15216519480392295991,{"inputs":[{"Node":{"node_id":12019361655085452072,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.79607844,"green":0.7607843,"blue":0.57254905,"alpha":0.01}],[0.6837652235970189,{"red":0.6666667,"green":0.6666667,"blue":0.6666667,"alpha":0.011764706}],[0.7972664177223364,{"red":0.79607844,"green":0.7607843,"blue":0.57254905,"alpha":0.53515625}],[1.0,{"red":0.9647059,"green":0.7607843,"blue":0.5568628,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5377061694297174,0.1861799653787184],"end":[0.4291107938423666,0.936951921882358]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.79607844,"green":0.7607843,"blue":0.57254905,"alpha":0.01}],[0.6837652235970189,{"red":0.6666667,"green":0.6666667,"blue":0.6666667,"alpha":0.011764706}],[0.7972664177223364,{"red":0.79607844,"green":0.7607843,"blue":0.57254905,"alpha":0.53515625}],[1.0,{"red":0.9647059,"green":0.7607843,"blue":0.5568628,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5377061694297174,0.1861799653787184],"end":[0.4291107938423666,0.936951921882358]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1831743139584171612,{"inputs":[{"Node":{"node_id":6569279146800941123,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.44433594,"green":0.7109375,"blue":0.60144055,"alpha":1.0}],[0.31019165912642926,{"red":0.42991638,"green":0.68359375,"blue":0.5723318,"alpha":0.85546875}],[1.0,{"red":0.41487122,"green":0.66796875,"blue":0.5466929,"alpha":0.3515625}]],"gradient_type":"Radial","start":[0.49564744287268736,0.12680209698558276],"end":[0.6983677910772572,0.8876146788990837]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.44433594,"green":0.7109375,"blue":0.60144055,"alpha":1.0}],[0.31019165912642926,{"red":0.42991638,"green":0.68359375,"blue":0.5723318,"alpha":0.85546875}],[1.0,{"red":0.41487122,"green":0.66796875,"blue":0.5466929,"alpha":0.3515625}]],"gradient_type":"Radial","start":[0.49564744287268736,0.12680209698558276],"end":[0.6983677910772572,0.8876146788990837]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12360435709959435360,{"inputs":[{"Node":{"node_id":15723520455917422372,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.47843137,"green":0.7294118,"blue":0.5686275,"alpha":1.0}],[1.0,{"red":0.39215687,"green":0.6392157,"blue":0.4745098,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5005723020410011,0.4324498034559026],"end":[0.5007962736667897,0.9150264743070644]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.47843137,"green":0.7294118,"blue":0.5686275,"alpha":1.0}],[1.0,{"red":0.39215687,"green":0.6392157,"blue":0.4745098,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5005723020410011,0.4324498034559026],"end":[0.5007962736667897,0.9150264743070644]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2077983679740571162,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[-137.83320996790803,20.957167389569804]],[2,[-130.2776544123526,8.793446239014884]],[4,[-124.49987663457466,76.24680898300153]],[3,[-119.7591358938339,55.2367451774976]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[2,2],[3,3]],"end_point":[[2,3],[3,4],[4,1],[1,2]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[2,[-5.037037037036939,-9.952135486817731]],[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[6.814814814814781,36.49116345166567]]],"stroke":[[3,0],[1,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2058192342619930156,{"inputs":[{"Node":{"node_id":2155997486525176376,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,-5.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10181153433637856462,{"inputs":[{"Node":{"node_id":9150078008481575131,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[187.102540378,187.10254037799996]},"exposed":false}},{"Value":{"tagged_value":{"F64":180.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[373.205080756,373.205080756]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-1.8801215900696402e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11579925754926059876,{"inputs":[{"Node":{"node_id":15670426414376277308,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[1175.596004383839,384.99999999999983]},"exposed":false}},{"Value":{"tagged_value":{"F64":180.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[410.52558883186134,109.99999999999974]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-1.8801215900696402e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9138781233934614517,{"inputs":[{"Node":{"node_id":8073807569018624098,"output_index":0}},{"Node":{"node_id":4884180935153120645,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12370676490908282512,{"inputs":[{"Node":{"node_id":9666682009015049330,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.643741535074667,{"red":0.27450982,"green":0.49411765,"blue":0.5137255,"alpha":0.5019608}],[0.8214781907174007,{"red":0.27450982,"green":0.5019608,"blue":0.52156866,"alpha":0.17254902}],[1.0,{"red":0.0,"green":1.0,"blue":1.0,"alpha":0.003921569}]],"gradient_type":"Linear","start":[0.8142178455184718,0.014814814814815058],"end":[0.8217337510617708,0.33779273207824057]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.643741535074667,{"red":0.27450982,"green":0.49411765,"blue":0.5137255,"alpha":0.5019608}],[0.8214781907174007,{"red":0.27450982,"green":0.5019608,"blue":0.52156866,"alpha":0.17254902}],[1.0,{"red":0.0,"green":1.0,"blue":1.0,"alpha":0.003921569}]],"gradient_type":"Linear","start":[0.8142178455184718,0.014814814814815058],"end":[0.8217337510617708,0.33779273207824057]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16261620049358949344,{"inputs":[{"Node":{"node_id":16059265180575745658,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7340659059180155803,{"inputs":[{"Node":{"node_id":7171713123860587892,"output_index":0}},{"Node":{"node_id":13531127678140037818,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6589978257209505606,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[821.0511776651532,440.0000000000001]],[1,[709.0896534380868,410.0000000000001]],[2,[709.0896534380868,470.0]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[3,1],[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16398743435291795904,{"inputs":[{"Node":{"node_id":5574499968250848265,"output_index":0}},{"Node":{"node_id":4741515246389989284,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8181290118694677328,{"inputs":[{"Node":{"node_id":5540780316862276409,"output_index":0}},{"Node":{"node_id":17638504852426495381,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13837327017498431546,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[2,[774.4005425705421,566.5]],[8,[727.7499074759312,594.0]],[9,[1063.63448015713,504.0000000000001]],[12,[1287.5575286112626,593.9999999999999]],[11,[858.3716857408418,479.00000000000006]],[10,[914.3524478543748,464.0]],[4,[718.4197804570089,566.5]],[7,[634.4486372867094,569.0000000000001]],[3,[746.4101615137755,574.0]],[5,[802.3909236273088,543.9999999999999]],[1,[662.4390183434757,536.5]],[6,[765.0704155516199,533.9999999999999]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"start_point":[[5,5],[4,4],[2,2],[1,1],[8,8],[7,7],[3,3],[6,6],[10,10],[11,11],[9,9]],"end_point":[[6,7],[10,11],[2,3],[7,8],[5,6],[3,4],[11,12],[4,5],[1,2],[8,9],[9,10]],"handle_primary":[[8,[0.0,0.0]],[10,[0.0,0.0]],[5,[0.0,0.0]],[6,[0.0,0.0]],[11,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[7,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[9,[0.0,0.0]]],"handle_end":[[7,[0.0,0.0]],[10,[0.0,0.0]],[5,[0.0,0.0]],[6,[0.0,0.0]],[9,[0.0,0.0]],[8,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[11,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[1,0],[9,0],[5,0],[4,0],[6,0],[3,0],[10,0],[7,0],[2,0],[8,0],[11,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[183952488591282082,{"inputs":[{"Node":{"node_id":17965270694495451178,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,-6.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1032659476619711014,{"inputs":[{"Node":{"node_id":3014633976566537110,"output_index":0}},{"Node":{"node_id":2452294403891427489,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5670058004691708784,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[-109.83320996790816,-37.64985269946783]],[2,[-117.83320996790816,-58.65991650497199]],[4,[-115.759135893834,30.3564064604534]],[3,[-130.2776544123526,8.793446239014884]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[3,3],[2,2]],"end_point":[[3,4],[4,1],[2,3],[1,2]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[-0.7407407407406481,44.23171327474574]],[1,[0.0,0.0]]],"handle_end":[[2,[0.7407407407406481,-44.23171327474574]],[3,[0.0,0.0]],[4,[-12.740740740740762,23.22164946924204]],[1,[0.0,0.0]]],"stroke":[[3,0],[2,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11221222899304956410,{"inputs":[{"Node":{"node_id":5448146793323825465,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8242413775403456296,{"inputs":[{"Node":{"node_id":9138781233934614517,"output_index":0}},{"Node":{"node_id":9115451226763736660,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15157035456876170143,{"inputs":[{"Node":{"node_id":17059035448296015006,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-63.99999999999994]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9150078008481575131,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,0.5]],[1,[0.5,0.0]],[2,[1.0,0.5]],[3,[0.5,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[1,1],[4,4]],"end_point":[[2,3],[4,1],[3,4],[1,2]],"handle_primary":[[3,[-0.275892388889507,0.0]],[4,[0.0,-0.275892388889507]],[1,[0.27589238888950707,0.0]],[2,[0.0,0.27589238888950707]]],"handle_end":[[3,[0.0,0.27589238888950707]],[4,[-0.275892388889507,0.0]],[2,[0.27589238888950707,0.0]],[1,[0.0,-0.275892388889507]]],"stroke":[[2,0],[1,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15775513677915164685,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"delta":[[10,[709.413808870599,616.4718792866942]],[13,[734.8148148148149,620.9492455418381]],[18,[725.5089163237311,594.6117969821673]],[16,[726.2990397805214,601.9862825788753]],[7,[692.1871665904588,615.6720012193263]],[5,[662.6063100137173,612.5432098765428]],[4,[682.3593964334707,606.4197530864195]],[6,[695.3964334705074,609.7777777777776]],[15,[763.4567901234569,605.6296296296294]],[17,[749.8271604938273,587.4567901234568]],[12,[721.9094650205761,611.3799725651577]],[3,[699.7421124828531,603.0617283950616]],[9,[709.3552812071331,611.4970278920897]],[14,[728.493827160494,609.9753086419753]],[1,[699.8518518518516,598.1234567901233]],[11,[713.6278006401462,612.5505258344765]],[2,[667.3909465020577,593.3827160493828]],[8,[701.8247218411828,611.4580094497792]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"start_point":[[11,11],[14,14],[17,17],[7,7],[18,18],[5,5],[13,13],[16,16],[10,10],[8,8],[2,2],[15,15],[4,4],[6,6],[3,3],[12,12],[1,1],[9,9]],"end_point":[[15,16],[5,6],[7,8],[8,9],[17,18],[12,13],[9,10],[13,14],[14,15],[4,5],[1,2],[2,3],[18,1],[10,11],[6,7],[11,12],[3,4],[16,17]],"handle_primary":[[17,[-7.648317030623161,4.388047332817109]],[4,[-6.038618148571572,2.2123832635880945]],[10,[2.71082158531226,-3.275875783141601]],[9,[1.0398530837227329,0.17152215813985094]],[2,[5.399176954732297,6.584362139917744]],[12,[0.6886396813392821,0.35058484628291353]],[6,[0.0,0.0]],[11,[0.9510922553114368,-0.40840938602514143]],[1,[-13.651577503429507,-4.016460905349504]],[13,[-3.101966163694442,-4.096936442615402]],[8,[0.0,0.0]],[16,[0.0,0.0]],[14,[-0.1771601410563335,-2.331086581557088]],[7,[0.0,0.0]],[15,[-15.992684042066571,-5.647919524462736]],[18,[-0.0877914951989851,0.0]],[3,[0.0,0.0]],[5,[0.0,0.0]]],"handle_end":[[14,[-22.51851851851859,-0.614540466392441]],[15,[2.8483462886752022,1.1315348270080676]],[9,null],[12,[-6.90626428898031,-2.3996342021031296]],[3,[6.038618148571345,-2.2123832635879808]],[18,[0.0,0.0]],[6,[4.13595488492615,-4.1749733272365575]],[10,null],[11,[-1.2025737194898056,-0.6122274594622468]],[17,null],[2,[0.0,0.0]],[16,[-5.977212841894016,7.381559383908893]],[1,[8.559670781892919,2.502057613168745]],[13,[-0.5267489711934559,1.053497942386798]],[8,[-3.7847889041303233,-0.6242950769699291]],[5,[-8.69135802469134,3.3580246913579685]],[7,[-5.1358024691359105,5.530864197530718]],[4,[0.0,0.0]]],"stroke":[[13,0],[1,0],[18,0],[4,0],[10,0],[8,0],[12,0],[17,0],[16,0],[15,0],[6,0],[3,0],[7,0],[9,0],[11,0],[14,0],[2,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":18}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6569279146800941123,{"inputs":[{"Node":{"node_id":15775513677915164685,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,26.66666666666663]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7799679303995308634,{"inputs":[{"Node":{"node_id":4323461535289334196,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2881239077602364410,{"inputs":[{"Node":{"node_id":9641315149170593327,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.47058824,"green":0.73333335,"blue":0.6117647,"alpha":0.296875}],[0.2777869967086046,{"red":0.46666667,"green":0.72156864,"blue":0.6,"alpha":0.70703125}],[0.36183495566130336,{"red":0.46666667,"green":0.72156864,"blue":0.6039216,"alpha":0.80078125}],[0.6507416725274494,{"red":0.4745098,"green":0.7294118,"blue":0.5921569,"alpha":0.23137255}],[1.0,{"red":0.47058824,"green":0.7176471,"blue":0.6039216,"alpha":0.18359375}]],"gradient_type":"Linear","start":[0.94412535478592,0.7803313772362046],"end":[0.3197649256748516,0.1688059143071423]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.47058824,"green":0.73333335,"blue":0.6117647,"alpha":0.296875}],[0.2777869967086046,{"red":0.46666667,"green":0.72156864,"blue":0.6,"alpha":0.70703125}],[0.36183495566130336,{"red":0.46666667,"green":0.72156864,"blue":0.6039216,"alpha":0.80078125}],[0.6507416725274494,{"red":0.4745098,"green":0.7294118,"blue":0.5921569,"alpha":0.23137255}],[1.0,{"red":0.47058824,"green":0.7176471,"blue":0.6039216,"alpha":0.18359375}]],"gradient_type":"Linear","start":[0.94412535478592,0.7803313772362046],"end":[0.3197649256748516,0.1688059143071423]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2088390810384907709,{"inputs":[{"Node":{"node_id":14341957170885045113,"output_index":0}},{"Node":{"node_id":9323583246068171750,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2062662104423219162,{"inputs":[{"Node":{"node_id":10810157408196882043,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.24355652970144,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6556170892691431702,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":3365825508845848745,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11595529463602678384,{"inputs":[{"Node":{"node_id":4398598693761352299,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-63.99999999999994]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10810157408196882043,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1231.5767664977286,540.0]],[4,[1306.2177826491084,530.0000000000023]],[3,[1306.217782649106,559.9999999999999]],[1,[1231.576766497731,510.00000000000233]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[1,1],[4,4],[2,2]],"end_point":[[4,1],[2,3],[1,2],[3,4]],"handle_primary":[[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[-6.821210263296962e-13,-1.1368683772161605e-13]]],"stroke":[[2,0],[3,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4323461535289334196,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[597.1281292110203,649.9999999999999]],[2,[597.1281292110198,630.0]],[1,[634.4486372867091,639.9999999999999]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[2,2],[1,1]],"end_point":[[3,1],[1,2],[2,3]],"handle_primary":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,1.1368683772161605e-13]],[2,[0.0,0.0]]],"stroke":[[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16807867745126764195,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[0.5,1.0]],[4,[0.0,0.5]],[2,[1.0,0.5]],[1,[0.5,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[1,2],[3,4],[4,1],[2,3]],"handle_primary":[[4,[0.0,-0.275892388889507]],[3,[-0.275892388889507,0.0]],[1,[0.27589238888950707,0.0]],[2,[0.0,0.27589238888950707]]],"handle_end":[[4,[-0.275892388889507,0.0]],[2,[0.27589238888950707,0.0]],[3,[0.0,0.27589238888950707]],[1,[0.0,-0.275892388889507]]],"stroke":[[3,0],[4,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17881728913029763313,{"inputs":[{"Node":{"node_id":16793555741218543212,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15709488322180832347,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7838724497953148309,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1270.0,635.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5529412,"green":0.78039217,"blue":0.70980394,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Import":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14330881008352607546,{"inputs":[{"Node":{"node_id":11595529463602678384,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}],[0.7251131221719457,{"red":0.39215687,"green":0.6156863,"blue":0.5921569,"alpha":0.5019608}],[1.0,{"red":0.5058824,"green":0.7294118,"blue":0.6392157,"alpha":0.0}]],"gradient_type":"Linear","start":[0.3284027974661107,0.17846479235419954],"end":[0.3331499206771569,0.5505113976358942]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}],[0.7251131221719457,{"red":0.39215687,"green":0.6156863,"blue":0.5921569,"alpha":0.5019608}],[1.0,{"red":0.5058824,"green":0.7294118,"blue":0.6392157,"alpha":0.0}]],"gradient_type":"Linear","start":[0.3284027974661107,0.17846479235419954],"end":[0.3331499206771569,0.5505113976358942]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[70804263053697201,{"inputs":[{"Node":{"node_id":13942787566051910019,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[3.410605131648481e-13,3.410605131648481e-13]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1268.999999999999,634.9999999999992]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[194878846429432339,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[522.4871130596428,380.00000000000006]],[2,[559.8076211353317,450.0000000000001]],[1,[671.7691453623979,420.00000000000006]],[3,[410.5255888325765,410.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[1,1],[4,4],[2,2]],"end_point":[[3,4],[2,3],[1,2],[4,1]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[1,0],[4,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3806549994589872867,{"inputs":[{"Node":{"node_id":11429712783984224234,"output_index":0}},{"Node":{"node_id":11479492521093639512,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[326112971739898070,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[578.4678751731759,605.0]],[2,[578.4678751731759,615.0]],[3,[597.1281292110207,610.0]],[1,[559.8076211353317,610.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3]],"end_point":[[3,4],[4,1],[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[-1.1368683772161605e-13,-1.1368683772161605e-13]]],"stroke":[[1,0],[2,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4898866541060902381,{"inputs":[{"Node":{"node_id":7799679303995308634,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.39520264,"green":0.72265625,"blue":0.56068987,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.39520264,"green":0.72265625,"blue":0.56068987,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10779665858841986661,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[97.17913571110468,-93.86098831945704]],[3,[122.7099999086348,-47.60198818628578]],[4,[127.45074064937567,-74.14101615113282]],[1,[98.808765340734,-112.29086885060116]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1]],"end_point":[[1,2],[4,1],[3,4],[2,3]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[0.0,0.0]],[2,[-5.92592592592608,-17.692685309898252]],[3,[0.0,0.0]]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7952384394377946257,{"inputs":[{"Node":{"node_id":9935922395919478146,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}],[0.15303737473719153,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}],[0.45863166412588735,{"red":0.7921569,"green":0.8509804,"blue":0.58431375,"alpha":1.0}],[0.6476150394844262,{"red":0.9764706,"green":0.92941177,"blue":0.54509807,"alpha":1.0}],[1.0,{"red":0.9764706,"green":0.92941177,"blue":0.54509807,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5550432633852689,0.9407795494396834],"end":[0.3799981368712242,0.012217625842737945]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}],[0.15303737473719153,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}],[0.45863166412588735,{"red":0.7921569,"green":0.8509804,"blue":0.58431375,"alpha":1.0}],[0.6476150394844262,{"red":0.9764706,"green":0.92941177,"blue":0.54509807,"alpha":1.0}],[1.0,{"red":0.9764706,"green":0.92941177,"blue":0.54509807,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5550432633852689,0.9407795494396834],"end":[0.3799981368712242,0.012217625842737945]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9666682009015049330,{"inputs":[{"Node":{"node_id":2791109467690716388,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[958845362613832240,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[1195.6718657723986,420.3793108463287]],[6,[1382.2744061508486,330.3793108463298]],[4,[1195.671865772399,520.3793108463286]],[1,[971.7488173182716,440.37931084632993]],[5,[1382.2744061508483,470.3793108463301]],[2,[971.7488173182714,480.37931084632993]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[4,4],[1,1],[2,2],[5,5],[6,6],[3,3]],"end_point":[[6,1],[1,2],[5,6],[3,4],[2,3],[4,5]],"handle_primary":[[5,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[6,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[6,[0.0,0.0]],[4,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[1,0],[2,0],[6,0],[5,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13817976820605296433,{"inputs":[{"Node":{"node_id":4837219841531371489,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969996,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15595689026000825531,{"inputs":[{"Node":{"node_id":2785423879796980286,"output_index":0}},{"Node":{"node_id":12172015233077238737,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17433098630591807963,{"inputs":[{"Node":{"node_id":11490835759023283071,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.49019608,"green":0.69411767,"blue":0.627451,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.49019608,"green":0.69411767,"blue":0.627451,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3670594928372882885,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[559.8076211353317,490.00000000000006]],[1,[671.7691453623979,459.99999999999994]],[2,[671.7691453623979,420.00000000000006]],[3,[559.8076211353316,450.00000000000006]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[2,2],[3,3]],"end_point":[[2,3],[4,1],[3,4],[1,2]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15723520455917422372,{"inputs":[{"Node":{"node_id":4187349759243468746,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[55.4066256813212,75.48692492726542]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.093432966432927,1.093432966432927]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13743495762122910279,{"inputs":[{"Node":{"node_id":322234583139821148,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.30980393,"green":0.54901963,"blue":0.5568628,"alpha":1.0}],[1.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0487255567160787,0.14016773560900295],"end":[0.9275384787415986,0.5063561479050618]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.30980393,"green":0.54901963,"blue":0.5568628,"alpha":1.0}],[1.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0487255567160787,0.14016773560900295],"end":[0.9275384787415986,0.5063561479050618]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17250040304106119844,{"inputs":[{"Node":{"node_id":6142412830271644616,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,16.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12548387328300782726,{"inputs":[{"Node":{"node_id":764189229787475993,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.7883568080179962,0.844472024944475],"end":[0.14631144508187544,0.21558322991428724]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.7883568080179962,0.844472024944475],"end":[0.14631144508187544,0.21558322991428724]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7339104629465306715,{"inputs":[{"Node":{"node_id":16229837691656808412,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9226731772122225003,{"inputs":[{"Node":{"node_id":8884703330021429739,"output_index":0}},{"Node":{"node_id":9695624216919732577,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10188337730058049439,{"inputs":[{"Node":{"node_id":1268775104597510914,"output_index":0}},{"Node":{"node_id":11076863066321508991,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15898396405528650339,{"inputs":[{"Node":{"node_id":16807867745126764195,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[1156.935750346027,389.9999999999999]},"exposed":false}},{"Value":{"tagged_value":{"F64":180.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[373.2050807562376,99.99999999999976]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-1.8801215900696402e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4046495708656778502,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[106.87778599676416,75.02595252015249]],[4,[122.38078180163905,40.36997488237489]],[3,[130.0186418839436,64.45168544306966]],[2,[111.05567892098054,93.44803081206965]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3]],"end_point":[[3,4],[4,1],[1,2],[2,3]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[1,0],[4,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9771562518763748677,{"inputs":[{"Node":{"node_id":14234384001010789008,"output_index":0}},{"Node":{"node_id":12554549497938935061,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11479492521093639512,{"inputs":[{"Node":{"node_id":15216519480392295991,"output_index":0}},{"Value":{"tagged_value":{"BlendMode":"Lighten"},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::BlendModeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15300421479077882117,{"inputs":[{"Node":{"node_id":7030585744407664630,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4887570735033124574,{"inputs":[{"Node":{"node_id":9210109719406330381,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.39607844,"green":0.57322305,"blue":0.627451,"alpha":0.6313726}],[1.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.0}]],"gradient_type":"Linear","start":[0.7128143377734406,-0.305555555555558],"end":[0.6180751590210081,0.944444444444442]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.39607844,"green":0.57322305,"blue":0.627451,"alpha":0.6313726}],[1.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.0}]],"gradient_type":"Linear","start":[0.7128143377734406,-0.305555555555558],"end":[0.6180751590210081,0.944444444444442]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5365849201631468915,{"inputs":[{"Node":{"node_id":10849502918952703647,"output_index":0}},{"Node":{"node_id":2310170068575553369,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14483299526002574058,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[933.0127018922192,649.9999999999999]],[2,[1156.9357503463518,589.9999999999999]],[1,[1156.9357503463516,540.0]],[4,[839.7114317029976,625.0000000000001]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[1,1],[3,3]],"end_point":[[3,4],[2,3],[1,2],[4,1]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[2.273736754432321e-13,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[4,0],[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14234384001010789008,{"inputs":[{"Node":{"node_id":4757672276235057645,"output_index":0}},{"Node":{"node_id":8863202447825570192,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16793555741218543212,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[2,[634.4486372867091,470.00000000000006]],[4,[597.1281292110201,559.9999999999999]],[6,[410.5255888325765,450.0000000000001]],[3,[783.7306695894638,509.9999999999999]],[5,[298.56406460551005,480.00000000000006]],[1,[559.7618537735666,489.9877366723751]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[2,2],[5,5],[4,4],[6,6],[1,1]],"end_point":[[4,5],[5,6],[6,1],[3,4],[1,2],[2,3]],"handle_primary":[[3,[0.0,0.0]],[2,[149.28203230275471,39.99999999999983]],[6,[0.0,0.0]],[5,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[5,[0.0,0.0]],[3,[0.0,0.0]],[6,[0.0,0.0]],[4,[0.0,0.0]],[1,null],[2,null]],"stroke":[[3,0],[4,0],[1,0],[6,0],[5,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2209276411833629008,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[2,[1.0,0.5]],[3,[0.5,1.0]],[6,[0.5000000000000018,0.10816199860278752]],[5,[0.1274934116812796,0.166664669692703]],[4,[0.0,0.5]],[1,[0.8725092774641316,0.16666767219504575]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[4,4],[5,5],[1,1],[6,6],[2,2],[3,3]],"end_point":[[3,4],[6,1],[2,3],[5,6],[1,2],[4,5]],"handle_primary":[[3,[-0.275892388889507,0.0]],[2,[0.0,0.27589238888950707]],[1,[0.07925873631249913,0.08849560350574948]],[6,[0.22701785858837376,9.09188805575667e-7]],[4,[0.0,-0.12799231715991943]],[5,[0.14548887396141374,-0.05850358027814341]]],"handle_end":[[5,null],[2,[0.27589238888950707,0.0]],[6,null],[1,[0.0,-0.12799086965193351]],[3,[0.0,0.27589238888950707]],[4,[-0.07926033448372466,0.08849596308181285]]],"stroke":[[6,0],[5,0],[4,0],[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5434119356821575534,{"inputs":[{"Node":{"node_id":1490537476612110327,"output_index":0}},{"Node":{"node_id":16261620049358949344,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2032185045476767535,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7340659059180155803,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15261165353096835967,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[2,[877.0319397786863,584.9999999999998]],[4,[615.7883832488644,605.0000000000001]],[3,[783.7306695894646,560.0]],[5,[597.1281292110198,599.9999999999999]],[1,[1156.9357503463468,509.9999999999987]],[6,[1044.9742261192855,480.0]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[2,2],[5,5],[6,6],[4,4],[1,1]],"end_point":[[3,4],[5,6],[1,2],[2,3],[6,1],[4,5]],"handle_primary":[[5,[447.84609690826574,-119.99999999999989]],[2,[0.0,0.0]],[3,null],[6,[0.0,0.0]],[4,null],[1,[0.0,0.0]]],"handle_end":[[4,null],[6,[0.0,0.0]],[3,null],[1,[0.0,0.0]],[5,null],[2,null]],"stroke":[[1,0],[4,0],[5,0],[3,0],[2,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1658032775659237960,{"inputs":[{"Node":{"node_id":14483299526002574058,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297003,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18185020559178852986,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":4847316728405535983,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6785205785632793666,{"inputs":[{"Node":{"node_id":10917301734480569398,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.49803922,"green":0.73333335,"blue":0.6666667,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.49803922,"green":0.73333335,"blue":0.6666667,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4884180935153120645,{"inputs":[{"Node":{"node_id":11221222899304956410,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4094933109340779,0.6607209771464397],"end":[0.921423168424672,0.39536705519277415]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4094933109340779,0.6607209771464397],"end":[0.921423168424672,0.39536705519277415]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7838724497953148309,{"inputs":[{"Node":{"node_id":9771562518763748677,"output_index":0}},{"Node":{"node_id":2058192342619930156,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17873337220577786871,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[597.1281292110198,599.9999999999999]],[2,[877.0319397786863,584.9999999999998]],[6,[1044.9742261192855,480.0]],[4,[615.7883832488646,605.0000000000001]],[3,[783.7306695894646,560.0]],[1,[1156.9357503463468,509.9999999999987]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[1,1],[5,5],[2,2],[3,3],[4,4],[6,6]],"end_point":[[5,6],[3,4],[4,5],[6,1],[1,2],[2,3]],"handle_primary":[[6,[0.0,0.0]],[3,null],[5,[447.84609690826574,-119.99999999999989]],[4,null],[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,null],[3,null],[2,null],[5,null],[1,[0.0,0.0]],[6,[0.0,0.0]]],"stroke":[[4,0],[5,0],[3,0],[1,0],[6,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7861616450605235840,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[1231.5767664977302,450.00000000000233]],[1,[1343.3813269975649,420.0420583039525]],[2,[1343.5382907247954,439.792314581573]],[3,[1268.8972745734186,460.00000000000233]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[3,3],[1,1]],"end_point":[[4,1],[1,2],[2,3],[3,4]],"handle_primary":[[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[1,0],[2,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8463468388280418154,{"inputs":[{"Node":{"node_id":9993538712344947860,"output_index":0}},{"Value":{"tagged_value":{"F64":74.5472},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15670426414376277308,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.5,0.0]],[2,[1.0,0.5]],[4,[0.0,0.5]],[3,[0.5,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[1,2],[4,1],[3,4],[2,3]],"handle_primary":[[4,[0.0,-0.275892388889507]],[1,[0.27589238888950707,0.0]],[2,[0.0,0.27589238888950707]],[3,[-0.275892388889507,0.0]]],"handle_end":[[4,[-0.275892388889507,0.0]],[2,[0.27589238888950707,0.0]],[3,[0.0,0.27589238888950707]],[1,[0.0,-0.275892388889507]]],"stroke":[[3,0],[2,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2292399603649738346,{"inputs":[{"Node":{"node_id":16510804133693080967,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.9127081032507663,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.6216293634586009,-3.518518518518513],"end":[0.4157051295501385,0.32812296023903675]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.9127081032507663,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.6216293634586009,-3.518518518518513],"end":[0.4157051295501385,0.32812296023903675]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4069478660487729695,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[55.822325899541134,88.0419325229343]],[2,[-23.148253406408465,116.21917209054972]],[3,[59.855160808698834,104.19217420861494]],[1,[-22.15328312748764,98.9633432080564]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[2,2],[1,1]],"end_point":[[4,1],[1,2],[2,3],[3,4]],"handle_primary":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[2,[-27.645547736903644,17.139482007743737]],[3,[0.0,0.0]],[4,[24.844120782255654,5.22590107758802]],[1,[0.0,0.0]]],"stroke":[[2,0],[1,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5326013268137833446,{"inputs":[{"Node":{"node_id":12875121980058869686,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.48235294,"green":0.69803923,"blue":0.69411767,"alpha":1.0}],[0.5005297191519419,{"red":0.48235294,"green":0.69803923,"blue":0.69411767,"alpha":1.0}],[0.8104119804726813,{"red":0.5686275,"green":0.69411767,"blue":0.5372549,"alpha":0.87890625}],[1.0,{"red":0.3529412,"green":0.5647059,"blue":0.57254905,"alpha":0.296875}]],"gradient_type":"Radial","start":[0.0015840517590797742,0.9627709247339196],"end":[1.0370671897237005,-1.554312234475219e-14]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.48235294,"green":0.69803923,"blue":0.69411767,"alpha":1.0}],[0.5005297191519419,{"red":0.48235294,"green":0.69803923,"blue":0.69411767,"alpha":1.0}],[0.8104119804726813,{"red":0.5686275,"green":0.69411767,"blue":0.5372549,"alpha":0.87890625}],[1.0,{"red":0.3529412,"green":0.5647059,"blue":0.57254905,"alpha":0.296875}]],"gradient_type":"Radial","start":[0.0015840517590797742,0.9627709247339196],"end":[1.0370671897237005,-1.554312234475219e-14]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12537712543904859919,{"inputs":[{"Node":{"node_id":4968550668755026811,"output_index":0}},{"Node":{"node_id":8508454285877707748,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12469956387875933942,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":2881239077602364410,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13207576193421440093,{"inputs":[{"Node":{"node_id":12930243402848966353,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5686275,"green":0.7411765,"blue":0.654902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5686275,"green":0.7411765,"blue":0.654902,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5574499968250848265,{"inputs":[{"Node":{"node_id":11776939455674933130,"output_index":0}},{"Node":{"node_id":5925268772265373737,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18371793711669837037,{"inputs":[{"Node":{"node_id":7861616450605235840,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.00000000000006]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10742991645899166287,{"inputs":[{"Node":{"node_id":1104068854328504126,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-298.5640646053887,-114.0000000000026]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999996,0.9999999999999996]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18085100003956405261,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"delta":[[18,[568.2339832275112,446.0155371619765]],[2,[476.9512618480758,444.1904085078117]],[3,[480.5925925925926,440.2962962962962]],[16,[530.3703703703702,486.71604938271594]],[11,[531.5890484844431,432.90541944395505]],[10,[524.0493827160495,487.1111111111112]],[1,[510.41975308641986,500.1481481481481]],[17,[565.2914244954804,444.3855996237166]],[5,[497.38271604938257,447.60493827160496]],[9,[505.311372421164,416.4524664944526]],[6,[499.77650172698026,445.9388618767647]],[7,[515.1604938271604,486.716049382716]],[12,[533.8924329970387,433.46495092641567]],[14,[552.9705625612692,418.19081042008474]],[8,[502.0960349862431,417.9179038759178]],[4,[511.55555555555554,490.2222222222222]],[19,[530.7654320987656,499.55555555555566]],[13,[526.0246913580248,490.07407407407413]],[15,[556.7578325004595,420.13017723423656]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"start_point":[[19,19],[14,14],[15,15],[10,10],[18,18],[9,9],[11,11],[17,17],[6,6],[13,13],[1,1],[12,12],[7,7],[2,2],[3,3],[16,16],[5,5],[8,8],[4,4]],"end_point":[[15,16],[8,9],[4,5],[2,3],[7,8],[18,19],[13,14],[16,17],[17,18],[3,4],[19,1],[10,11],[14,15],[1,2],[9,10],[11,12],[5,6],[6,7],[12,13]],"handle_primary":[[6,[3.9272019767233246,4.629039357803151]],[12,[-5.082537215847424,18.7049831985629]],[8,[-8.936088730151937,-20.93774746663439]],[3,[21.32824309569804,17.329197515254634]],[18,[-19.30865594294653,18.299752742610902]],[13,[0.0,0.0]],[10,[0.0,0.0]],[7,[0.0,0.0]],[9,[11.197015798182122,18.39034937970939]],[1,[-9.283950617284065,-12.246913580246884]],[2,[-17.16805625160663,-20.28383937076643]],[11,[7.784237194372736,-22.222909722529664]],[14,[15.260998855532309,-21.888591759537466]],[15,[-11.459519915000214,23.15277176924241]],[5,[-10.016557406305251,-15.024836109457851]],[16,[0.0,0.0]],[17,[27.324497401397252,-21.15032331824051]],[19,[-1.5204271954055455,4.429070525747022]],[4,[0.0,0.0]]],"handle_end":[[7,[18.59187624528363,43.5617887769169]],[5,[-12.032856371187677,-14.183269935989983]],[11,[5.082537215847424,-18.704983198562843]],[15,[4.54320987654296,-11.851851851852018]],[14,[11.286699158099054,-22.803605349427187]],[13,[-15.260998855532534,21.888591759537743]],[18,[4.54320987654296,-13.23456790123464]],[12,[3.7530864197531177,-16.59259259259261]],[4,[13.03703703703701,19.555555555555543]],[2,[-22.123456790123555,-17.97530864197529]],[19,[2.7053847913285836,3.5688054694122116]],[8,[-11.197015798182008,-18.39034937970939]],[6,[0.7901234567898427,-16.197530864197745]],[3,[-3.111111111111086,-12.0]],[10,[-7.784237194372736,22.22290972252955]],[1,[28.522359190346833,33.698803394714844]],[17,[19.435079545528083,-18.419570542198244]],[9,[0.7901234567898427,-21.135802469135857]],[16,[-28.402535606591755,21.984770746653737]]],"stroke":[[4,0],[14,0],[11,0],[15,0],[3,0],[10,0],[17,0],[1,0],[5,0],[12,0],[7,0],[2,0],[8,0],[13,0],[6,0],[18,0],[16,0],[9,0],[19,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":19}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8612613134760093452,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[839.7114317029974,625.0000000000001]],[4,[933.0127018922192,670.0000000000001]],[3,[802.3909236273086,635.0000000000001]],[1,[933.0127018922192,650.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[4,4],[1,1]],"end_point":[[3,4],[2,3],[1,2],[4,1]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12931264630175648107,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[9,[1231.576766497731,510.0000000000024]],[11,[1492.8203230275508,480.0000000000001]],[5,[261.2435565296994,530.0000000000001]],[6,[298.56406460551034,520.0000000000002]],[7,[298.56406460551045,540.0000000000001]],[1,[1492.820323027551,460.0000000000025]],[2,[1531.2435565296985,470.3]],[4,[261.24355652969956,704.9999999999997]],[10,[1306.2177826491086,530.0000000000023]],[3,[1531.243556529699,704.9999999999997]],[8,[709.0896534380863,649.9999999999999]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"start_point":[[5,5],[7,7],[3,3],[6,6],[9,9],[11,11],[8,8],[4,4],[1,1],[2,2],[10,10]],"end_point":[[11,1],[8,9],[1,2],[4,5],[3,4],[10,11],[9,10],[7,8],[5,6],[6,7],[2,3]],"handle_primary":[[6,[0.0,0.0]],[9,[0.0,0.0]],[7,[0.0,0.0]],[10,[0.0,0.0]],[8,[0.0,0.0]],[3,[0.0,0.0]],[5,[0.0,0.0]],[11,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[5,[0.0,0.0]],[4,[0.0,0.0]],[10,[0.0,0.0]],[6,[0.0,0.0]],[9,[0.0,0.0]],[11,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[8,[0.0,0.0]],[7,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[9,0],[1,0],[6,0],[7,0],[8,0],[10,0],[2,0],[5,0],[3,0],[4,0],[11,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":11}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4757672276235057645,{"inputs":[{"Node":{"node_id":4924169570021915606,"output_index":0}},{"Node":{"node_id":14400993470150734626,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15134939288287905620,{"inputs":[{"Node":{"node_id":8958782938691501404,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10989897386232385465,{"inputs":[{"Node":{"node_id":10507084483235320484,"output_index":0}},{"Node":{"node_id":7339104629465306715,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5540780316862276409,{"inputs":[{"Node":{"node_id":1032659476619711014,"output_index":0}},{"Node":{"node_id":13743495762122910279,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9695624216919732577,{"inputs":[{"Node":{"node_id":1156213189397385283,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16852951849051795674,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[7,[1306.2177826491068,529.9999999999972]],[5,[1343.5382907247958,560.0]],[6,[1343.5382907247958,520.0]],[4,[933.0127018922192,670.0]],[1,[1156.9357503463525,530.0]],[8,[1231.576766497731,510.0000000000022]],[3,[933.0127018922192,650.0]],[2,[1156.9357503463518,590.0]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[3,3],[2,2],[1,1],[8,8],[5,5],[7,7],[6,6],[4,4]],"end_point":[[4,5],[2,3],[7,8],[1,2],[6,7],[8,1],[3,4],[5,6]],"handle_primary":[[2,null],[1,[0.0,0.0]],[4,[0.0,0.0]],[7,[-74.64101615137588,-19.99999999999494]],[8,[0.0,0.0]],[3,[0.0,20.0]],[6,null],[5,null]],"handle_end":[[5,null],[4,null],[2,null],[6,null],[3,null],[8,[0.0,0.0]],[1,null],[7,null]],"stroke":[[5,0],[7,0],[3,0],[2,0],[1,0],[8,0],[6,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14124486712683868036,{"inputs":[{"Node":{"node_id":14449527838292182035,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.44433594,"green":0.7109375,"blue":0.60144055,"alpha":1.0}],[0.31019165912642926,{"red":0.42991638,"green":0.68359375,"blue":0.5723318,"alpha":0.85546875}],[1.0,{"red":0.41487122,"green":0.66796875,"blue":0.5466929,"alpha":0.3515625}]],"gradient_type":"Radial","start":[0.49564744287268736,0.12680209698558276],"end":[0.6983677910772572,0.8876146788990837]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.44433594,"green":0.7109375,"blue":0.60144055,"alpha":1.0}],[0.31019165912642926,{"red":0.42991638,"green":0.68359375,"blue":0.5723318,"alpha":0.85546875}],[1.0,{"red":0.41487122,"green":0.66796875,"blue":0.5466929,"alpha":0.3515625}]],"gradient_type":"Radial","start":[0.49564744287268736,0.12680209698558276],"end":[0.6983677910772572,0.8876146788990837]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11450962621506425680,{"inputs":[{"Node":{"node_id":514222872092587805,"output_index":0}},{"Node":{"node_id":6006052038693767172,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11158238411769751544,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14124486712683868036,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2310170068575553369,{"inputs":[{"Node":{"node_id":3564067978712674849,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.94921875,"green":0.8861847,"blue":0.5710144,"alpha":1.0}],[1.0,{"red":0.6594621,"green":0.859375,"blue":0.62438965,"alpha":1.0}]],"gradient_type":"Radial","start":[0.9615262104062824,0.1999999999999842],"end":[0.047819464216158014,0.809999999999961]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.94921875,"green":0.8861847,"blue":0.5710144,"alpha":1.0}],[1.0,{"red":0.6594621,"green":0.859375,"blue":0.62438965,"alpha":1.0}]],"gradient_type":"Radial","start":[0.9615262104062824,0.1999999999999842],"end":[0.047819464216158014,0.809999999999961]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6868877732348460627,{"inputs":[{"Node":{"node_id":7884283658260267478,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4191887059541031673,{"inputs":[{"Node":{"node_id":4046495708656778502,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13287180494862716983,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[830.3813046840752,527.5]],[3,[811.7210506462309,532.5]],[1,[765.0704155516202,530.0]],[2,[783.7306695894644,525.0]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[1,1],[3,3]],"end_point":[[2,3],[1,2],[3,4]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1396768435017101055,{"inputs":[{"Node":{"node_id":15914878146223026034,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16727310898641763441,{"inputs":[{"Node":{"node_id":13920465562072008593,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.4117647,"green":0.6392157,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.4117647,"green":0.6392157,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9278774434958175105,{"inputs":[{"Node":{"node_id":3927358878935116440,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-298.5640646053914,-74.00000000000011]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999972,0.9999999999999972]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12930243402848966353,{"inputs":[{"Node":{"node_id":7948029953091985757,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[895.6921938163274,315.9999999999998]},"exposed":false}},{"Value":{"tagged_value":{"F64":180.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[373.2050807562376,99.99999999999976]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-1.8801215900696402e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14805036488257720752,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[849.0415587219195,597.5000000000001]],[2,[877.0319397786858,590.0]],[4,[942.3428289111416,582.5]],[3,[895.6921938165302,595.0]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[1,2],[3,4],[2,3]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[1,0],[3,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18011777376689315137,{"inputs":[{"Node":{"node_id":10564228200140683112,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8343201730608263656,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[933.0127018922194,430.0]],[5,[597.1281292110203,439.99999999999994]],[4,[709.0896534380868,470.0]],[2,[933.0127018922194,470.0]],[6,[597.1281292110205,340.0000000000001]],[3,[709.0896534380868,410.0000000000001]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[1,1],[5,5],[4,4],[3,3],[6,6]],"end_point":[[2,3],[5,6],[3,4],[4,5],[1,2],[6,1]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[6,[0.0,0.0]],[4,[0.0,0.0]],[5,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[5,0],[3,0],[2,0],[6,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9935922395919478146,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"delta":[[13,[1334.9135802469134,382.9465020576131]],[3,[1276.181069958848,406.51851851851853]],[10,[1307.9176954732511,360.6913580246913]],[11,[1318.5843621399176,404.93827160493817]],[12,[1330.9629629629628,378.8641975308641]],[16,[1349.7942386831278,385.3168724279836]],[7,[1291.19341563786,379.78600823045264]],[20,[1325.5637860082302,441.9423868312756]],[19,[1353.7448559670786,395.8518518518519]],[15,[1346.7654320987656,379.522633744856]],[4,[1281.3168724279838,402.0411522633745]],[6,[1283.8189300411525,381.6296296296296]],[2,[1309.8491083676272,442.3520804755373]],[9,[1303.5720164609054,369.51440329218104]],[8,[1311.341563786008,420.872427983539]],[18,[1353.2181069958854,390.3209876543211]],[1,[1317.9649443682358,445.9417771681145]],[17,[1331.2263374485594,418.633744855967]],[14,[1320.9547325102878,428.11522633744846]],[5,[1303.7037037037037,419.6872427983538]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"start_point":[[3,3],[20,20],[4,4],[15,15],[10,10],[14,14],[9,9],[7,7],[6,6],[1,1],[17,17],[12,12],[19,19],[5,5],[2,2],[16,16],[11,11],[18,18],[13,13],[8,8]],"end_point":[[17,18],[2,3],[19,20],[18,19],[14,15],[6,7],[5,6],[12,13],[3,4],[20,1],[4,5],[10,11],[7,8],[16,17],[9,10],[15,16],[8,9],[1,2],[13,14],[11,12]],"handle_primary":[[12,[8.691358024691226,-13.168724279835374]],[20,[-0.8876695625660886,2.750800182899013]],[7,[13.958847736626012,18.304526748971227]],[8,[0.0,0.0]],[15,[17.514403292181214,-18.96296296296299]],[9,[-8.427983539094384,-34.502057613168745]],[1,[-5.73075474332677,0.190602104454058]],[17,[0.0,0.0]],[6,[-13.958847736625785,-23.967078189300366]],[3,[-25.9423868312756,-18.304526748971227]],[19,[-17.792694511774243,22.05806648377495]],[13,[-7.506172839506235,20.67489711934155]],[5,[0.0,0.0]],[18,[14.617283950616866,-16.32921810699594]],[4,[11.934313314187648,6.04743230718924]],[14,[0.0,0.0]],[10,[10.930041152263357,24.88888888888891]],[2,[-1.1927104603494172,-1.8387619597050957]],[11,[0.0,0.0]],[16,[-13.168724279835487,17.382716049382793]]],"handle_end":[[10,[0.0,0.0]],[17,[-11.234881916731185,12.550678897970386]],[18,[19.22633744855989,-23.835390946502]],[1,[1.8728852309102424,2.887364730986178]],[3,[-29.366255144032948,-14.880658436213992]],[19,[2.149866795831258,-6.662224576095184]],[7,[0.0,0.0]],[2,[21.160177959832257,14.930277849830986]],[15,[22.902000000470935,-30.23064000062169]],[20,[6.571889866311722,-0.218577847920983]],[12,[7.506172839506235,-20.67489711934155]],[6,[-21.35436745259517,-28.00242524443996]],[5,[8.275699533270199,14.209219953350214]],[11,[-8.691358024691226,13.168724279835374]],[16,[0.0,0.0]],[14,[-16.17829033097064,17.51634441849427]],[13,[0.0,0.0]],[4,[0.0,0.0]],[8,[7.512329871725342,30.753600412376215]],[9,[-11.24897964853426,-25.61514642859032]]],"stroke":[[10,0],[5,0],[18,0],[17,0],[7,0],[11,0],[12,0],[4,0],[1,0],[20,0],[6,0],[19,0],[14,0],[3,0],[16,0],[8,0],[15,0],[9,0],[2,0],[13,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":20}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8073807569018624098,{"inputs":[{"Node":{"node_id":8028812053913481975,"output_index":0}},{"Node":{"node_id":12998832508553378533,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12875121980058869686,{"inputs":[{"Node":{"node_id":13747030364552895864,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14341957170885045113,{"inputs":[{"Node":{"node_id":12469956387875933942,"output_index":0}},{"Node":{"node_id":7952384394377946257,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[514222872092587805,{"inputs":[{"Node":{"node_id":5434119356821575534,"output_index":0}},{"Node":{"node_id":3679103217373457623,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9908869573449854874,{"inputs":[{"Node":{"node_id":16416441286881083283,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17059035448296015006,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[821.0511776651532,440.0000000000001]],[3,[933.0127018922194,470.0]],[2,[821.0511776651531,500.0]],[1,[709.0896534380867,469.99999999999994]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[1,1],[4,4]],"end_point":[[1,2],[3,4],[2,3],[4,1]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[0.0,5.684341886080804e-14]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[2,0],[4,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8028812053913481975,{"inputs":[{"Node":{"node_id":15517065353723874205,"output_index":0}},{"Node":{"node_id":6785205785632793666,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9993538712344947860,{"inputs":[{"Node":{"node_id":15134939288287905620,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.38039216,"green":0.58431375,"blue":0.57254905,"alpha":1.0}],[1.0,{"red":0.38039216,"green":0.58431375,"blue":0.5764706,"alpha":0.0}]],"gradient_type":"Radial","start":[0.9375072552322194,-0.022211489741806645],"end":[0.8621391458239049,0.9748376053312908]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.38039216,"green":0.58431375,"blue":0.57254905,"alpha":1.0}],[1.0,{"red":0.38039216,"green":0.58431375,"blue":0.5764706,"alpha":0.0}]],"gradient_type":"Radial","start":[0.9375072552322194,-0.022211489741806645],"end":[0.8621391458239049,0.9748376053312908]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[456239140723765386,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[0.5,1.0]],[1,[0.5,0.0]],[4,[0.0,0.5]],[2,[1.0,0.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[1,1],[2,2],[4,4]],"end_point":[[1,2],[2,3],[4,1],[3,4]],"handle_primary":[[1,[0.27589238888950707,0.0]],[2,[0.0,0.27589238888950707]],[3,[-0.275892388889507,0.0]],[4,[0.0,-0.275892388889507]]],"handle_end":[[1,[0.0,-0.275892388889507]],[2,[0.27589238888950707,0.0]],[3,[0.0,0.27589238888950707]],[4,[-0.275892388889507,0.0]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2465823993152870948,{"inputs":[{"Node":{"node_id":15898396405528650339,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3778839,"green":0.76171875,"blue":0.72573423,"alpha":1.0}],[1.0,{"red":0.7411765,"green":0.87058824,"blue":0.7372549,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4840260278337376,0.5459259284371654],"end":[-0.00035013139300899,0.5459259284371651]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3778839,"green":0.76171875,"blue":0.72573423,"alpha":1.0}],[1.0,{"red":0.7411765,"green":0.87058824,"blue":0.7372549,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4840260278337376,0.5459259284371654],"end":[-0.00035013139300899,0.5459259284371651]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14161755104759532162,{"inputs":[{"Node":{"node_id":13837327017498431546,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,16.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3021739385836969518,{"inputs":[{"Node":{"node_id":6556170892691431702,"output_index":0}},{"Node":{"node_id":13868917743026516656,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11547499603328872398,{"inputs":[{"Node":{"node_id":8343201730608263656,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6777328619777499144,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1380.8587988003642,430.0]],[4,[1231.5767664977295,450.0]],[3,[1268.8972745734193,460.0000000000024]],[1,[1343.5382907246749,419.99978273075953]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[3,3],[1,1]],"end_point":[[3,4],[1,2],[4,1],[2,3]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[-6.821210263296962e-13,-5.684341886080804e-14]],[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3455270778005546310,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[410.5255888325765,410.0]],[3,[410.5255888325765,450.0000000000001]],[1,[559.8076211353316,449.99999999999994]],[2,[559.7618537735666,489.9877366723752]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[2,2],[4,4]],"end_point":[[4,1],[1,2],[2,3],[3,4]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[0.0,5.684341886080804e-14]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11076863066321508991,{"inputs":[{"Node":{"node_id":8891726805381758817,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5925268772265373737,{"inputs":[{"Node":{"node_id":4105329493214975815,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.49019608,"green":0.7882353,"blue":0.75686276,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.49019608,"green":0.7882353,"blue":0.75686276,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11895211316848895241,{"inputs":[{"Node":{"node_id":10742991645899166287,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5019608,"green":0.72156864,"blue":0.62352943,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5019608,"green":0.72156864,"blue":0.62352943,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7639490284239357347,{"inputs":[{"Node":{"node_id":14805036488257720752,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7259756719760382667,{"inputs":[{"Node":{"node_id":15157035456876170143,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}],[1.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":0.0}]],"gradient_type":"Linear","start":[0.4803107402195895,-0.1138575403671318],"end":[0.41147745365941946,0.9225580029175888]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":1.0}],[1.0,{"red":0.27450982,"green":0.50980395,"blue":0.54509807,"alpha":0.0}]],"gradient_type":"Linear","start":[0.4803107402195895,-0.1138575403671318],"end":[0.41147745365941946,0.9225580029175888]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2036609094647228373,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[2,[1.0,0.5]],[4,[0.0,0.5]],[1,[0.8725092774628217,0.1666676721950458]],[3,[0.5,1.0]],[5,[0.12749341167028605,0.1666646696927025]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[5,5],[3,3],[4,4],[2,2],[1,1]],"end_point":[[5,1],[3,4],[4,5],[2,3],[1,2]],"handle_primary":[[5,null],[3,[-0.275892388889507,0.0]],[2,[0.0,0.27589238888950707]],[4,[0.0,-0.12799231715991943]],[1,[0.07925873631249913,0.08849560350574948]]],"handle_end":[[5,null],[2,[0.27589238888950707,0.0]],[4,[-0.07926033448372466,0.0884959630818129]],[1,[0.0,-0.12799086965193351]],[3,[0.0,0.27589238888950707]]],"stroke":[[4,0],[1,0],[2,0],[3,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14842592386831797498,{"inputs":[{"Node":{"node_id":664587514588499648,"output_index":0}},{"Node":{"node_id":14330881008352607546,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4243146970185091100,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"delta":[[12,[609.0096021947874,496.4609053497942]],[5,[574.0246913580246,440.2962962962963]],[3,[589.8710562414265,497.0754458161865]],[9,[606.0246913580247,486.803840877915]],[10,[607.8683127572016,488.3840877914952]],[13,[609.7997256515774,497.6899862825788]],[14,[650.6666666666667,398.2222222222223]],[11,[615.6378600823045,431.5390946502058]],[2,[533.9259259259258,420.7407407407407]],[15,[615.4183813443072,491.19341563786]],[18,[618.4910836762688,499.9725651577503]],[7,[596.3676268861453,491.9835390946502]],[8,[580.9382716049382,401.9753086419752]],[1,[583.5500685871057,499.53360768175577]],[17,[668.3566529492455,433.2510288065844]],[16,[616.0751917898693,491.077444156548]],[6,[594.4362139917694,493.6515775034293]],[4,[591.18792866941,498.3045267489712]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"start_point":[[15,15],[14,14],[18,18],[9,9],[4,4],[16,16],[11,11],[7,7],[3,3],[10,10],[12,12],[17,17],[1,1],[2,2],[5,5],[6,6],[8,8],[13,13]],"end_point":[[15,16],[9,10],[10,11],[1,2],[8,9],[13,14],[14,15],[16,17],[6,7],[7,8],[17,18],[12,13],[11,12],[2,3],[18,1],[4,5],[3,4],[5,6]],"handle_primary":[[1,[0.0,0.0]],[10,[0.0,0.0]],[4,[0.0,0.0]],[8,[22.10150891632361,44.44444444444463]],[17,[-38.27709190672158,34.5020576131688]],[11,[-3.906721536351256,29.62962962962956]],[13,[0.0,0.0]],[16,[0.0,0.0]],[3,[0.0,0.0]],[12,[0.0,0.0]],[5,[18.392318244170156,23.769547325102906]],[14,[-18.3045267489714,37.31138545953348]],[2,[44.005486968450214,35.16049382716062]],[9,[0.0,0.0]],[15,[0.0,0.0]],[18,[-7.386678859929702,8.10852004267656]],[6,[0.0,0.0]],[7,[0.0,0.0]]],"handle_end":[[4,[21.113854595336193,37.201646090535064]],[9,[0.0,0.0]],[14,null],[16,[-35.29218106995893,26.337448559670804]],[8,null],[3,[0.0,0.0]],[6,[0.0,0.0]],[10,[-6.189300411522709,26.732510288065782]],[15,[0.0,0.0]],[18,[3.2434080170708057,6.03566529492457]],[13,[-23.747599451303245,35.4677640603565]],[11,[0.0,0.0]],[12,[0.0,0.0]],[1,[48.21947873799752,48.855967078189394]],[5,null],[17,null],[2,null],[7,[25.964334705075316,61.47599451303165]]],"stroke":[[6,0],[4,0],[1,0],[14,0],[17,0],[10,0],[12,0],[18,0],[5,0],[7,0],[2,0],[16,0],[15,0],[8,0],[13,0],[9,0],[3,0],[11,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":18}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17965270694495451178,{"inputs":[{"Node":{"node_id":9409313765472227540,"output_index":0}},{"Node":{"node_id":4887570735033124574,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15167880819976070791,{"inputs":[{"Node":{"node_id":4898866541060902381,"output_index":0}},{"Value":{"tagged_value":{"F64":33.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16069762220015310717,{"inputs":[{"Node":{"node_id":16398743435291795904,"output_index":0}},{"Node":{"node_id":14791465604033956302,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16510804133693080967,{"inputs":[{"Node":{"node_id":3966971396176820223,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969996,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2785423879796980286,{"inputs":[{"Node":{"node_id":11634802583144606404,"output_index":0}},{"Node":{"node_id":16591255610014418910,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2921219300441868542,{"inputs":[{"Node":{"node_id":11506204916439878896,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.49019608,"green":0.69411767,"blue":0.627451,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.49019608,"green":0.69411767,"blue":0.627451,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7067047867039575315,{"inputs":[{"Node":{"node_id":15261165353096835967,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969996,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5261200785298607501,{"inputs":[{"Node":{"node_id":2465823993152870948,"output_index":0}},{"Value":{"tagged_value":{"BlendMode":"Lighten"},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::BlendModeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12554549497938935061,{"inputs":[{"Node":{"node_id":14055195208113082127,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[833.274364370262,-33.56362500933909]},"exposed":false}},{"Value":{"tagged_value":{"F64":180.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.8,-0.6]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[7.016709298534876e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8256712316698018135,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[1268.897274573418,500.00000000000006]],[4,[1343.5382907247958,520.0]],[3,[1343.538290724796,579.9999999999998]],[2,[1268.8972745734184,559.9999999999999]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1]],"end_point":[[2,3],[3,4],[4,1],[1,2]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[3,0],[2,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18046677540207938977,{"inputs":[{"Node":{"node_id":2189393878093040029,"output_index":0}},{"Node":{"node_id":2292399603649738346,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4134257789770357215,{"inputs":[{"Node":{"node_id":9640215309187299519,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-298.5640646053945,-71.86019325256757]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999948,0.9999999999999948]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15914878146223026034,{"inputs":[{"Node":{"node_id":4069478660487729695,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[39.06014871394696,-80.31594690033606]},"exposed":false}},{"Value":{"tagged_value":{"F64":-25.25081979598717},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.7021527212517815,1.4014617956106905]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-40.69754959903115,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2640491057355360805,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[5,[410.5255888325765,450.0000000000001]],[8,[709.0896534380868,470.00000000000006]],[1,[783.7306695894642,510.0]],[7,[671.7691453623979,459.99999999999994]],[4,[410.5255888325763,460.0]],[3,[559.8076211353318,500.00000000000017]],[6,[559.7618537735666,489.9877366723752]],[2,[653.1088913245535,475.0]],[10,[933.0127018922194,470.0]],[9,[821.0511776651531,440.00000000000006]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[7,7],[8,8],[3,3],[2,2],[5,5],[6,6],[9,9],[10,10],[4,4],[1,1]],"end_point":[[7,8],[6,7],[3,4],[2,3],[10,1],[8,9],[4,5],[9,10],[1,2],[5,6]],"handle_primary":[[5,null],[1,null],[4,[0.0,0.0]],[3,[-149.2820323027555,-40.00000000000017]],[2,null],[8,[0.0,0.0]],[9,[0.0,0.0]],[10,[0.0,0.0]],[6,null],[7,[37.32050807568885,10.000000000000114]]],"handle_end":[[10,null],[3,null],[1,null],[9,[0.0,0.0]],[6,null],[7,null],[4,null],[2,null],[5,null],[8,[0.0,0.0]]],"stroke":[[1,0],[6,0],[8,0],[4,0],[5,0],[10,0],[2,0],[7,0],[9,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3680957604830907751,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"remove":[],"delta":[[2,[1304.6986739826243,420.69684499314127]],[14,[1313.0096021947877,442.29355281207137]],[12,[1360.3292181069958,385.0534979423868]],[4,[1311.6049382716046,423.2427983539094]],[5,[1301.1577503429353,350.639231824417]],[1,[1304.1133973479657,421.12604785855825]],[15,[1264.5486968449932,395.9981710105167]],[3,[1278.0100594421583,366.7343392775492]],[7,[1336.2743484224964,374.25514403292175]],[8,[1319.9451303155006,428.8614540466391]],[9,[1321.5253772290812,429.56378600823047]],[11,[1325.124828532236,431.14403292181055]],[6,[1317.750342935528,414.37585733882025]],[13,[1322.315500685871,442.4691358024692]],[10,[1354.710562414266,375.5720164609054]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"remove":[],"start_point":[[12,12],[4,4],[10,10],[7,7],[3,3],[15,15],[8,8],[2,2],[1,1],[5,5],[9,9],[11,11],[14,14],[13,13],[6,6]],"end_point":[[7,8],[10,11],[3,4],[1,2],[8,9],[11,12],[13,14],[2,3],[6,7],[12,13],[4,5],[9,10],[15,1],[14,15],[5,6]],"handle_primary":[[6,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[11,[6.190926179952385,-9.64405832444237]],[9,[0.0,0.0]],[15,[30.375857338820197,15.10013717421117]],[12,[-18.78737997256485,20.455418381344316]],[13,[-1.0925163846973192,0.8063811410860922]],[5,[15.978052126200282,30.375857338820197]],[7,[-16.182898948331285,35.4677640603565]],[14,[-1.4013919408635047,-1.0754868383370422]],[3,[22.884316415180592,29.146776406035656]],[1,[0.0,0.0]],[10,[-22.650205761316556,26.60082304526742]],[8,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[7,[0.0,0.0]],[10,null],[11,[-18.34842249657072,19.13854595336079]],[5,[0.0,0.0]],[12,[1.2603823499284772,-0.9302822106615168]],[13,[0.8337588052027058,0.639861408644208]],[8,[0.0,0.0]],[15,[0.0,0.0]],[9,[-20.894375857338673,18.52400548696835]],[2,[26.044810242340873,43.48605395518973]],[6,[-20.484682213077576,38.013717421124625]],[14,[36.34567901234527,22.650205761316897]],[4,[16.153635116598025,62.683127572016474]]],"stroke":[[5,0],[15,0],[13,0],[8,0],[2,0],[7,0],[9,0],[1,0],[12,0],[6,0],[11,0],[10,0],[14,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":15}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7910743362843097140,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[10,[261.2435565298214,580.0]],[2,[121.29165124598823,557.5000000000001]],[11,[18.66025403784454,515.0]],[5,[177.2724133595217,587.5]],[7,[93.30127018922188,590.0]],[9,[326.55444566227675,562.5]],[6,[130.62177826491063,599.9999999999999]],[1,[-9.33012701892199,592.5]],[8,[261.24355652982126,545.0]],[3,[83.97114317030001,547.5]],[4,[55.98076211353338,555.0000000000001]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[4,4],[7,7],[8,8],[5,5],[2,2],[6,6],[1,1],[3,3],[9,9],[10,10]],"end_point":[[3,4],[4,5],[10,11],[9,10],[8,9],[5,6],[2,3],[1,2],[6,7],[7,8]],"handle_primary":[[5,[0.0,0.0]],[10,[0.0,0.0]],[9,[0.0,0.0]],[4,[0.0,0.0]],[8,[0.0,0.0]],[6,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[7,[0.0,0.0]]],"handle_end":[[8,[0.0,0.0]],[7,[0.0,0.0]],[5,[0.0,0.0]],[9,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]],[10,[0.0,0.0]],[6,[0.0,0.0]]],"stroke":[[5,0],[2,0],[10,0],[7,0],[3,0],[1,0],[9,0],[4,0],[6,0],[8,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17887542695709892422,{"inputs":[{"Node":{"node_id":14842592386831797498,"output_index":0}},{"Node":{"node_id":7259756719760382667,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10564228200140683112,{"inputs":[{"Node":{"node_id":13001069903842109798,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-140.23409378379097,-66.17529531267506]},"exposed":false}},{"Value":{"tagged_value":{"F64":-66.17233335779959},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[61.12160376625298,24.813625019997943]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-31.95064812348834,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11634445349252640936,{"inputs":[{"Node":{"node_id":2032185045476767535,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[708.5896534382083,269.5]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,0.267949192432]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-1.8801215900696402e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3966971396176820223,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[6,[1044.9742261192855,480.0]],[4,[615.7883832488646,605.0000000000001]],[3,[783.7306695894646,560.0]],[5,[597.1281292110198,599.9999999999999]],[1,[1156.9357503463468,509.9999999999987]],[2,[877.0319397786863,584.9999999999998]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[4,4],[1,1],[6,6],[3,3],[5,5]],"end_point":[[4,5],[3,4],[5,6],[2,3],[6,1],[1,2]],"handle_primary":[[5,[447.84609690826574,-119.99999999999989]],[3,null],[6,[0.0,0.0]],[4,null],[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[5,null],[2,null],[6,[0.0,0.0]],[1,[0.0,0.0]],[3,null],[4,null]],"stroke":[[1,0],[6,0],[2,0],[5,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2900504420179573771,{"inputs":[{"Node":{"node_id":3185536512640676801,"output_index":0}},{"Node":{"node_id":10852750245702849075,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2843751023378786714,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"delta":[[3,[480.5925925925926,440.2962962962962]],[14,[552.9705625612692,418.19081042008474]],[4,[511.55555555555554,490.2222222222222]],[9,[505.311372421164,416.4524664944526]],[15,[556.7578325004595,420.13017723423656]],[18,[568.2339832275112,446.0155371619765]],[5,[497.38271604938257,447.60493827160496]],[19,[530.7654320987656,499.55555555555566]],[1,[510.41975308641986,500.1481481481481]],[7,[515.1604938271604,486.716049382716]],[17,[565.2914244954804,444.3855996237166]],[13,[526.0246913580248,490.07407407407413]],[11,[531.5890484844431,432.90541944395505]],[8,[502.0960349862431,417.9179038759178]],[12,[533.8924329970387,433.46495092641567]],[16,[530.3703703703702,486.71604938271594]],[2,[476.9512618480758,444.1904085078117]],[10,[524.0493827160495,487.1111111111112]],[6,[499.77650172698026,445.9388618767647]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"start_point":[[15,15],[14,14],[18,18],[13,13],[5,5],[8,8],[9,9],[6,6],[7,7],[19,19],[17,17],[16,16],[11,11],[3,3],[2,2],[4,4],[12,12],[1,1],[10,10]],"end_point":[[17,18],[12,13],[8,9],[13,14],[5,6],[18,19],[6,7],[14,15],[1,2],[9,10],[15,16],[2,3],[10,11],[3,4],[19,1],[7,8],[11,12],[16,17],[4,5]],"handle_primary":[[17,[27.324497401397252,-21.15032331824051]],[8,[-8.936088730151937,-20.93774746663439]],[6,[3.9272019767233246,4.629039357803151]],[13,[0.0,0.0]],[15,[-11.459519915000214,23.15277176924241]],[5,[-10.016557406305251,-15.024836109457851]],[4,[0.0,0.0]],[9,[11.197015798182122,18.39034937970939]],[12,[-5.082537215847424,18.7049831985629]],[11,[7.784237194372736,-22.222909722529664]],[19,[-1.5204271954055455,4.429070525747022]],[7,[0.0,0.0]],[10,[0.0,0.0]],[16,[0.0,0.0]],[14,[15.260998855532309,-21.888591759537466]],[2,[-17.16805625160663,-20.28383937076643]],[18,[-19.30865594294653,18.299752742610902]],[1,[-9.283950617284065,-12.246913580246884]],[3,[21.32824309569804,17.329197515254634]]],"handle_end":[[13,[-15.260998855532534,21.888591759537743]],[11,[5.082537215847424,-18.704983198562843]],[1,[28.522359190346833,33.698803394714844]],[15,[4.54320987654296,-11.851851851852018]],[16,[-28.402535606591755,21.984770746653737]],[19,[2.7053847913285836,3.5688054694122116]],[3,[-3.111111111111086,-12.0]],[17,[19.435079545528083,-18.419570542198244]],[10,[-7.784237194372736,22.22290972252955]],[18,[4.54320987654296,-13.23456790123464]],[14,[11.286699158099054,-22.803605349427187]],[5,[-12.032856371187677,-14.183269935989983]],[4,[13.03703703703701,19.555555555555543]],[8,[-11.197015798182008,-18.39034937970939]],[6,[0.7901234567898427,-16.197530864197745]],[9,[0.7901234567898427,-21.135802469135857]],[2,[-22.123456790123555,-17.97530864197529]],[7,[18.59187624528363,43.5617887769169]],[12,[3.7530864197531177,-16.59259259259261]]],"stroke":[[4,0],[9,0],[5,0],[18,0],[16,0],[7,0],[15,0],[2,0],[19,0],[8,0],[12,0],[1,0],[17,0],[6,0],[11,0],[14,0],[13,0],[3,0],[10,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":19}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7637119583909417127,{"inputs":[{"Node":{"node_id":4740496570730418920,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8166796652234334001,{"inputs":[{"Node":{"node_id":8034980397175569257,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.47937012,"green":0.73046875,"blue":0.56778514,"alpha":1.0}],[1.0,{"red":0.36862746,"green":0.57254905,"blue":0.45490196,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4830458531002497,0.18799510852727777],"end":[0.5102584056336581,0.7583861422837161]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.47937012,"green":0.73046875,"blue":0.56778514,"alpha":1.0}],[1.0,{"red":0.36862746,"green":0.57254905,"blue":0.45490196,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4830458531002497,0.18799510852727777],"end":[0.5102584056336581,0.7583861422837161]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16591255610014418910,{"inputs":[{"Node":{"node_id":2225749123534781340,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5891705401441266824,{"inputs":[{"Node":{"node_id":5670058004691708784,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17332567356044944766,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1.0,0.0]],[4,[-0.10921713655450987,1.0126086768123077]],[3,[1.0,1.0]],[1,[0.0,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[4,1],[1,2],[2,3],[3,4]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[429913874753911073,{"inputs":[{"Node":{"node_id":11236872744106223256,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.9098039,"blue":0.7764706,"alpha":0.75}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13701442050580061197,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[4,[1380.8587988003635,429.9999999999991]],[1,[1268.897274573418,500.00000000000006]],[3,[1530.14083110324,469.9999999999986]],[2,[1343.5382907247958,520.0000000000001]],[5,[1380.8587988003635,469.9997827307588]],[6,[1380.8587988003635,469.9999999999993]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[2,2],[6,6],[1,1],[5,5],[4,4]],"end_point":[[1,2],[3,4],[4,5],[5,6],[6,1],[2,3]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[5,[0.0,0.0002172692405224552]],[2,[0.0,0.0]],[6,[0.0,0.0]]],"handle_end":[[6,[4.547473508864641e-13,5.684341886080804e-14]],[2,[0.0,0.0]],[4,null],[1,[0.0,0.0]],[5,null],[3,[0.0,0.0]]],"stroke":[[1,0],[4,0],[5,0],[6,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16059265180575745658,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[4,[1082.2947341949744,580.0]],[5,[839.7114317029976,645.0]],[3,[1100.9549882328188,585.0]],[2,[1044.9742261192855,599.9999999999999]],[1,[1194.256258422041,640.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[3,3],[4,4],[1,1]],"end_point":[[1,2],[2,3],[4,5],[3,4]],"handle_primary":[[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[2,0],[4,0],[3,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5882319123081134737,{"inputs":[{"Node":{"node_id":14102693648424950146,"output_index":0}},{"Node":{"node_id":13207576193421440093,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7030585744407664630,{"inputs":[{"Node":{"node_id":13701442050580061197,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-298.5640646053887,-113.99999999999903]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999996,0.9999999999999996]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4740496570730418920,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[261.24355652982155,620.0]],[2,[242.58330249197704,615.0]],[1,[279.9038105676662,605.0000000000001]],[4,[298.56406460551034,610.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[1,1],[2,2]],"end_point":[[2,3],[4,1],[1,2],[3,4]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[2,0],[4,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10651614176902312108,{"inputs":[{"Node":{"node_id":4134257789770357215,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.41568628,"green":0.6313726,"blue":0.6039216,"alpha":1.0}],[0.869076264787314,{"red":0.46666667,"green":0.69803923,"blue":0.6313726,"alpha":1.0}],[0.9670173672287944,{"red":0.39215687,"green":0.6117647,"blue":0.6,"alpha":1.0}],[1.0,{"red":0.37254903,"green":0.5647059,"blue":0.5529412,"alpha":1.0}]],"gradient_type":"Radial","start":[0.004591093221745557,0.9549938856995572],"end":[1.0010898078090742,0.23229219555707512]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.41568628,"green":0.6313726,"blue":0.6039216,"alpha":1.0}],[0.869076264787314,{"red":0.46666667,"green":0.69803923,"blue":0.6313726,"alpha":1.0}],[0.9670173672287944,{"red":0.39215687,"green":0.6117647,"blue":0.6,"alpha":1.0}],[1.0,{"red":0.37254903,"green":0.5647059,"blue":0.5529412,"alpha":1.0}]],"gradient_type":"Radial","start":[0.004591093221745557,0.9549938856995572],"end":[1.0010898078090742,0.23229219555707512]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18431382379595272672,{"inputs":[{"Node":{"node_id":10989897386232385465,"output_index":0}},{"Node":{"node_id":4191887059541031673,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13609749019463823009,{"inputs":[{"Node":{"node_id":2062662104423219162,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.34901962,"green":0.5647059,"blue":0.5686275,"alpha":1.0}],[1.0,{"red":0.34901962,"green":0.5647059,"blue":0.5686275,"alpha":0.0}]],"gradient_type":"Linear","start":[0.6190188337031772,0.2673182752249348],"end":[0.4910887633661796,0.9800526827918484]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.34901962,"green":0.5647059,"blue":0.5686275,"alpha":1.0}],[1.0,{"red":0.34901962,"green":0.5647059,"blue":0.5686275,"alpha":0.0}]],"gradient_type":"Linear","start":[0.6190188337031772,0.2673182752249348],"end":[0.4910887633661796,0.9800526827918484]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4847316728405535983,{"inputs":[{"Node":{"node_id":11579925754926059876,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5686275,"green":0.7411765,"blue":0.654902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5686275,"green":0.7411765,"blue":0.654902,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10431241258085047322,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[4,[709.0896534380863,630.0]],[2,[597.1281292110192,559.9999999999998]],[1,[298.56406460551034,479.99999999999983]],[6,[298.56406460551045,540.0000000000001]],[5,[709.0896534380863,649.9999999999999]],[3,[597.1281292110202,599.9999999999999]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[4,4],[3,3],[1,1],[5,5],[6,6],[2,2]],"end_point":[[4,5],[6,1],[1,2],[3,4],[5,6],[2,3]],"handle_primary":[[6,[0.0,0.0]],[3,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[3,0],[6,0],[1,0],[5,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5346759588580719138,{"inputs":[{"Node":{"node_id":57904581517036791,"output_index":0}},{"Node":{"node_id":16244305414728361140,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8508454285877707748,{"inputs":[{"Node":{"node_id":9908869573449854874,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5137255,"green":0.7294118,"blue":0.68235296,"alpha":1.0}],[1.0,{"red":0.49019608,"green":0.7882353,"blue":0.75686276,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0033697141397510677,0.6230645063687077],"end":[0.058070316242295306,1.09924019568288]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5137255,"green":0.7294118,"blue":0.68235296,"alpha":1.0}],[1.0,{"red":0.49019608,"green":0.7882353,"blue":0.75686276,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0033697141397510677,0.6230645063687077],"end":[0.058070316242295306,1.09924019568288]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11236872744106223256,{"inputs":[{"Node":{"node_id":9724746185253267560,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,16.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14102693648424950146,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":16847360882244487081,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6142412830271644616,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[1250.2370205355735,424.00000000000006]],[2,[1175.5960043841962,429.0]],[3,[1203.586385440963,436.5]],[1,[1278.2274015923404,401.49999999999994]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[2,3],[1,2],[3,4]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[1,0],[2,0],[3,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[57904581517036791,{"inputs":[{"Node":{"node_id":9393309733761233513,"output_index":0}},{"Node":{"node_id":15300421479077882117,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10852750245702849075,{"inputs":[{"Node":{"node_id":17250040304106119844,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.77254903,"alpha":0.75}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14449710315388146362,{"inputs":[{"Node":{"node_id":7671691070850213967,"output_index":0}},{"Value":{"tagged_value":{"F64":81.1788},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6006052038693767172,{"inputs":[{"Node":{"node_id":4197544064668946479,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16923062582661131268,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[597.1281292110202,399.9999999999999]],[2,[597.1281292110202,409.99999999999994]],[4,[671.769145362398,420.0000000000001]],[3,[653.1088913245534,424.99999999999994]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1]],"end_point":[[1,2],[3,4],[2,3],[4,1]],"handle_primary":[[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[3,0],[2,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8958782938691501404,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[1156.9357503463525,530.0]],[4,[1156.9357503463516,540.0]],[2,[1231.576766497729,510.00000000000233]],[3,[1231.6308657449686,540.0144958496094]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[2,2],[1,1]],"end_point":[[1,2],[3,4],[2,3],[4,1]],"handle_primary":[[3,[-74.69511539861696,-0.014495849609375]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[2,null],[4,[0.0,-2.273736754432321e-13]],[3,null],[1,[0.0,0.0]]],"stroke":[[4,0],[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15478704582542175684,{"inputs":[{"Node":{"node_id":8242413775403456296,"output_index":0}},{"Node":{"node_id":13696921450692276893,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[532055960192543062,{"inputs":[{"Node":{"node_id":326112971739898070,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13942787566051910019,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1.000788022064618,1.0000000000000009]],[1,[0.0,0.0]],[4,[0.0,1.0]],[2,[1.000788022064618,-6.266203653947348e-16]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1]],"end_point":[[4,1],[1,2],[3,4],[2,3]],"handle_primary":[[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[2,0],[4,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13852123721901366011,{"inputs":[{"Node":{"node_id":456239140723765386,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[819.6941583984747,299.6363877833991]},"exposed":false}},{"Value":{"tagged_value":{"F64":180.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[221.20900992053447,59.27277556679853]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-1.8801215900696402e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7171713123860587892,{"inputs":[{"Node":{"node_id":18431382379595272672,"output_index":0}},{"Node":{"node_id":9798215931018813676,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7884283658260267478,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1250.2370205355735,545.0000000000001]],[2,[1231.5767664977295,540.0000000000001]],[1,[1184.9261314031187,552.5]],[4,[1203.5863854409629,557.4999999999999]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[3,3],[1,1],[4,4]],"end_point":[[1,2],[4,1],[3,4],[2,3]],"handle_primary":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16564941800301062922,{"inputs":[{"Node":{"node_id":18371793711669837037,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.03}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":0.03}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3616319631707471648,{"inputs":[{"Node":{"node_id":12852312236973354891,"output_index":0}},{"Node":{"node_id":16727310898641763441,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1104068854328504126,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[1343.5382907247958,520.0]],[1,[1343.538290724796,580.0000000000001]],[2,[1530.14083110324,530.000000000003]],[3,[1530.14083110324,470.00000000000216]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[1,1],[2,2]],"end_point":[[2,3],[3,4],[1,2],[4,1]],"handle_primary":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[1,0],[3,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13942146309185231085,{"inputs":[{"Node":{"node_id":15166516760575860563,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.36862746,"green":0.57254905,"blue":0.45490196,"alpha":1.0}],[0.2134053325596848,{"red":0.45490196,"green":0.70980394,"blue":0.58431375,"alpha":1.0}],[1.0,{"red":1.0,"green":0.84705883,"blue":0.4627451,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4417705336480124,0.7894513882255817],"end":[0.4000315611112892,0.37243515464306]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.36862746,"green":0.57254905,"blue":0.45490196,"alpha":1.0}],[0.2134053325596848,{"red":0.45490196,"green":0.70980394,"blue":0.58431375,"alpha":1.0}],[1.0,{"red":1.0,"green":0.84705883,"blue":0.4627451,"alpha":1.0}]],"gradient_type":"Linear","start":[0.4417705336480124,0.7894513882255817],"end":[0.4000315611112892,0.37243515464306]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14449527838292182035,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"delta":[[14,[728.493827160494,609.9753086419753]],[16,[726.2990397805214,601.9862825788753]],[6,[695.3964334705074,609.7777777777776]],[7,[692.1871665904588,615.6720012193263]],[8,[701.8247218411828,611.4580094497792]],[4,[682.3593964334707,606.4197530864195]],[5,[662.6063100137173,612.5432098765428]],[3,[699.7421124828531,603.0617283950616]],[18,[725.5089163237311,594.6117969821673]],[13,[734.8148148148149,620.9492455418381]],[2,[667.3909465020577,593.3827160493828]],[9,[709.3552812071331,611.4970278920897]],[1,[699.8518518518516,598.1234567901233]],[10,[709.413808870599,616.4718792866942]],[17,[749.8271604938273,587.4567901234568]],[15,[763.4567901234569,605.6296296296294]],[11,[713.6278006401462,612.5505258344765]],[12,[721.9094650205761,611.3799725651577]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18],"remove":[],"start_point":[[6,6],[10,10],[15,15],[5,5],[4,4],[18,18],[17,17],[11,11],[8,8],[1,1],[9,9],[16,16],[7,7],[13,13],[14,14],[12,12],[2,2],[3,3]],"end_point":[[13,14],[2,3],[17,18],[9,10],[1,2],[11,12],[7,8],[8,9],[12,13],[4,5],[3,4],[14,15],[18,1],[16,17],[6,7],[15,16],[10,11],[5,6]],"handle_primary":[[7,[0.0,0.0]],[15,[-15.992684042066571,-5.647919524462736]],[12,[0.6886396813392821,0.35058484628291353]],[16,[0.0,0.0]],[3,[0.0,0.0]],[9,[1.0398530837227329,0.17152215813985094]],[2,[5.399176954732297,6.584362139917744]],[13,[-3.101966163694442,-4.096936442615402]],[11,[0.9510922553114368,-0.40840938602514143]],[1,[-13.651577503429507,-4.016460905349504]],[5,[0.0,0.0]],[14,[-0.1771601410563335,-2.331086581557088]],[18,[-0.0877914951989851,0.0]],[6,[0.0,0.0]],[8,[0.0,0.0]],[17,[-7.648317030623161,4.388047332817109]],[4,[-6.038618148571572,2.2123832635880945]],[10,[2.71082158531226,-3.275875783141601]]],"handle_end":[[8,[-3.7847889041303233,-0.6242950769699291]],[13,[-0.5267489711934559,1.053497942386798]],[14,[-22.51851851851859,-0.614540466392441]],[9,null],[17,null],[4,[0.0,0.0]],[6,[4.13595488492615,-4.1749733272365575]],[7,[-5.1358024691359105,5.530864197530718]],[15,[2.8483462886752022,1.1315348270080676]],[2,[0.0,0.0]],[1,[8.559670781892919,2.502057613168745]],[10,null],[11,[-1.2025737194898056,-0.6122274594622468]],[5,[-8.69135802469134,3.3580246913579685]],[3,[6.038618148571345,-2.2123832635879808]],[16,[-5.977212841894016,7.381559383908893]],[18,[0.0,0.0]],[12,[-6.90626428898031,-2.3996342021031296]]],"stroke":[[4,0],[3,0],[14,0],[2,0],[17,0],[16,0],[12,0],[10,0],[8,0],[15,0],[13,0],[1,0],[11,0],[5,0],[18,0],[6,0],[7,0],[9,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":18}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13861850149743924125,{"inputs":[{"Node":{"node_id":13442128106088307772,"output_index":0}},{"Node":{"node_id":5891705401441266824,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4398598693761352299,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[709.0896534380867,469.99999999999994]],[4,[821.0511776651532,440.0000000000001]],[2,[821.0511776651531,500.0]],[3,[933.0127018922194,470.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[1,1],[3,3]],"end_point":[[3,4],[1,2],[2,3],[4,1]],"handle_primary":[[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[0.0,5.684341886080804e-14]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[3,0],[1,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16732345645494316637,{"inputs":[{"Node":{"node_id":11450962621506425680,"output_index":0}},{"Node":{"node_id":7637119583909417127,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[938033825024582130,{"inputs":[{"Node":{"node_id":10477328336261010694,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5019608,"green":0.72156864,"blue":0.70980394,"alpha":1.0}],[1.0,{"red":0.5019608,"green":0.72156864,"blue":0.70980394,"alpha":0.0}]],"gradient_type":"Linear","start":[0.44995556068938913,0.40889389103747775],"end":[0.42763248011625454,0.6979899795516591]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5019608,"green":0.72156864,"blue":0.70980394,"alpha":1.0}],[1.0,{"red":0.5019608,"green":0.72156864,"blue":0.70980394,"alpha":0.0}]],"gradient_type":"Linear","start":[0.44995556068938913,0.40889389103747775],"end":[0.42763248011625454,0.6979899795516591]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12019361655085452072,{"inputs":[{"Node":{"node_id":2036609094647228373,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[1080.8351529382842,378.98352292316827]},"exposed":false}},{"Value":{"tagged_value":{"F64":180.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[221.0038859407525,220.57244110912933]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-7.003011245448756e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[585709295659496998,{"inputs":[{"Node":{"node_id":11990662272042254522,"output_index":0}},{"Node":{"node_id":12331680982485935376,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15347111149235590492,{"inputs":[{"Node":{"node_id":2209276411833629008,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[1080.8351529382842,378.9835229231682]},"exposed":false}},{"Value":{"tagged_value":{"F64":180.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[221.0038859407525,220.57244110912933]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-7.003011245448756e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14752203606937854133,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[597.1281292110197,559.9999999999997]],[4,[1044.9742261192855,480.0]],[1,[597.1281292110193,599.9999999999997]],[3,[1044.9742261192855,439.99999999999994]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[4,4],[2,2]],"end_point":[[1,2],[4,1],[2,3],[3,4]],"handle_primary":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[3,0],[2,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10849502918952703647,{"inputs":[{"Node":{"node_id":9663740787529879916,"output_index":0}},{"Node":{"node_id":17433098630591807963,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11506204916439878896,{"inputs":[{"Node":{"node_id":2640491057355360805,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7005645574203740491,{"inputs":[{"Node":{"node_id":17873337220577786871,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969996,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2452294403891427489,{"inputs":[{"Node":{"node_id":9278774434958175105,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.3372549,"green":0.5647059,"blue":0.5529412,"alpha":1.0}]],"gradient_type":"Linear","start":[0.027025122260555538,0.6600000000000135],"end":[0.9916422150126412,0.04000000000001247]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.3372549,"green":0.5647059,"blue":0.5529412,"alpha":1.0}]],"gradient_type":"Linear","start":[0.027025122260555538,0.6600000000000135],"end":[0.9916422150126412,0.04000000000001247]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17638504852426495381,{"inputs":[{"Node":{"node_id":17881728913029763313,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.7363207208514658,0.8045676758185962],"end":[0.02104094774655124,0.19319223963735063]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.972549,"green":0.87058824,"blue":0.6666667,"alpha":1.0}],[1.0,{"red":0.98039216,"green":0.94509804,"blue":0.7058824,"alpha":1.0}]],"gradient_type":"Radial","start":[0.7363207208514658,0.8045676758185962],"end":[0.02104094774655124,0.19319223963735063]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13696921450692276893,{"inputs":[{"Node":{"node_id":729026403095264425,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.9059757781988896,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.8930663763318565,-1.4466906873466163],"end":[1.0003976000579349,0.2239198862330611]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[0.9059757781988896,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":1.0}],[1.0,{"red":0.27058825,"green":0.49411765,"blue":0.5137255,"alpha":0.0}]],"gradient_type":"Radial","start":[0.8930663763318565,-1.4466906873466163],"end":[1.0003976000579349,0.2239198862330611]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[764189229787475993,{"inputs":[{"Node":{"node_id":194878846429432339,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[664587514588499648,{"inputs":[{"Node":{"node_id":5365849201631468915,"output_index":0}},{"Node":{"node_id":16564941800301062922,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4924169570021915606,{"inputs":[{"Node":{"node_id":972153153989181918,"output_index":0}},{"Node":{"node_id":8015732980153557800,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13853529851208960143,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[-39.199465111941095,125.88462054688308]],[3,[29.146213900404632,142.10291541428978]],[4,[-40.648024782723304,138.90840278889075]],[2,[28.09271595801783,129.8163283935271]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[3,3],[4,4]],"end_point":[[3,4],[4,1],[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[-37.794238683127446,8.35487917411865]],[2,[0.0,0.0]],[3,[27.65672806576993,9.286366023261053]],[4,[0.0,0.0]]],"stroke":[[1,0],[3,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16416441286881083283,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1492.8203230275508,509.99999999999994]],[3,[1492.8203230275506,480.00000000000006]],[4,[1306.2177826491068,529.9999999999972]],[1,[1306.217782649107,559.9999999999999]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[4,4],[1,1]],"end_point":[[2,3],[1,2],[3,4],[4,1]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7948029953091985757,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1.0,0.5]],[4,[0.0,0.5]],[1,[0.5,0.0]],[3,[0.5,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[2,2],[3,3],[4,4]],"end_point":[[4,1],[1,2],[3,4],[2,3]],"handle_primary":[[2,[0.0,0.27589238888950707]],[1,[0.27589238888950707,0.0]],[4,[0.0,-0.275892388889507]],[3,[-0.275892388889507,0.0]]],"handle_end":[[4,[-0.275892388889507,0.0]],[3,[0.0,0.27589238888950707]],[2,[0.27589238888950707,0.0]],[1,[0.0,-0.275892388889507]]],"stroke":[[1,0],[4,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9663740787529879916,{"inputs":[{"Node":{"node_id":14633096010607565334,"output_index":0}},{"Node":{"node_id":10651614176902312108,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9323583246068171750,{"inputs":[{"Node":{"node_id":3680957604830907751,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.54901963,"green":0.7372549,"blue":0.654902,"alpha":1.0}],[1.0,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}]],"gradient_type":"Linear","start":[0.481496333638864,0.31809715494984925],"end":[0.5186182401466546,0.7659061379880119]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.54901963,"green":0.7372549,"blue":0.654902,"alpha":1.0}],[1.0,{"red":0.44705883,"green":0.654902,"blue":0.50980395,"alpha":1.0}]],"gradient_type":"Linear","start":[0.481496333638864,0.31809715494984925],"end":[0.5186182401466546,0.7659061379880119]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15876464101883822838,{"inputs":[{"Node":{"node_id":3227544593834141716,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.33333334,"green":0.5647059,"blue":0.5529412,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.33333334,"green":0.5647059,"blue":0.5529412,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5317925967883407701,{"inputs":[{"Node":{"node_id":13853529851208960143,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,2.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[729026403095264425,{"inputs":[{"Node":{"node_id":9392462024456293097,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.24355652969996,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[972153153989181918,{"inputs":[{"Node":{"node_id":15488533792651297821,"output_index":0}},{"Node":{"node_id":9981992739451603109,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12852312236973354891,{"inputs":[{"Node":{"node_id":8181290118694677328,"output_index":0}},{"Node":{"node_id":2921219300441868542,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5017082804473894058,{"inputs":[{"Node":{"node_id":8165914767449151618,"output_index":0}},{"Node":{"node_id":8166796652234334001,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1268775104597510914,{"inputs":[{"Node":{"node_id":13861850149743924125,"output_index":0}},{"Node":{"node_id":18011777376689315137,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9641315149170593327,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"delta":[[12,[1302.7379972565157,443.9615912208504]],[10,[1267.5056400134067,396.48371220183463]],[13,[1312.9218106995884,446.85871056241416]],[6,[1286.7160493827164,380.04205830395256]],[17,[1343.538290724795,449.4814814814814]],[18,[1327.484998303753,444.1384489176408]],[2,[1297.047751590237,432.45710241679353]],[9,[1269.113854595336,397.6954732510288]],[1,[1313.111111111111,440.66666666666663]],[3,[1311.0123456790122,389.1358024691358]],[5,[1280.0,432.79012345679007]],[19,[1353.7580246913572,440.1251028806582]],[4,[1309.432098765432,385.3827160493827]],[16,[1323.5884773662551,445.96633567616453]],[7,[1284.082304526749,376.2304526748971]],[14,[1325.5637860082304,455.6378600823044]],[8,[1270.5185185185182,430.0]],[11,[1259.4489801206926,442.53166286845914]],[20,[1326.2661179698216,436.1481481481482]],[15,[1319.4403292181073,447.7366255144034]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"start_point":[[5,5],[13,13],[8,8],[3,3],[14,14],[16,16],[10,10],[9,9],[4,4],[7,7],[15,15],[20,20],[18,18],[17,17],[2,2],[11,11],[6,6],[19,19],[1,1],[12,12]],"end_point":[[7,8],[14,15],[4,5],[15,16],[9,10],[5,6],[2,3],[8,9],[19,20],[11,12],[17,18],[16,17],[18,19],[1,2],[13,14],[6,7],[12,13],[10,11],[20,1],[3,4]],"handle_primary":[[1,[-1.6922078070856514,-5.274941522376082]],[5,[0.0,-30.09785939152056]],[10,[-0.14088374697121253,12.961503560065635]],[17,[0.17673990847697496,-0.9253757795596016]],[19,[-0.162851070793522,-0.9241759662677964]],[11,[14.00629256044499,3.614815506799175]],[6,null],[8,[-2.1728395061727497,-5.1111111111111995]],[4,[-16.197530864197688,14.61728395061732]],[20,null],[16,[19.75931834024595,4.512540664093933]],[3,null],[18,[26.44161668001243,-3.0566001241026584]],[15,[0.05852766346606586,-1.7558299039780536]],[9,[0.0,0.0]],[7,[-10.798353909464822,37.53086419753089]],[12,[9.763281342613707,0.018425375535628064]],[14,[0.7997581306144639,-0.5767761645364544]],[13,[0.0,0.0]],[2,[-7.975963753017595,-5.0295761250696955]]],"handle_end":[[12,[0.0,0.0]],[14,[-0.022878726643284608,0.6863617992941045]],[9,null],[1,[3.0857646420445235,-0.2303077208630384]],[20,null],[4,null],[13,[-0.8413105648451165,0.6067432917530482]],[10,[-4.337869009581482,-9.544008547471435]],[7,null],[8,[0.0,0.0]],[6,null],[16,null],[3,null],[11,[-11.251577773519555,-0.02123410547835647]],[17,null],[15,null],[19,[1.229080932784882,6.672153635116501]],[2,null],[5,null],[18,null]],"stroke":[[5,0],[4,0],[16,0],[6,0],[3,0],[19,0],[11,0],[15,0],[2,0],[10,0],[18,0],[20,0],[14,0],[7,0],[9,0],[8,0],[13,0],[1,0],[12,0],[17,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":20}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3927358878935116440,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1082.2947341949805,450.0000000000013]],[4,[1194.2562584220411,420.00000000000006]],[2,[1082.2947341949798,490.0000000000013]],[1,[1194.2562584220414,520.0000000000001]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[2,2],[4,4],[3,3]],"end_point":[[4,1],[1,2],[2,3],[3,4]],"handle_primary":[[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[6.821210263296962e-13,-40.0]]],"handle_end":[[1,null],[3,[0.0,0.0]],[2,null],[4,[0.0,-1.1368683772161605e-13]]],"stroke":[[1,0],[3,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14255588039347536657,{"inputs":[{"Node":{"node_id":18185020559178852986,"output_index":0}},{"Node":{"node_id":5261200785298607501,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9640215309187299519,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[4,[746.4101615137852,657.8601932525711]],[1,[1268.8972745734306,457.8601932525698]],[2,[1194.2562584220475,517.8601932525687]],[5,[1268.8972745734306,517.8601932525701]],[3,[746.4101615137856,637.8601932525706]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[3,3],[1,1],[4,4],[2,2],[5,5]],"end_point":[[1,2],[2,3],[4,5],[3,4],[5,1]],"handle_primary":[[2,[-447.8460969082618,120.00000000000192]],[1,[0.0,0.0]],[4,[0.0,0.0]],[5,[0.0,-60.00000000000029]],[3,[0.0,0.0]]],"handle_end":[[1,null],[5,null],[4,null],[2,null],[3,[0.0,0.0]]],"stroke":[[1,0],[2,0],[4,0],[5,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4101813853952238986,{"inputs":[{"Node":{"node_id":14161755104759532162,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9372549,"green":0.90588236,"blue":0.7764706,"alpha":0.7490196}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8884703330021429739,{"inputs":[{"Node":{"node_id":16732345645494316637,"output_index":0}},{"Node":{"node_id":532055960192543062,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2155997486525176376,{"inputs":[{"Node":{"node_id":15595689026000825531,"output_index":0}},{"Node":{"node_id":7639490284239357347,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13700218159488557234,{"inputs":[{"Node":{"node_id":10181153433637856462,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.4831746395427087,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.49908141270537343,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.5160486374122156,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.65708869278784,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.6729954659505047,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.6899626906573468,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.7291993977919214,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.7440457194104085,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.7588920410288952,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5008896367526079,0.4999999999999998],"end":[1.0,0.5]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.4831746395427087,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.49908141270537343,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.5160486374122156,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.65708869278784,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.6729954659505047,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.6899626906573468,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.7291993977919214,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.7440457194104085,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],[0.7588920410288952,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}]],"gradient_type":"Radial","start":[0.5008896367526079,0.4999999999999998],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8863202447825570192,{"inputs":[{"Node":{"node_id":5017082804473894058,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-299.38891648776223,-111.69072674057747]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0616145921394244,1.0616145921394244]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7156963182187517674,{"inputs":[{"Node":{"node_id":14752203606937854133,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565296996,-63.99999999999977]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[322234583139821148,{"inputs":[{"Node":{"node_id":6589978257209505606,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-63.99999999999994]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11990662272042254522,{"inputs":[{"Node":{"node_id":1147521068928676110,"output_index":0}},{"Node":{"node_id":15167880819976070791,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14633096010607565334,{"inputs":[{"Node":{"node_id":18046677540207938977,"output_index":0}},{"Node":{"node_id":12370676490908282512,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3227544593834141716,{"inputs":[{"Node":{"node_id":8256712316698018135,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-298.5640646053871,-113.9999999999974]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999996,0.9999999999999996]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2183401450260403525,{"inputs":[{"Node":{"node_id":16852951849051795674,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-261.2435565297001,-64.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11429712783984224234,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":12302362769310895852,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9392462024456293097,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[1156.9357503463468,509.9999999999987]],[4,[615.7883832488646,605.0000000000001]],[5,[597.1281292110198,599.9999999999999]],[2,[877.0319397786863,584.9999999999998]],[3,[783.7306695894646,560.0]],[6,[1044.9742261192855,480.0]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[4,4],[1,1],[5,5],[2,2],[3,3],[6,6]],"end_point":[[6,1],[1,2],[3,4],[2,3],[4,5],[5,6]],"handle_primary":[[3,null],[2,[0.0,0.0]],[5,[447.84609690826574,-119.99999999999989]],[6,[0.0,0.0]],[4,null],[1,[0.0,0.0]]],"handle_end":[[4,null],[3,null],[2,null],[5,null],[1,[0.0,0.0]],[6,[0.0,0.0]]],"stroke":[[5,0],[2,0],[3,0],[4,0],[6,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12331680982485935376,{"inputs":[{"Node":{"node_id":2183401450260403525,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.6313726}],[1.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.0}]],"gradient_type":"Linear","start":[0.7293479177394283,-0.000903965337796908],"end":[0.7877909957441462,0.5587258938108439]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.6313726}],[1.0,{"red":0.5882353,"green":0.627451,"blue":0.39607844,"alpha":0.0}]],"gradient_type":"Linear","start":[0.7293479177394283,-0.000903965337796908],"end":[0.7877909957441462,0.5587258938108439]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[12019361655085452072,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7067047867039575315,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17332567356044944766,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11450962621506425680,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16416441286881083283,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4837219841531371489,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15167880819976070791,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15216519480392295991,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3970872207068447290,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4847316728405535983,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4243146970185091100,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4134257789770357215,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2510483139353274965,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13531127678140037818,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8884703330021429739,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7671691070850213967,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2077983679740571162,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11506204916439878896,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17873337220577786871,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11990662272042254522,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15478704582542175684,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18011777376689315137,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[70804263053697201,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12931264630175648107,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10189927996178548902,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7171713123860587892,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9993538712344947860,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15775513677915164685,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6785205785632793666,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9981992739451603109,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9157963288496356916,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9409313765472227540,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[585709295659496998,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12302362769310895852,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4105329493214975815,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15670426414376277308,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2032185045476767535,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-36,216]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5670058004691708784,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6569279146800941123,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17533670083736420411,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7861616450605235840,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3806549994589872867,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,84]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11634445349252640936,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11076863066321508991,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8612613134760093452,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3679103217373457623,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8508454285877707748,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14161755104759532162,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[194878846429432339,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[326112971739898070,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13696921450692276893,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7884283658260267478,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10188337730058049439,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10849502918952703647,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11429712783984224234,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9641315149170593327,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1104068854328504126,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2088390810384907709,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,72]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8256712316698018135,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[57904581517036791,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10917301734480569398,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5891705401441266824,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2225749123534781340,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2785423879796980286,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17887542695709892422,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,126]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7639490284239357347,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3122972215852775755,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17881728913029763313,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15166516760575860563,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10742991645899166287,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12331680982485935376,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13743495762122910279,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16732345645494316637,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7637119583909417127,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11547499603328872398,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15517065353723874205,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[938033825024582130,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6777328619777499144,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10477328336261010694,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14102693648424950146,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11579925754926059876,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7838724497953148309,{"persistent_metadata":{"reference":"Merge","display_name":"Geometric Ripples","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-9,3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13920465562072008593,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13609749019463823009,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[532055960192543062,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2292399603649738346,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11595529463602678384,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7156963182187517674,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16398743435291795904,{"persistent_metadata":{"reference":"Merge","display_name":"Fountain Water","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":31}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2791109467690716388,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1268775104597510914,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11634802583144606404,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2036609094647228373,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8863202447825570192,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4741515246389989284,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10651614176902312108,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3670594928372882885,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17433098630591807963,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8463468388280418154,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16059265180575745658,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4069478660487729695,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6556170892691431702,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13853529851208960143,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18371793711669837037,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9115451226763736660,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18187802220803838247,{"persistent_metadata":{"reference":"Blend Mode","display_name":"Blend Mode","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Blend Mode","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13852123721901366011,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2310170068575553369,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14791465604033956302,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4101813853952238986,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15134939288287905620,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13861850149743924125,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12683405703338263457,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4398598693761352299,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2843751023378786714,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14330881008352607546,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8958782938691501404,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18128923159828618806,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2183401450260403525,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10810157408196882043,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16727310898641763441,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7910743362843097140,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14805036488257720752,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13837327017498431546,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5317925967883407701,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4197544064668946479,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12998832508553378533,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15488533792651297821,{"persistent_metadata":{"reference":"Merge","display_name":"Structure Reflection","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9640215309187299519,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13942146309185231085,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5925268772265373737,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8242413775403456296,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2155997486525176376,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,6]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15898396405528650339,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1108089904278882840,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8073807569018624098,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9138781233934614517,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9771562518763748677,{"persistent_metadata":{"reference":"Merge","display_name":"Plant (Upper Left)","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":39}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5365849201631468915,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15261165353096835967,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6821938959315178556,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1229809699395562135,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12172015233077238737,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14752203606937854133,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17785019773455930267,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13207576193421440093,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[322234583139821148,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9798215931018813676,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18046677540207938977,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16923062582661131268,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12370676490908282512,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2209276411833629008,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14234384001010789008,{"persistent_metadata":{"reference":"Merge","display_name":"Plant (Lower Left)","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":9}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17965270694495451178,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,96]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11895211316848895241,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11479492521093639512,{"persistent_metadata":{"reference":"Blend Mode","display_name":"Blend Mode","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Blend Mode","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6589978257209505606,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8343201730608263656,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9724746185253267560,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3966971396176820223,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6142412830271644616,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3680957604830907751,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9392462024456293097,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7030585744407664630,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7799679303995308634,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15300421479077882117,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8165914767449151618,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2900504420179573771,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10564228200140683112,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14400993470150734626,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3616319631707471648,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9684750473849891261,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15347111149235590492,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2465823993152870948,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2921219300441868542,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12360435709959435360,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8181290118694677328,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2062662104423219162,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4046495708656778502,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3014633976566537110,{"persistent_metadata":{"reference":"Merge","display_name":"Boolean Cut","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5882319123081134737,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,189]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3564067978712674849,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14019233912018234740,{"persistent_metadata":{"reference":"Merge","display_name":"Structure","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":27}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8166796652234334001,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9695624216919732577,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14633096010607565334,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16793555741218543212,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4757672276235057645,{"persistent_metadata":{"reference":"Merge","display_name":"Plant (Right)","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":9}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4887570735033124574,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1490537476612110327,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9150078008481575131,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12469956387875933942,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17250040304106119844,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13946577152348504742,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10181153433637856462,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[429913874753911073,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4323461535289334196,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8015732980153557800,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13868917743026516656,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1147521068928676110,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11221222899304956410,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17638504852426495381,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9663740787529879916,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2189393878093040029,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9226731772122225003,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[764189229787475993,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13287180494862716983,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16847360882244487081,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15723520455917422372,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5574499968250848265,{"persistent_metadata":{"reference":"Merge","display_name":"Water","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7952384394377946257,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2640491057355360805,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14483299526002574058,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16852951849051795674,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[514222872092587805,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8028812053913481975,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12875121980058869686,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14842592386831797498,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1831743139584171612,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16229837691656808412,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5326013268137833446,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3455270778005546310,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1032659476619711014,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16244305414728361140,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11490835759023283071,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10779665858841986661,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14055195208113082127,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,48]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16261620049358949344,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14449710315388146362,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[456239140723765386,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1396768435017101055,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18185020559178852986,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[729026403095264425,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3185536512640676801,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13001069903842109798,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3021739385836969518,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4898866541060902381,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4740496570730418920,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9393309733761233513,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7005645574203740491,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9210109719406330381,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15595689026000825531,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7339104629465306715,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13442128106088307772,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13700218159488557234,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4968550668755026811,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18085100003956405261,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12548387328300782726,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5346759588580719138,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9935922395919478146,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10989897386232385465,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12930243402848966353,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14341957170885045113,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3227544593834141716,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14255588039347536657,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,250]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12554549497938935061,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5261200785298607501,{"persistent_metadata":{"reference":"Blend Mode","display_name":"Blend Mode","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Blend Mode","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5540780316862276409,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7340659059180155803,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-44,219]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15914878146223026034,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10852750245702849075,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16510804133693080967,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18431382379595272672,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9666682009015049330,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4191887059541031673,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8891726805381758817,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15157035456876170143,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2881239077602364410,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11158238411769751544,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13942787566051910019,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2058192342619930156,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7259756719760382667,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12537712543904859919,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[972153153989181918,{"persistent_metadata":{"reference":"Merge","display_name":"Sphere Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4187349759243468746,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8034980397175569257,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16591255610014418910,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4924169570021915606,{"persistent_metadata":{"reference":"Merge","display_name":"Sphere","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":9}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1658032775659237960,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[183952488591282082,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3927358878935116440,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12852312236973354891,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6868877732348460627,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16564941800301062922,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11236872744106223256,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11860177410232537211,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14202574750104046500,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5017082804473894058,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-22,60]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5258402282444994019,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4884180935153120645,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5448146793323825465,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13701442050580061197,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15876464101883822838,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9323583246068171750,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10431241258085047322,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16069762220015310717,{"persistent_metadata":{"reference":"Merge","display_name":"Fountain Water Ripples","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":87}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2452294403891427489,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9908869573449854874,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[958845362613832240,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14449527838292182035,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15709488322180832347,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","is_integer":true,"unit":" px"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":true,"y":"H","x":"W"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-5,0]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11776939455674933130,{"persistent_metadata":{"reference":"Merge","display_name":"Backdrop Gradient","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13747030364552895864,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13817976820605296433,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17059035448296015006,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1156213189397385283,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10507084483235320484,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6006052038693767172,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14124486712683868036,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7948029953091985757,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5434119356821575534,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[664587514588499648,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16807867745126764195,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9278774434958175105,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3365825508845848745,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[509.0,-409.13666473966714],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1500.0,171.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[],[],[],[],[],[15517065353723874205],[7340659059180155803],[7340659059180155803,13442128106088307772,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[16398743435291795904,4741515246389989284,14255588039347536657,5261200785298607501,2465823993152870948,15898396405528650339,16807867745126764195,18185020559178852986,4847316728405535983,11579925754926059876,15670426414376277308,5574499968250848265,5925268772265373737,4105329493214975815,12931264630175648107,11776939455674933130,9684750473849891261,70804263053697201,13942787566051910019],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[16398743435291795904,4741515246389989284,14255588039347536657,5261200785298607501,2465823993152870948,15898396405528650339,16807867745126764195,18185020559178852986,4847316728405535983,11579925754926059876,15670426414376277308,5574499968250848265,5925268772265373737,4105329493214975815,12931264630175648107,11776939455674933130,9684750473849891261,70804263053697201,13942787566051910019],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412,10507084483235320484,1396768435017101055,15914878146223026034,4069478660487729695,9157963288496356916,1108089904278882840,5317925967883407701,13853529851208960143,10188337730058049439,11076863066321508991,8891726805381758817,17332567356044944766,1268775104597510914,18011777376689315137,10564228200140683112,13001069903842109798,13861850149743924125,5891705401441266824,5670058004691708784],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[13442128106088307772],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412,10507084483235320484,1396768435017101055,15914878146223026034,4069478660487729695,9157963288496356916,1108089904278882840,5317925967883407701,13853529851208960143,10188337730058049439,11076863066321508991,8891726805381758817,17332567356044944766,1268775104597510914,18011777376689315137,10564228200140683112,13001069903842109798],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[13861850149743924125],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412,10507084483235320484,1396768435017101055,15914878146223026034,4069478660487729695,9157963288496356916,1108089904278882840,5317925967883407701,13853529851208960143,10188337730058049439,11076863066321508991,8891726805381758817,17332567356044944766],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[1268775104597510914],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412,10507084483235320484,1396768435017101055,15914878146223026034,4069478660487729695,9157963288496356916,1108089904278882840,5317925967883407701,13853529851208960143],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[10188337730058049439],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412,10507084483235320484,1396768435017101055,15914878146223026034,4069478660487729695],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[9157963288496356916],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502,10989897386232385465,7339104629465306715,16229837691656808412],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[10507084483235320484],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661,18431382379595272672,4191887059541031673,4046495708656778502],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[10989897386232385465],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162,7171713123860587892,9798215931018813676,10779665858841986661],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[18431382379595272672],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7340659059180155803,13531127678140037818,3970872207068447290,2077983679740571162],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[7171713123860587892],[7340659059180155803,7171713123860587892,18431382379595272672,10989897386232385465,10507084483235320484,9157963288496356916,10188337730058049439,1268775104597510914,13861850149743924125,13442128106088307772],[2032185045476767535],[11776939455674933130],[9724746185253267560,6142412830271644616,17250040304106119844,11236872744106223256,3185536512640676801],[11776939455674933130,5574499968250848265],[11776939455674933130,16398743435291795904,5574499968250848265],[16398743435291795904],[]],"selection_redo_history":[]}}},"collapsed":[7838724497953148310,9771562518763748678,14234384001010789009,4757672276235057646,4924169570021915607,15488533792651297822,16398743435291795905,972153153989181919,14019233912018234741,5574499968250848266,11776939455674933131,2032185045476767536,16069762220015310718],"commit_hash":"8d83fa707928a1c54fe10224695a0c4791ab3501","document_ptz":{"pan":[-666.8230997694343,-319.94980900906876],"tilt":0.0,"zoom":1.0,"flip":false},"document_mode":"DesignMode","render_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Isometric":{"y_axis_spacing":20.0,"angle_a":15.0,"angle_b":15.0}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.60784316,"green":0.60784316,"blue":0.60784316,"alpha":0.25},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file diff --git a/demo-artwork/marbled-mandelbrot.graphite b/demo-artwork/marbled-mandelbrot.graphite index 29ae0e688..52765a623 100644 --- a/demo-artwork/marbled-mandelbrot.graphite +++ b/demo-artwork/marbled-mandelbrot.graphite @@ -1 +1 @@ -{"network_interface":{"network":{"exports":[{"Node":{"node_id":12241147352993594415,"output_index":0,"lambda":false}}],"nodes":[[4388711862172196665,{"inputs":[],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_raster_nodes::std_nodes::MandelbrotNode"}},"visible":true,"skip_deduplication":false}],[3606681156406984991,{"inputs":[{"Node":{"node_id":6323350524796370485,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"GradientStops":[[0.3237704918032787,{"red":1.0,"green":0.0,"blue":1.0,"alpha":0.1}],[0.5655737704918032,{"red":0.8901961,"green":0.8117647,"blue":0.39215687,"alpha":1.0}],[0.8155737704918032,{"red":0.0,"green":1.0,"blue":1.0,"alpha":0.5}]]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_raster_nodes::gradient_map::GradientMapNode"}},"visible":true,"skip_deduplication":false}],[6029481207635803402,{"inputs":[{"Node":{"node_id":4388711862172196665,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1000.0,1000.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7624113397561636853,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":3606681156406984991,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[80924370013313595,{"inputs":[{"Node":{"node_id":6029481207635803402,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":0.19607843,"green":0.0,"blue":0.21176471,"alpha":1.0}],[0.12704918032786883,{"red":0.0627451,"green":0.19215687,"blue":0.39607844,"alpha":1.0}],[0.5,{"red":0.8901961,"green":0.8117647,"blue":0.39215687,"alpha":1.0}],[1.0,{"red":0.58431375,"green":0.92941177,"blue":0.92941177,"alpha":0.01}]]},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_raster_nodes::gradient_map::GradientMapNode"}},"visible":true,"skip_deduplication":false}],[6323350524796370485,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":35.0},"exposed":false}},{"Value":{"tagged_value":{"NoiseType":"OpenSimplex2"},"exposed":false}},{"Value":{"tagged_value":{"DomainWarpType":"OpenSimplex2"},"exposed":false}},{"Value":{"tagged_value":{"F64":100.0},"exposed":false}},{"Value":{"tagged_value":{"FractalType":"PingPong"},"exposed":false}},{"Value":{"tagged_value":{"U32":3},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"CellularDistanceFunction":"Hybrid"},"exposed":false}},{"Value":{"tagged_value":{"CellularReturnType":"CellValue"},"exposed":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_raster_nodes::std_nodes::NoisePatternNode"}},"visible":true,"skip_deduplication":false}],[6565638614909771142,{"inputs":[{"Node":{"node_id":7624113397561636853,"output_index":0,"lambda":false}},{"Node":{"node_id":80924370013313595,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12241147352993594415,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":6565638614909771142,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1000.0,1000.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Network":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[7624113397561636853,{"persistent_metadata":{"reference":"Merge","display_name":"Swirly Noise","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3606681156406984991,{"persistent_metadata":{"reference":"Gradient Map","display_name":"Gradient Map","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Image","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Gradient","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Reverse","input_description":""}}],"output_names":["Image"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6323350524796370485,{"persistent_metadata":{"reference":"Noise Pattern","display_name":"Noise Pattern","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacer","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_scale","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_noise_type","input_name":"Noise Type","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_domain_warp_type","input_name":"Domain Warp Type","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_domain_warp_amplitude","input_name":"Domain Warp Amplitude","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_fractal_type","input_name":"Fractal Type","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_fractal_octaves","input_name":"Fractal Octaves","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_fractal_lacunarity","input_name":"Fractal Lacunarity","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_fractal_gain","input_name":"Fractal Gain","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_fractal_weighted_strength","input_name":"Fractal Weighted Strength","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_ping_pong_strength","input_name":"Fractal Ping Pong Strength","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_cellular_distance_function","input_name":"Cellular Distance Function","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_cellular_return_type","input_name":"Cellular Return Type","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_cellular_jitter","input_name":"Cellular Jitter","input_description":"TODO"}}],"output_names":["Image"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[80924370013313595,{"persistent_metadata":{"reference":"Gradient Map","display_name":"Gradient Map","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Image","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Gradient","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Reverse","input_description":""}}],"output_names":["Image"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6029481207635803402,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4388711862172196665,{"persistent_metadata":{"reference":"Mandelbrot","display_name":"Mandelbrot","input_metadata":[],"output_names":["Raster"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12241147352993594415,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":true,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":true,"unit":" px","y":"H"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-8,3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6565638614909771142,{"persistent_metadata":{"reference":"Merge","display_name":"Mandelbrot Set","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-16,6]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[345.0,-187.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1336.0,394.0],"node_graph_top_right":[1468.796875,0.0]},"selection_undo_history":[[12241147352993594415]],"selection_redo_history":[]}}},"collapsed":[],"name":"marbled-mandelbrot.graphite","commit_hash":"f6ffa45a8180183d70a67d3e41249934a8fcacc9","document_ptz":{"pan":[-339.3903349049215,-502.62390663267854],"tilt":0.0,"zoom":4.0,"flip":false},"document_mode":"DesignMode","view_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file +{"network_interface":{"network":{"exports":[{"Node":{"node_id":12241147352993594415,"output_index":0}}],"nodes":[[4388711862172196665,{"inputs":[],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_raster_nodes::std_nodes::MandelbrotNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"FOOTPRINT","inject":""}}],[3606681156406984991,{"inputs":[{"Node":{"node_id":6323350524796370485,"output_index":0}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[0.3237704918032787,{"red":0.23828125,"green":0.0,"blue":0.08377075,"alpha":1.0}],[0.5655737704918032,{"red":0.92578125,"green":0.8676921,"blue":0.5569153,"alpha":1.0}],[0.8155737704918032,{"red":0.17333984,"green":0.625,"blue":0.625,"alpha":1.0}],[1.0,{"red":0.106292725,"green":0.3359375,"blue":0.3359375,"alpha":1.0}]]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_raster_nodes::gradient_map::GradientMapNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6029481207635803402,{"inputs":[{"Node":{"node_id":4388711862172196665,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1000.0,1000.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7624113397561636853,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":3606681156406984991,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[80924370013313595,{"inputs":[{"Node":{"node_id":6029481207635803402,"output_index":0}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":0.28211805,"green":0.0,"blue":0.3046875,"alpha":1.0}],[0.12704918032786883,{"red":0.13647461,"green":0.3989315,"blue":0.8125,"alpha":1.0}],[0.5,{"red":1.0,"green":0.9409449,"blue":0.625,"alpha":1.0}],[1.0,{"red":0.58431375,"green":0.92941177,"blue":0.92941177,"alpha":0.01}]]},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_raster_nodes::gradient_map::GradientMapNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6323350524796370485,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":35.0},"exposed":false}},{"Value":{"tagged_value":{"NoiseType":"OpenSimplex2"},"exposed":false}},{"Value":{"tagged_value":{"DomainWarpType":"OpenSimplex2"},"exposed":false}},{"Value":{"tagged_value":{"F64":100.0},"exposed":false}},{"Value":{"tagged_value":{"FractalType":"PingPong"},"exposed":false}},{"Value":{"tagged_value":{"U32":3},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"CellularDistanceFunction":"Hybrid"},"exposed":false}},{"Value":{"tagged_value":{"CellularReturnType":"CellValue"},"exposed":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_raster_nodes::std_nodes::NoisePatternNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6565638614909771142,{"inputs":[{"Node":{"node_id":7624113397561636853,"output_index":0}},{"Node":{"node_id":80924370013313595,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12241147352993594415,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":6565638614909771142,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1000.0,1000.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Import":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[4388711862172196665,{"persistent_metadata":{"reference":"Mandelbrot","display_name":"Mandelbrot","input_metadata":[],"output_names":["Raster"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6029481207635803402,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3606681156406984991,{"persistent_metadata":{"reference":"Gradient Map","display_name":"Gradient Map","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Image","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Gradient","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Reverse","input_description":""}}],"output_names":["Image"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12241147352993594415,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"W","y":"H","is_integer":true},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-8,3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[80924370013313595,{"persistent_metadata":{"reference":"Gradient Map","display_name":"Gradient Map","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Image","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Gradient","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Reverse","input_description":""}}],"output_names":["Image"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6565638614909771142,{"persistent_metadata":{"reference":"Merge","display_name":"Mandelbrot Set","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-16,6]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7624113397561636853,{"persistent_metadata":{"reference":"Merge","display_name":"Swirly Noise","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6323350524796370485,{"persistent_metadata":{"reference":"Noise Pattern","display_name":"Noise Pattern","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacer","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_scale","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_noise_type","input_name":"Noise Type","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_domain_warp_type","input_name":"Domain Warp Type","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_domain_warp_amplitude","input_name":"Domain Warp Amplitude","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_fractal_type","input_name":"Fractal Type","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_fractal_octaves","input_name":"Fractal Octaves","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_fractal_lacunarity","input_name":"Fractal Lacunarity","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_fractal_gain","input_name":"Fractal Gain","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_fractal_weighted_strength","input_name":"Fractal Weighted Strength","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_ping_pong_strength","input_name":"Fractal Ping Pong Strength","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_cellular_distance_function","input_name":"Cellular Distance Function","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_cellular_return_type","input_name":"Cellular Return Type","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"noise_properties_cellular_jitter","input_name":"Cellular Jitter","input_description":"TODO"}}],"output_names":["Image"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[345.0,-187.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1336.0,394.0],"node_graph_top_right":[1468.796875,0.0]},"selection_undo_history":[[6565638614909771142],[7624113397561636853],[6565638614909771142],[7624113397561636853],[6565638614909771142],[6565638614909771142]],"selection_redo_history":[]}}},"collapsed":[],"commit_hash":"f6ffa45a8180183d70a67d3e41249934a8fcacc9","document_ptz":{"pan":[-339.3903349049215,-502.62390663267854],"tilt":0.0,"zoom":4.0,"flip":false},"document_mode":"DesignMode","render_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file diff --git a/demo-artwork/painted-dreams.graphite b/demo-artwork/painted-dreams.graphite index 8ad53bb8c..f3f4d5da3 100644 --- a/demo-artwork/painted-dreams.graphite +++ b/demo-artwork/painted-dreams.graphite @@ -1 +1 @@ -{"network_interface":{"network":{"exports":[{"Node":{"node_id":392274448837115448,"output_index":0,"lambda":false}}],"nodes":[[13353438235848911576,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[6379137305818664393,18442321214082298093,18118267825025549699,6351696498298648253,17863574903157697896,4691860614575868200,301778328144628917,10625296323957562985,533731991408535384,13357220652574593654,15992617814592812350],"remove":[],"delta":[[6351696498298648253,[646.8148148148149,0.0]],[18442321214082298093,[565.6296296296297,122.96296296296298]],[4691860614575868200,[528.2962962962963,283.8518518518518]],[10625296323957562985,[473.4814814814815,272.5925925925926]],[18118267825025549699,[642.0740740740741,0.0]],[6379137305818664393,[625.4814814814813,0.0]],[17863574903157697896,[606.8148151308641,95.19407372365433]],[13357220652574593654,[574.2222222222222,108.44444444444449]],[533731991408535384,[501.6296296296296,175.40740740740742]],[15992617814592812350,[621.0370370370368,0.0]],[301778328144628917,[493.5149940383244,200.29629629629628]]]},"segments":{"add":[13662059715350867364,3384102572540409881,12035095010819582754,10146665273368938971,318560030360358929,8462655819889292900,3303411878775644985,8661113083384527971,2035327810332855521,11346538709718766144,3710133387837274291],"remove":[],"start_point":[[10146665273368938971,6351696498298648253],[8462655819889292900,4691860614575868200],[3384102572540409881,18442321214082298093],[12035095010819582754,18118267825025549699],[3303411878775644985,301778328144628917],[13662059715350867364,6379137305818664393],[2035327810332855521,533731991408535384],[3710133387837274291,15992617814592812350],[318560030360358929,17863574903157697896],[11346538709718766144,13357220652574593654],[8661113083384527971,10625296323957562985]],"end_point":[[3710133387837274291,6379137305818664393],[13662059715350867364,18442321214082298093],[8661113083384527971,533731991408535384],[3384102572540409881,18118267825025549699],[3303411878775644985,10625296323957562985],[2035327810332855521,13357220652574593654],[11346538709718766144,15992617814592812350],[12035095010819582754,6351696498298648253],[10146665273368938971,17863574903157697896],[318560030360358929,4691860614575868200],[8462655819889292900,301778328144628917]],"handle_primary":[[11346538709718766144,[9.925839724176626,-9.951533978271286]],[318560030360358929,[-46.95465552079859,46.40007297527743]],[3303411878775644985,[0.0,0.0]],[2035327810332855521,[42.96296296296293,-41.7777777777778]],[3384102572540409881,[0.0,0.0]],[8462655819889292900,[0.0,0.0]],[10146665273368938971,[0.0,0.0]],[8661113083384527971,[0.2962962962963047,0.2962962962963047]],[13662059715350867364,[0.0,0.0]],[12035095010819582754,[0.0,0.0]],[3710133387837274291,[0.0,0.0]]],"handle_end":[[11346538709718766144,[1.1377781018271662,63.71555518874077]],[8462655819889292900,[-21.74426522093495,47.99999999999997]],[10146665273368938971,[48.16592595101224,-47.597037061827145]],[12035095010819582754,[0.0,0.0]],[3384102572540409881,[0.5807410754567854,77.36888852918523]],[318560030360358929,[-97.48148148148152,-81.18518518518522]],[13662059715350867364,[68.68148181185177,-54.8859262904691]],[2035327810332855521,[-8.299214014278164,8.32069754812484]],[3303411878775644985,[-6.2222222222222285,-40.59259259259261]],[3710133387837274291,[0.0,0.0]],[8661113083384527971,[-42.34888386913234,41.180638796880466]]],"stroke":[[3384102572540409881,0],[3303411878775644985,0],[12035095010819582754,0],[8661113083384527971,0],[10146665273368938971,0],[2035327810332855521,0],[13662059715350867364,0],[3710133387837274291,0],[11346538709718766144,0],[318560030360358929,0],[8462655819889292900,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":12035095010819582754},{"ty":"Primary","segment":10146665273368938971}],[{"ty":"End","segment":8661113083384527971},{"ty":"Primary","segment":2035327810332855521}],[{"ty":"End","segment":10146665273368938971},{"ty":"Primary","segment":318560030360358929}],[{"ty":"Primary","segment":11346538709718766144},{"ty":"End","segment":2035327810332855521}]],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16671141883125519098,{"inputs":[{"Node":{"node_id":16306737306999003555,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[6445954214067437701,{"inputs":[{"Node":{"node_id":13670206802546093234,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[140396870212231820,{"inputs":[{"Node":{"node_id":18095952297474762348,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5449860184735415958,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[17520941196305861319,6029995238423674441,16590926169549948521,12817219955590128894,4723170318056755559,12317789037775437786,17339925811006567497,4659274885664969740,1541401134848201833,17321098837874422287,11084016020553554647,9729762716079513741,13279221198527484331,7727030009292816503,15701538241214188894],"remove":[],"delta":[[6029995238423674441,[898.0,46.0]],[15701538241214188894,[0.0,0.0]],[11084016020553554647,[655.0,636.0]],[12317789037775437786,[902.0,394.0]],[17321098837874422287,[802.6666666666667,656.4444444444445]],[17520941196305861319,[889.0,0.0]],[4723170318056755559,[923.0,349.0]],[9729762716079513741,[585.0,666.0]],[12817219955590128894,[933.0,273.0]],[1541401134848201833,[886.0,572.0]],[4659274885664969740,[896.0,523.0]],[7727030009292816503,[0.0,768.0]],[16590926169549948521,[869.0,147.0]],[17339925811006567497,[898.0,468.0]],[13279221198527484331,[564.0,768.0]]]},"segments":{"add":[862900208337901235,4806484166818510930,11569179934425192262,9808624553037921371,9730229894941201870,1248401493076165062,8832757535144158913,15056691877609602335,8919277736361106420,16631919016540861133,9314952320711038398,10137845066833192587,14740183693208469558,3307452201570141575,3876401232874291775],"remove":[],"start_point":[[9808624553037921371,12817219955590128894],[862900208337901235,17520941196305861319],[9730229894941201870,4723170318056755559],[15056691877609602335,4659274885664969740],[9314952320711038398,11084016020553554647],[10137845066833192587,9729762716079513741],[16631919016540861133,17321098837874422287],[3307452201570141575,7727030009292816503],[3876401232874291775,15701538241214188894],[11569179934425192262,16590926169549948521],[8919277736361106420,1541401134848201833],[1248401493076165062,12317789037775437786],[4806484166818510930,6029995238423674441],[8832757535144158913,17339925811006567497],[14740183693208469558,13279221198527484331]],"end_point":[[8919277736361106420,17321098837874422287],[15056691877609602335,1541401134848201833],[1248401493076165062,17339925811006567497],[14740183693208469558,7727030009292816503],[9730229894941201870,12317789037775437786],[11569179934425192262,12817219955590128894],[8832757535144158913,4659274885664969740],[16631919016540861133,11084016020553554647],[9808624553037921371,4723170318056755559],[4806484166818510930,16590926169549948521],[3876401232874291775,17520941196305861319],[3307452201570141575,15701538241214188894],[9314952320711038398,9729762716079513741],[862900208337901235,6029995238423674441],[10137845066833192587,13279221198527484331]],"handle_primary":[[3876401232874291775,[0.0,0.0]],[8919277736361106420,[10.458809984597837,40.44073194044492]],[862900208337901235,[0.0,0.0]],[16631919016540861133,[-63.996421719362885,-1.2074796550824587]],[9314952320711038398,[-34.0,-7.0]],[8832757535144158913,[14.888888888888914,4.8888888888888005]],[4806484166818510930,[11.595886737767424,32.210796493798]],[14740183693208469558,[0.0,0.0]],[3307452201570141575,[0.0,0.0]],[9808624553037921371,[18.0,36.0]],[1248401493076165062,[21.0,27.0]],[10137845066833192587,[-19.0,43.0]],[11569179934425192262,[-4.0,51.0]],[9730229894941201870,[-24.00371914417652,11.366922485048674]],[15056691877609602335,[0.0,0.0]]],"handle_end":[[4806484166818510930,[3.365858386031487,-42.91469442190146]],[862900208337901235,[-9.000000000000114,-25.0]],[10137845066833192587,[0.0,0.0]],[3307452201570141575,[0.0,0.0]],[9730229894941201870,[-21.0,-27.0]],[16631919016540861133,[34.0,7.0]],[3876401232874291775,[0.0,0.0]],[9314952320711038398,[19.0,-43.0]],[14740183693208469558,[0.0,0.0]],[15056691877609602335,[-10.0,-38.66666666666663]],[11569179934425192262,[-18.0,-36.0]],[8832757535144158913,[33.33333333333326,-9.666666666666742]],[1248401493076165062,[30.59259259259261,-36.59259259259255]],[9808624553037921371,[28.703703703703695,-13.592592592592496]],[8919277736361106420,[70.66666666666652,1.333333333333485]]],"stroke":[[3307452201570141575,0],[8832757535144158913,0],[11569179934425192262,0],[3876401232874291775,0],[16631919016540861133,0],[15056691877609602335,0],[10137845066833192587,0],[8919277736361106420,0],[9808624553037921371,0],[9314952320711038398,0],[9730229894941201870,0],[1248401493076165062,0],[862900208337901235,0],[4806484166818510930,0],[14740183693208469558,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":14740183693208469558},{"ty":"Primary","segment":3307452201570141575}],[{"ty":"End","segment":10137845066833192587},{"ty":"Primary","segment":14740183693208469558}],[{"ty":"End","segment":15056691877609602335},{"ty":"Primary","segment":8919277736361106420}],[{"ty":"End","segment":8919277736361106420},{"ty":"Primary","segment":16631919016540861133}],[{"ty":"End","segment":11569179934425192262},{"ty":"Primary","segment":9808624553037921371}],[{"ty":"End","segment":9808624553037921371},{"ty":"Primary","segment":9730229894941201870}],[{"ty":"End","segment":9314952320711038398},{"ty":"Primary","segment":10137845066833192587}],[{"ty":"End","segment":3307452201570141575},{"ty":"Primary","segment":3876401232874291775}],[{"ty":"End","segment":862900208337901235},{"ty":"Primary","segment":4806484166818510930}],[{"ty":"End","segment":4806484166818510930},{"ty":"Primary","segment":11569179934425192262}],[{"ty":"End","segment":9730229894941201870},{"ty":"Primary","segment":1248401493076165062}],[{"ty":"End","segment":16631919016540861133},{"ty":"Primary","segment":9314952320711038398}]],"remove_g1_continuous":[[{"ty":"Primary","segment":8832757535144158913},{"ty":"End","segment":1248401493076165062}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12709602171929957216,{"inputs":[{"Node":{"node_id":17753909951719808506,"output_index":0,"lambda":false}},{"Node":{"node_id":12922148192688274227,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16609137733952262762,{"inputs":[{"Node":{"node_id":17397123104674848450,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7855094781869605606,{"inputs":[{"Node":{"node_id":14141479077115894852,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractBack"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8460565235419043665,{"inputs":[{"Node":{"node_id":3079923906392020295,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,412.1]},"exposed":false}},{"Value":{"tagged_value":{"F64":27.6},"exposed":false}},{"Value":{"tagged_value":{"U32":8},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::RepeatNode"}},"visible":true,"skip_deduplication":false}],[6194305264313730032,{"inputs":[{"Node":{"node_id":4560146526699152877,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14950060858756810933,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[9346093213164033195,3249248431686392864,9577388580635291078],"remove":[],"delta":[[3249248431686392864,[1536.0,95.0]],[9346093213164033195,[1211.0,0.0]],[9577388580635291078,[1536.0,0.0]]]},"segments":{"add":[9585086796709645600,13980191878100735848,1147165232046305110],"remove":[],"start_point":[[1147165232046305110,9577388580635291078],[9585086796709645600,9346093213164033195],[13980191878100735848,3249248431686392864]],"end_point":[[9585086796709645600,3249248431686392864],[13980191878100735848,9577388580635291078],[1147165232046305110,9346093213164033195]],"handle_primary":[[13980191878100735848,[4.547473508864641e-13,2.8421709430404014e-14]],[9585086796709645600,[0.0,0.0]],[1147165232046305110,[0.0,0.0]]],"handle_end":[[9585086796709645600,[-281.0,-17.00000000000003]],[1147165232046305110,[0.0,0.0]],[13980191878100735848,[0.0,0.0]]],"stroke":[[9585086796709645600,0],[1147165232046305110,0],[13980191878100735848,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":13980191878100735848},{"ty":"Primary","segment":1147165232046305110}]],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14698962747138962125,{"inputs":[{"Node":{"node_id":17562801632450633291,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18031616785650843168,{"inputs":[{"Node":{"node_id":17952673493105230490,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SolidifyStrokeNode"}},"visible":true,"skip_deduplication":false}],[11196821089257149774,{"inputs":[{"Node":{"node_id":5888633415105234509,"output_index":0,"lambda":false}},{"Node":{"node_id":18031616785650843168,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8359580532088731394,{"inputs":[{"Node":{"node_id":6726954210929537972,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[8269257328703012432,{"inputs":[{"Node":{"node_id":4102754869474520966,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13203761224559198689,{"inputs":[{"Node":{"node_id":4809200889774783438,"output_index":0,"lambda":false}},{"Node":{"node_id":14690269209726153565,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13670206802546093234,{"inputs":[{"Node":{"node_id":17285637344898461972,"output_index":0,"lambda":false}},{"Node":{"node_id":7855094781869605606,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7201841978411396053,{"inputs":[{"Node":{"node_id":4328376070224119511,"output_index":0,"lambda":false}},{"Node":{"node_id":17735408893002232096,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11429506195623419966,{"inputs":[{"Node":{"node_id":11301831865756336526,"output_index":0,"lambda":false}},{"Node":{"node_id":5449860184735415958,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9071802450034150503,{"inputs":[{"Node":{"node_id":9338394475379815879,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[10063704933309776584,{"inputs":[{"Node":{"node_id":13838011362258067867,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":-1.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::MultiplyNode"}},"visible":true,"skip_deduplication":false}],[3608604157153838227,{"inputs":[{"Node":{"node_id":17299978721726771610,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::BoundingBoxNode"}},"visible":true,"skip_deduplication":false}],[12185047359007423618,{"inputs":[{"Node":{"node_id":10080296672372912698,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7018444885869143173,{"inputs":[{"Node":{"node_id":12234961922142600898,"output_index":0,"lambda":false}},{"Node":{"node_id":8426490990601560741,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1001728975241745659,{"inputs":[{"Node":{"node_id":12770183061753030023,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[392274448837115448,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":6787585796949551500,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1536.0,768.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Network":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17562801632450633291,{"inputs":[{"Node":{"node_id":10286817149456341619,"output_index":0,"lambda":false}},{"Node":{"node_id":5449860184735415958,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3750439930725791025,{"inputs":[{"Node":{"node_id":12276520439585231336,"output_index":0,"lambda":false}},{"Node":{"node_id":14228923746783465609,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[682567808439406093,{"inputs":[{"Node":{"node_id":7755499790391969923,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[300.0,50.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":15},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::RepeatNode"}},"visible":true,"skip_deduplication":false}],[17740294143355019755,{"inputs":[{"Node":{"node_id":15301503532602557206,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16759836951269190891,{"inputs":[{"Node":{"node_id":11429506195623419966,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17495267820524300686,{"inputs":[{"Node":{"node_id":13616602029989984195,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[1248.4973005620557,-153.1867628889006]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.2972951295167027},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0000000000000002,1.0000000000000002]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[5.551115123125782e-17,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12234961922142600898,{"inputs":[{"Node":{"node_id":1627123781166851142,"output_index":0,"lambda":false}},{"Node":{"node_id":18351415092709164412,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11095670964487764044,{"inputs":[{"Node":{"node_id":17603523494627491590,"output_index":0,"lambda":false}},{"Node":{"node_id":8359580532088731394,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11301831865756336526,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[3251241957527197760,11100418327549747778,8048619563638005414,1078998931754662073],"remove":[],"delta":[[3251241957527197760,[875.8001811251517,185.6784024477276]],[11100418327549747778,[910.880658436214,243.0946502057613]],[8048619563638005414,[944.0577392578124,302.0703430175781]],[1078998931754662073,[942.0246913580248,264.2962962962963]]]},"segments":{"add":[6165219920202055745,10795897848378052161,3439025775805007707,12551435438068218604],"remove":[],"start_point":[[12551435438068218604,1078998931754662073],[10795897848378052161,11100418327549747778],[6165219920202055745,3251241957527197760],[3439025775805007707,8048619563638005414]],"end_point":[[6165219920202055745,11100418327549747778],[12551435438068218604,3251241957527197760],[10795897848378052161,8048619563638005414],[3439025775805007707,1078998931754662073]],"handle_primary":[[6165219920202055745,[0.0,0.0]],[12551435438068218604,[-14.61728395061732,-27.456790123456813]],[10795897848378052161,[11.46027223334628,13.82427457744465]],[3439025775805007707,[-2.629814161991817e-6,5.151861046215345e-6]]],"handle_end":[[12551435438068218604,[23.33217876876199,5.204454965879364]],[3439025775805007707,[14.61728395061732,27.456790123456813]],[6165219920202055745,[-29.36625514403283,-35.42386831275718]],[10795897848378052161,[-4.732636377154108,-19.33783272951229]]],"stroke":[[10795897848378052161,0],[3439025775805007707,0],[6165219920202055745,0],[12551435438068218604,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":6165219920202055745},{"ty":"Primary","segment":10795897848378052161}],[{"ty":"End","segment":3439025775805007707},{"ty":"Primary","segment":12551435438068218604}]],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15301503532602557206,{"inputs":[{"Node":{"node_id":6728362629909402903,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6787585796949551500,{"inputs":[{"Node":{"node_id":11095670964487764044,"output_index":0,"lambda":false}},{"Node":{"node_id":16177422101884031678,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18003287685830153881,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[4475009837548700636,4481635366652149569,1608608093193158603,4765910415851982345],"remove":[1647009925892902058],"delta":[[4475009837548700636,[525.7325506063205,282.1042056224195]],[1608608093193158603,[609.7777777777777,620.0]],[4765910415851982345,[283.33331298828125,354.6666564941406]],[4481635366652149569,[684.8888888888889,395.55555555555554]]]},"segments":{"add":[3045825504718908919,8024777209266880257,3983292299330016176,11103925991989272298],"remove":[13489289770112164650],"start_point":[[3983292299330016176,1608608093193158603],[3045825504718908919,4475009837548700636],[8024777209266880257,4481635366652149569],[11103925991989272298,4765910415851982345]],"end_point":[[11103925991989272298,4475009837548700636],[8024777209266880257,1608608093193158603],[3983292299330016176,4765910415851982345],[3045825504718908919,4481635366652149569]],"handle_primary":[[11103925991989272298,[0.0,0.0]],[3983292299330016176,[0.0,0.0]],[8024777209266880257,[11.111111111111086,62.22222222222217]],[3045825504718908919,[62.22222222222217,43.111111111111086]]],"handle_end":[[3983292299330016176,[0.0,0.0]],[8024777209266880257,[34.66666666666674,-85.33333333333337]],[11103925991989272298,[-113.5844024581724,39.08097956276566]],[3045825504718908919,[-11.111111111111086,-62.22222222222217]]],"stroke":[[8024777209266880257,0],[3983292299330016176,0],[3045825504718908919,0],[11103925991989272298,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":3983292299330016176},{"ty":"Primary","segment":11103925991989272298}],[{"ty":"End","segment":3045825504718908919},{"ty":"Primary","segment":8024777209266880257}]],"remove_g1_continuous":[[{"ty":"End","segment":13489289770112164650},{"ty":"Primary","segment":3045825504718908919}],[{"ty":"End","segment":11103925991989272298},{"ty":"Primary","segment":3045825504718908919}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12770183061753030023,{"inputs":[{"Node":{"node_id":17495267820524300686,"output_index":0,"lambda":false}},{"Node":{"node_id":1009114585722052052,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17299978721726771610,{"inputs":[{"Node":{"node_id":7029437790788498388,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[459.4,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":-8.6},"exposed":false}},{"Value":{"tagged_value":{"U32":5},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::RepeatNode"}},"visible":true,"skip_deduplication":false}],[9135110142507605216,{"inputs":[{"Node":{"node_id":11196821089257149774,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7104261880154687267,{"inputs":[{"Node":{"node_id":2834866505092039323,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18271512507682813443,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[10872099980755217048,13049263474526562389,2409359561719399794,9175973472325454282,14263506369487797530,5496457317579994340,7125168137854779179,9658821733796680583,425878374398720476,5252668597335249558],"remove":[],"delta":[[425878374398720476,[898.633744855967,207.99999999999997]],[5252668597335249558,[888.2516734908237,208.88931872324497]],[14263506369487797530,[886.5185185185185,178.66666666666669]],[13049263474526562389,[903.1111111111112,55.70370370370371]],[9175973472325454282,[881.4814814814815,152.5925925925926]],[2409359561719399794,[892.7407407407408,111.70370370370372]],[9658821733796680583,[920.5925925925926,208.0]],[10872099980755217048,[889.0,0.0]],[7125168137854779179,[912.2962962962964,205.6296296296296]],[5496457317579994340,[929.3607681755832,198.40877914951983]]]},"segments":{"add":[16241193756011776206,13961346931609713434,6443321953815072406,13223251807271379465,6545223889678917273,9745298522639115232,8058164935346100149,9187894839116405225,5210886161307886529,11050813873332011119],"remove":[],"start_point":[[9745298522639115232,5496457317579994340],[6443321953815072406,2409359561719399794],[8058164935346100149,7125168137854779179],[5210886161307886529,425878374398720476],[13961346931609713434,13049263474526562389],[9187894839116405225,9658821733796680583],[13223251807271379465,9175973472325454282],[6545223889678917273,14263506369487797530],[16241193756011776206,10872099980755217048],[11050813873332011119,5252668597335249558]],"end_point":[[13961346931609713434,2409359561719399794],[8058164935346100149,9658821733796680583],[9187894839116405225,425878374398720476],[11050813873332011119,10872099980755217048],[6443321953815072406,9175973472325454282],[6545223889678917273,5496457317579994340],[9745298522639115232,7125168137854779179],[13223251807271379465,14263506369487797530],[5210886161307886529,5252668597335249558],[16241193756011776206,13049263474526562389]],"handle_primary":[[16241193756011776206,[0.0,0.0]],[6545223889678917273,[0.0,0.0]],[13223251807271379465,[3.2812071330587287,8.329218106995853]],[13961346931609713434,[6.522611384544012,17.67970980547415]],[9745298522639115232,[0.0,0.0]],[6443321953815072406,[-9.144953020396894,24.145964868041293]],[8058164935346100149,[0.0,0.0]],[5210886161307886529,[-1.1368683772161605e-13,-2.8421709430404014e-14]],[9187894839116405225,[-8.263374485596842,1.880201188843188]],[11050813873332011119,[-5.947146741852521,-2.1403475298293415]]],"handle_end":[[6443321953815072406,[-3.3276401397055917,-8.447086508484054]],[8058164935346100149,[-5.925925925925867,-2.370370370370381]],[16241193756011776206,[-7.506172839506348,-20.345679012345684]],[13961346931609713434,[10.984910836762538,-29.00411522633746]],[5210886161307886529,[5.947146741852521,2.1403475298293415]],[11050813873332011119,[-86.26684502769479,250.37037037037035]],[9745298522639115232,[7.703703703703695,-2.074074074074076]],[13223251807271379465,[0.7901234567900701,-9.492455418381354]],[9187894839116405225,[4.974851394604343,2.0557841792410443]],[6545223889678917273,[-25.3424782807499,-1.3461362597164737]]],"stroke":[[16241193756011776206,0],[9187894839116405225,0],[13223251807271379465,0],[6545223889678917273,0],[11050813873332011119,0],[13961346931609713434,0],[5210886161307886529,0],[9745298522639115232,0],[8058164935346100149,0],[6443321953815072406,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":13961346931609713434},{"ty":"Primary","segment":6443321953815072406}],[{"ty":"End","segment":16241193756011776206},{"ty":"Primary","segment":13961346931609713434}],[{"ty":"End","segment":5210886161307886529},{"ty":"Primary","segment":11050813873332011119}],[{"ty":"End","segment":6443321953815072406},{"ty":"Primary","segment":13223251807271379465}]],"remove_g1_continuous":[[{"ty":"Primary","segment":9187894839116405225},{"ty":"End","segment":8058164935346100149}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8511737864852441844,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false}],[17696051535511578981,{"inputs":[{"Node":{"node_id":16780039553038473906,"output_index":0,"lambda":false}},{"Node":{"node_id":9071802450034150503,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10286817149456341619,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[10786213048155734586,12599396287665855262,6164201091766276213,6781153531246981076,15695128662656633322,8241402276734357681,10333377922713208038,3749627916562964805,2535476870476707501],"remove":[],"delta":[[3749627916562964805,[866.172839506173,558.2222222222224]],[15695128662656633322,[825.6790123456792,509.4320987654323]],[6781153531246981076,[872.6913580246915,513.7777777777779]],[2535476870476707501,[887.5061728395062,568.6913580246915]],[12599396287665855262,[902.5185185185188,498.56790123456807]],[8241402276734357681,[853.3333333333336,529.1851851851854]],[10786213048155734586,[917.7283950617284,502.91358024691374]],[6164201091766276213,[902.9135802469136,506.8641975308643]],[10333377922713208038,[843.4567901234569,550.1234567901236]]]},"segments":{"add":[15700595221504820396,6369399239389505343,17761347836385237495,3021925106447084698,14489254209548096966,3461110970422306113,14847678502054094837,14515109677644612103,264894972572137143],"remove":[],"start_point":[[264894972572137143,2535476870476707501],[3461110970422306113,8241402276734357681],[3021925106447084698,6781153531246981076],[17761347836385237495,6164201091766276213],[15700595221504820396,10786213048155734586],[14847678502054094837,10333377922713208038],[6369399239389505343,12599396287665855262],[14515109677644612103,3749627916562964805],[14489254209548096966,15695128662656633322]],"end_point":[[6369399239389505343,6164201091766276213],[3021925106447084698,15695128662656633322],[264894972572137143,10786213048155734586],[15700595221504820396,12599396287665855262],[3461110970422306113,10333377922713208038],[14489254209548096966,8241402276734357681],[14515109677644612103,2535476870476707501],[14847678502054094837,3749627916562964805],[17761347836385237495,6781153531246981076]],"handle_primary":[[15700595221504820396,[0.0,0.0]],[17761347836385237495,[0.0,0.0]],[14489254209548096966,[-0.3950434518873181,1.0617032941893854]],[14847678502054094837,[0.7901234567900701,2.765432098765473]],[3021925106447084698,[-16.59259259259261,2.370370370370324]],[14515109677644612103,[8.888888888888914,0.0]],[264894972572137143,[0.0,0.0]],[6369399239389505343,[-7.1111111111111995,-5.530864197530889]],[3461110970422306113,[0.38915905346209456,1.493515242756871]]],"handle_end":[[3021925106447084698,[0.5488119028742631,-1.474965354794051]],[6369399239389505343,[0.0,0.0]],[15700595221504820396,[7.1111111111111995,5.530864197530889]],[17761347836385237495,[16.59259259259261,-2.370370370370324]],[14847678502054094837,[-8.888888888888914,0.0]],[3461110970422306113,[-0.7901234567900701,-2.765432098765473]],[14515109677644612103,[0.0,0.0]],[264894972572137143,[3.753086419753003,37.1358024691358]],[14489254209548096966,[-0.5712718875797691,-2.192428171126153]]],"stroke":[[3021925106447084698,0],[14515109677644612103,0],[264894972572137143,0],[15700595221504820396,0],[6369399239389505343,0],[14847678502054094837,0],[14489254209548096966,0],[3461110970422306113,0],[17761347836385237495,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":14847678502054094837},{"ty":"Primary","segment":14515109677644612103}],[{"ty":"End","segment":3021925106447084698},{"ty":"Primary","segment":14489254209548096966}],[{"ty":"End","segment":14515109677644612103},{"ty":"Primary","segment":264894972572137143}],[{"ty":"End","segment":17761347836385237495},{"ty":"Primary","segment":3021925106447084698}],[{"ty":"End","segment":15700595221504820396},{"ty":"Primary","segment":6369399239389505343}],[{"ty":"End","segment":3461110970422306113},{"ty":"Primary","segment":14847678502054094837}],[{"ty":"End","segment":6369399239389505343},{"ty":"Primary","segment":17761347836385237495}],[{"ty":"End","segment":14489254209548096966},{"ty":"Primary","segment":3461110970422306113}]],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6726954210929537972,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[177515045030371783,4609870404630548899,1458337690478625792,16230687409600568539,8055802412900565217,12390708657704154619,12909592102393222573,6873550371723398444,13416153271806375161,2492294980235986276,12448133448335459077,7624137673235413199],"remove":[],"delta":[[8055802412900565217,[480.4444444444445,219.7777777777778]],[16230687409600568539,[491.55555555555554,311.55555555555566]],[2492294980235986276,[604.4434936307387,42.970116997735616]],[6873550371723398444,[538.6666666666667,136.0]],[12448133448335459077,[610.3703703703706,2.4308653429145085e-63]],[1458337690478625792,[473.1851851851851,213.62962962962965]],[12390708657704154619,[596.6748971193416,72.42798353909465]],[177515045030371783,[604.2883706752018,0.0]],[4609870404630548899,[589.432098765432,64.79012345679011]],[13416153271806375161,[531.8518518518517,131.2592592592593]],[12909592102393222573,[607.8024691358027,0.0]],[7624137673235413199,[617.8765432098766,2.465190328815662e-32]]]},"segments":{"add":[12529947318087068663,5578827639764758986,1705877195608053135,2463526518527501592,9361245670457788924,921651403153242564,9825559201153691780,15749222431214672690,14294722277069184337,4341232355541306629,3818841110886669992],"remove":[11060716078587457450,17799038492181728804,17843645051722826880,16939098306153440303,5057709998225566481],"start_point":[[12529947318087068663,177515045030371783],[4341232355541306629,12390708657704154619],[921651403153242564,4609870404630548899],[15749222431214672690,2492294980235986276],[9825559201153691780,13416153271806375161],[3818841110886669992,7624137673235413199],[9361245670457788924,6873550371723398444],[2463526518527501592,8055802412900565217],[14294722277069184337,12448133448335459077],[1705877195608053135,16230687409600568539],[5578827639764758986,1458337690478625792]],"end_point":[[3818841110886669992,12448133448335459077],[921651403153242564,13416153271806375161],[14294722277069184337,2492294980235986276],[2463526518527501592,6873550371723398444],[5578827639764758986,16230687409600568539],[12529947318087068663,4609870404630548899],[1705877195608053135,8055802412900565217],[4341232355541306629,7624137673235413199],[15749222431214672690,12909592102393222573],[9361245670457788924,12390708657704154619],[9825559201153691780,1458337690478625792]],"handle_primary":[[1705877195608053135,[0.0,0.0]],[921651403153242564,[-7.513106110924076,12.956274823940417]],[9825559201153691780,[-30.00610951685011,28.39287782239575]],[3818841110886669992,[0.0,0.0]],[12529947318087068663,[0.0,0.0]],[15749222431214672690,[3.877242131088792,-22.333682252383095]],[2463526518527501592,[9.74414620103056,-24.528368023283747]],[5578827639764758986,[-19.25925925925924,60.44444444444443]],[9361245670457788924,[22.844654233974516,-21.876660410500975]],[4341232355541306629,[19.753086419753117,-26.73251028806584]],[14294722277069184337,[-0.2633744855968416,28.576131687242796]]],"handle_end":[[5578827639764758986,[0.0,0.0]],[9361245670457788924,[-16.14969885498249,21.855925783742933]],[12529947318087068663,[12.90534979423876,-22.255144032921805]],[9825559201153691780,[6.194184133897295,-19.440208666385132]],[14294722277069184337,[0.0,0.0]],[1705877195608053135,[-19.33333333333331,48.66666666666666]],[15749222431214672690,[0.0,0.0]],[2463526518527501592,[-34.96296296296305,33.481481481481495]],[3818841110886669992,[0.0,0.0]],[921651403153242564,[27.555555555555657,-26.07407407407412]],[4341232355541306629,[0.0,0.0]]],"stroke":[[9361245670457788924,0],[3818841110886669992,0],[921651403153242564,0],[9825559201153691780,0],[12529947318087068663,0],[4341232355541306629,0],[15749222431214672690,0],[2463526518527501592,0],[1705877195608053135,0],[14294722277069184337,0],[5578827639764758986,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"Primary","segment":16939098306153440303},{"ty":"End","segment":9361245670457788924}],[{"ty":"End","segment":9361245670457788924},{"ty":"Primary","segment":17843645051722826880}],[{"ty":"End","segment":9361245670457788924},{"ty":"Primary","segment":5057709998225566481}],[{"ty":"End","segment":17843645051722826880},{"ty":"Primary","segment":15749222431214672690}],[{"ty":"End","segment":11060716078587457450},{"ty":"Primary","segment":5578827639764758986}],[{"ty":"End","segment":921651403153242564},{"ty":"Primary","segment":9825559201153691780}],[{"ty":"End","segment":1705877195608053135},{"ty":"Primary","segment":17799038492181728804}],[{"ty":"End","segment":17799038492181728804},{"ty":"Primary","segment":16939098306153440303}],[{"ty":"End","segment":12529947318087068663},{"ty":"Primary","segment":11060716078587457450}],[{"ty":"End","segment":2463526518527501592},{"ty":"Primary","segment":9361245670457788924}],[{"ty":"End","segment":1705877195608053135},{"ty":"Primary","segment":2463526518527501592}],[{"ty":"End","segment":12529947318087068663},{"ty":"Primary","segment":921651403153242564}],[{"ty":"Primary","segment":5578827639764758986},{"ty":"End","segment":9825559201153691780}],[{"ty":"End","segment":9361245670457788924},{"ty":"Primary","segment":4341232355541306629}]],"remove_g1_continuous":[[{"ty":"End","segment":5057709998225566481},{"ty":"Primary","segment":14294722277069184337}],[{"ty":"Primary","segment":14294722277069184337},{"ty":"End","segment":3818841110886669992}],[{"ty":"End","segment":4341232355541306629},{"ty":"Primary","segment":3818841110886669992}],[{"ty":"Primary","segment":15749222431214672690},{"ty":"End","segment":14294722277069184337}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17603523494627491590,{"inputs":[{"Node":{"node_id":10995640810984321903,"output_index":0,"lambda":false}},{"Node":{"node_id":17740294143355019755,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13616602029989984195,{"inputs":[{"Node":{"node_id":3050731459444225191,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FlattenPathNode"}},"visible":true,"skip_deduplication":false}],[4301099429811409147,{"inputs":[{"Node":{"node_id":57390435731316553,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[81.3755165062,-154.9064700048801]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.4164633072520061},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999998,0.9999999999999998]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3109716240255919254,{"inputs":[{"Node":{"node_id":5877930116725120460,"output_index":0,"lambda":false}},{"Node":{"node_id":18053728639616073084,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2723198387862533596,{"inputs":[{"Node":{"node_id":14030142873804552388,"output_index":0,"lambda":false}},{"Node":{"node_id":11201759760883367635,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18351415092709164412,{"inputs":[{"Node":{"node_id":1009114585722052052,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[6484183251661832039,{"inputs":[{"Node":{"node_id":294265135510952894,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[474.2,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":-7.2},"exposed":false}},{"Value":{"tagged_value":{"U32":5},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::RepeatNode"}},"visible":true,"skip_deduplication":false}],[12922148192688274227,{"inputs":[{"Node":{"node_id":18188505856445531484,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7755499790391969923,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false}],[6503655938154160104,{"inputs":[{"Node":{"node_id":17696051535511578981,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16780039553038473906,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7104088139635280554,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1508440849951861669,{"inputs":[{"Node":{"node_id":8566844905246185636,"output_index":0,"lambda":false}},{"Node":{"node_id":7480253252288032958,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5856350938151339368,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[5138872293174440313,14935583009751134816,9014079831396927156,7008812441195504980,9603704700847490044,7238075805746621699,2355002738045707979,5021902985892894619,17629528758352690600,5995306636877552],"remove":[10768931421586254879],"delta":[[5995306636877552,[912.8888888888888,479.7037037037037]],[14935583009751134816,[914.9629629629628,418.3703703703703]],[2355002738045707979,[826.2057613168724,485.0041152263375]],[7008812441195504980,[888.8888888888887,421.3333333333333]],[17629528758352690600,[892.148148148148,480.2962962962963]],[5138872293174440313,[922.9629629629628,422.22222222222223]],[9603704700847490044,[821.037037037037,464.2962962962963]],[9014079831396927156,[908.4444444444443,429.9259259259259]],[5021902985892894619,[857.679012345679,478.2880658436215]],[7238075805746621699,[798.6831275720165,497.9094650205762]]]},"segments":{"add":[7250062683967197158,14131440324578863745,4499620435559196394,14571502160667941876,7203043366367198812,239843798079287870,7655921914272804429,12687760936062936386,7117413478945421556,9071432674597727163],"remove":[3746587001535987651],"start_point":[[7250062683967197158,5138872293174440313],[14571502160667941876,7008812441195504980],[7117413478945421556,5995306636877552],[7655921914272804429,5021902985892894619],[4499620435559196394,9014079831396927156],[239843798079287870,2355002738045707979],[9071432674597727163,7238075805746621699],[7203043366367198812,9603704700847490044],[12687760936062936386,17629528758352690600],[14131440324578863745,14935583009751134816]],"end_point":[[239843798079287870,5021902985892894619],[9071432674597727163,2355002738045707979],[7117413478945421556,5138872293174440313],[14571502160667941876,9603704700847490044],[7203043366367198812,7238075805746621699],[4499620435559196394,7008812441195504980],[7250062683967197158,14935583009751134816],[14131440324578863745,9014079831396927156],[12687760936062936386,5995306636877552],[7655921914272804429,17629528758352690600]],"handle_primary":[[14131440324578863745,[0.0,0.0]],[9071432674597727163,[4.345679012345499,-3.555555555555543]],[4499620435559196394,[-0.2962962962963047,-0.2962962962963047]],[14571502160667941876,[-0.5925925925926094,0.0]],[239843798079287870,[9.61316872427983,-1.843621399176982]],[7655921914272804429,[18.172839506172863,-1.9753086419753456]],[7250062683967197158,[0.0,0.0]],[7117413478945421556,[0.0,0.0]],[12687760936062936386,[10.666666666666742,3.555555555555543]],[7203043366367198812,[0.0,0.2962962962963047]]],"handle_end":[[7203043366367198812,[-1.1851851851852189,-25.18518518518516]],[9071432674597727163,[-9.913826570592164,1.9012818080587977]],[239843798079287870,[-21.502976534539364,2.3372800581021456]],[4499620435559196394,[8.59259259259261,5.629629629629619]],[14131440324578863745,[2.962962962963047,-3.259259259259238]],[12687760936062936386,[0.0,0.0]],[7250062683967197158,[0.0,0.0]],[7655921914272804429,[-10.666666666666742,-3.555555555555543]],[14571502160667941876,[24.395061728395035,-0.36213991769540144]],[7117413478945421556,[15.703703703703695,33.48148148148147]]],"stroke":[[14131440324578863745,0],[7203043366367198812,0],[14571502160667941876,0],[239843798079287870,0],[7250062683967197158,0],[7117413478945421556,0],[12687760936062936386,0],[4499620435559196394,0],[7655921914272804429,0],[9071432674597727163,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"Primary","segment":239843798079287870},{"ty":"End","segment":9071432674597727163}],[{"ty":"End","segment":12687760936062936386},{"ty":"Primary","segment":7117413478945421556}],[{"ty":"End","segment":7250062683967197158},{"ty":"Primary","segment":14131440324578863745}],[{"ty":"End","segment":7655921914272804429},{"ty":"Primary","segment":12687760936062936386}],[{"ty":"End","segment":239843798079287870},{"ty":"Primary","segment":7655921914272804429}]],"remove_g1_continuous":[[{"ty":"End","segment":3746587001535987651},{"ty":"Primary","segment":239843798079287870}],[{"ty":"End","segment":9071432674597727163},{"ty":"Primary","segment":3746587001535987651}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14257963317028524134,{"inputs":[{"Node":{"node_id":1001728975241745659,"output_index":0,"lambda":false}},{"Node":{"node_id":6503655938154160104,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1491840484128555837,{"inputs":[{"Node":{"node_id":1508440849951861669,"output_index":0,"lambda":false}},{"Node":{"node_id":9808637865669223270,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5888633415105234509,{"inputs":[{"Node":{"node_id":3750439930725791025,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1258994191538244490,{"inputs":[{"Node":{"node_id":5488285068107445023,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5486211022469996717,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[266134622800431246,12075466065090700811,7115673652122600762,9852238672814254137],"remove":[134095410253559933],"delta":[[266134622800431246,[525.7325506063205,282.1042056224195]],[9852238672814254137,[879.7947439326053,110.54094004739208]],[12075466065090700811,[877.0370370370372,136.5925925925926]],[7115673652122600762,[646.5386352539062,343.99395751953125]]]},"segments":{"add":[17255728395700231433,3166693019207180063,10242199012993595528,2159953159628520134],"remove":[10196443086284452827,3769008694104161528,13980530488817762548],"start_point":[[3166693019207180063,7115673652122600762],[10242199012993595528,266134622800431246],[2159953159628520134,9852238672814254137],[17255728395700231433,12075466065090700811]],"end_point":[[3166693019207180063,266134622800431246],[17255728395700231433,7115673652122600762],[2159953159628520134,12075466065090700811],[10242199012993595528,9852238672814254137]],"handle_primary":[[3166693019207180063,[-126.67994767097883,-51.72627287889763]],[17255728395700231433,[0.0010773420832492775,-0.01370555995902123]],[2159953159628520134,[0.0,0.0]],[10242199012993595528,[137.37856050479058,-43.88198340019727]]],"handle_end":[[10242199012993595528,[-15.794743932605344,36.71831921186718]],[17255728395700231433,[165.46136474609386,67.5615980360243]],[3166693019207180063,[0.0,0.0]],[2159953159628520134,[0.0,0.0]]],"stroke":[[3166693019207180063,0],[2159953159628520134,0],[10242199012993595528,0],[17255728395700231433,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"Primary","segment":3166693019207180063},{"ty":"End","segment":17255728395700231433}]],"remove_g1_continuous":[[{"ty":"End","segment":3166693019207180063},{"ty":"Primary","segment":13980530488817762548}],[{"ty":"Primary","segment":10242199012993595528},{"ty":"End","segment":3166693019207180063}],[{"ty":"Primary","segment":3769008694104161528},{"ty":"End","segment":10196443086284452827}],[{"ty":"End","segment":10242199012993595528},{"ty":"Primary","segment":2159953159628520134}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14139129879376457893,{"inputs":[{"Node":{"node_id":11373527190663101881,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5954536408321808728,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[8323145223085840944,87630150944518163,8212340198835025146,6057321578372831916,16788403743390653241,16686047298905200065,15635903913637220842,8652457572576966876,3124531241960914803,18307826411292029066,9969822516610975381,16995054111951247369,16808246968731723098],"remove":[],"delta":[[18307826411292029066,[601.1756940654021,0.0]],[16788403743390653241,[467.99999999999994,487.3333333333333]],[16808246968731723098,[891.5555555555554,768.0]],[15635903913637220842,[468.4799499511719,219.78570556640625]],[6057321578372831916,[708.148148148148,616.2962962962962]],[9969822516610975381,[0.0,0.0]],[87630150944518163,[879.1111111111111,595.8518518518517]],[8323145223085840944,[891.5555555555554,569.3827160493826]],[16686047298905200065,[283.3333333333333,354.66666666666663]],[16995054111951247369,[0.0,768.0]],[8652457572576966876,[514.4523315429688,146.72100830078125]],[8212340198835025146,[830.8148148148148,633.7777777777776]],[3124531241960914803,[589.9588477366256,64.65843621399176]]]},"segments":{"add":[14879480148926424885,5227512358023446442,17410347049685436697,9544743211426701912,14715945740984195653,515539069333222772,9242150930423817167,8823161072525575433,15885450050057549950,1662692131856898001,178608879920007638,12162371359208565273,16224358815792062223],"remove":[],"start_point":[[5227512358023446442,87630150944518163],[14715945740984195653,16788403743390653241],[9544743211426701912,6057321578372831916],[9242150930423817167,15635903913637220842],[12162371359208565273,16995054111951247369],[17410347049685436697,8212340198835025146],[16224358815792062223,16808246968731723098],[15885450050057549950,3124531241960914803],[14879480148926424885,8323145223085840944],[178608879920007638,9969822516610975381],[1662692131856898001,18307826411292029066],[8823161072525575433,8652457572576966876],[515539069333222772,16686047298905200065]],"end_point":[[15885450050057549950,18307826411292029066],[9242150930423817167,8652457572576966876],[14879480148926424885,87630150944518163],[16224358815792062223,8323145223085840944],[5227512358023446442,8212340198835025146],[12162371359208565273,16808246968731723098],[8823161072525575433,3124531241960914803],[17410347049685436697,6057321578372831916],[9544743211426701912,16788403743390653241],[14715945740984195653,16686047298905200065],[515539069333222772,15635903913637220842],[1662692131856898001,9969822516610975381],[178608879920007638,16995054111951247369]],"handle_primary":[[5227512358023446442,[-4.444444444444457,18.074074074074133]],[12162371359208565273,[0.0,0.0]],[14715945740984195653,[-92.66666666666656,-80.66666666666669]],[178608879920007638,[0.0,0.0]],[17410347049685436697,[-26.37037037037044,2.3703703703704377]],[515539069333222772,[48.66666666666663,-23.999999999999943]],[9242150930423817167,[27.25925925925918,-22.518518518518533]],[9544743211426701912,[-57.48148148148141,-21.629629629629676]],[1662692131856898001,[0.0,0.0]],[15885450050057549950,[11.193415637860312,-27.25925925925926]],[14879480148926424885,[0.0,0.0]],[8823161072525575433,[11.259252477575274,-22.666663275824646]],[16224358815792062223,[0.0,0.0]]],"handle_end":[[8823161072525575433,[-12.439135136214697,30.29295262583988]],[515539069333222772,[-95.07216232621772,78.5378732260062]],[14715945740984195653,[0.0,0.0]],[12162371359208565273,[0.0,0.0]],[5227512358023446442,[26.37037037037044,-2.3703703703704377]],[16224358815792062223,[0.0,0.0]],[178608879920007638,[0.0,0.0]],[17410347049685436697,[57.48148148148141,21.629629629629676]],[15885450050057549950,[0.0,0.0]],[9242150930423817167,[-9.36826657882972,18.859808361471693]],[14879480148926424885,[4.444444444444457,-18.074074074074133]],[9544743211426701912,[92.66666666666656,80.66666666666669]],[1662692131856898001,[0.0,0.0]]],"stroke":[[14715945740984195653,0],[15885450050057549950,0],[14879480148926424885,0],[8823161072525575433,0],[178608879920007638,0],[9544743211426701912,0],[515539069333222772,0],[17410347049685436697,0],[12162371359208565273,0],[5227512358023446442,0],[9242150930423817167,0],[16224358815792062223,0],[1662692131856898001,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":14879480148926424885},{"ty":"Primary","segment":5227512358023446442}],[{"ty":"End","segment":5227512358023446442},{"ty":"Primary","segment":17410347049685436697}],[{"ty":"End","segment":15885450050057549950},{"ty":"Primary","segment":1662692131856898001}],[{"ty":"End","segment":8823161072525575433},{"ty":"Primary","segment":15885450050057549950}],[{"ty":"End","segment":178608879920007638},{"ty":"Primary","segment":12162371359208565273}],[{"ty":"End","segment":1662692131856898001},{"ty":"Primary","segment":178608879920007638}],[{"ty":"End","segment":9544743211426701912},{"ty":"Primary","segment":14715945740984195653}],[{"ty":"End","segment":9242150930423817167},{"ty":"Primary","segment":8823161072525575433}],[{"ty":"End","segment":12162371359208565273},{"ty":"Primary","segment":16224358815792062223}],[{"ty":"End","segment":17410347049685436697},{"ty":"Primary","segment":9544743211426701912}],[{"ty":"End","segment":515539069333222772},{"ty":"Primary","segment":9242150930423817167}]],"remove_g1_continuous":[[{"ty":"End","segment":14715945740984195653},{"ty":"Primary","segment":515539069333222772}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18053728639616073084,{"inputs":[{"Node":{"node_id":6616450276140292763,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17569892869974995307,{"inputs":[{"Node":{"node_id":3997031659711823213,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[5534800796196967885,{"inputs":[{"Node":{"node_id":3608604157153838227,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"CentroidType":"Area"},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CentroidNode"}},"visible":true,"skip_deduplication":false}],[7029437790788498388,{"inputs":[{"Node":{"node_id":1809704172129195322,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17351444026127625357,{"inputs":[{"Node":{"node_id":14808063168960305551,"output_index":0,"lambda":false}},{"Node":{"node_id":13916027199283115943,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17735408893002232096,{"inputs":[{"Node":{"node_id":14228923746783465609,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17285637344898461972,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[16608607268690234590,17457877227823502997,13436129231170586617,5992570223148766873],"remove":[],"delta":[[13436129231170586617,[481.3333333333333,768.0]],[5992570223148766873,[-2.273736754432321e-13,768.0]],[16608607268690234590,[0.0,340.0]],[17457877227823502997,[273.0,476.0]]]},"segments":{"add":[13284808974014161135,5472571334856691465,8776124420595946733,4274372337254864190],"remove":[],"start_point":[[4274372337254864190,5992570223148766873],[5472571334856691465,17457877227823502997],[8776124420595946733,13436129231170586617],[13284808974014161135,16608607268690234590]],"end_point":[[13284808974014161135,17457877227823502997],[5472571334856691465,13436129231170586617],[8776124420595946733,5992570223148766873],[4274372337254864190,16608607268690234590]],"handle_primary":[[4274372337254864190,[0.0,0.0]],[13284808974014161135,[161.73791370620617,43.57576470888159]],[8776124420595946733,[0.0,0.0]],[5472571334856691465,[146.0,-13.0]]],"handle_end":[[8776124420595946733,[0.0,0.0]],[13284808974014161135,[-165.43581782916667,14.730586519035386]],[5472571334856691465,[0.4078646547782227,-253.307727480567]],[4274372337254864190,[0.0,0.0]]],"stroke":[[4274372337254864190,0],[8776124420595946733,0],[5472571334856691465,0],[13284808974014161135,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":8776124420595946733},{"ty":"Primary","segment":4274372337254864190}],[{"ty":"End","segment":13284808974014161135},{"ty":"Primary","segment":5472571334856691465}]],"remove_g1_continuous":[[{"ty":"Primary","segment":13284808974014161135},{"ty":"End","segment":4274372337254864190}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15900830679378240619,{"inputs":[{"Node":{"node_id":2287485748649359627,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1662641269094032596,{"inputs":[{"Node":{"node_id":16304636129468583592,"output_index":0,"lambda":false}},{"Node":{"node_id":14139765080256493579,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6728362629909402903,{"inputs":[{"Node":{"node_id":5856350938151339368,"output_index":0,"lambda":false}},{"Node":{"node_id":5449860184735415958,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12276520439585231336,{"inputs":[{"Node":{"node_id":13795432594059356320,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[997.5029638869316,545.7213923090854]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10995640810984321903,{"inputs":[{"Node":{"node_id":12353675714904258944,"output_index":0,"lambda":false}},{"Node":{"node_id":10265035897167064154,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15354358358546908017,{"inputs":[{"Node":{"node_id":14950060858756810933,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4328376070224119511,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":13446205009526451196,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1009114585722052052,{"inputs":[{"Node":{"node_id":15692102598187739001,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7252918969430566594,{"inputs":[{"Node":{"node_id":5534800796196967885,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":-1.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::MultiplyNode"}},"visible":true,"skip_deduplication":false}],[14684142559936015947,{"inputs":[{"Node":{"node_id":15930698052919171086,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4771789845668099116,{"inputs":[{"Node":{"node_id":17351444026127625357,"output_index":0,"lambda":false}},{"Node":{"node_id":14684142559936015947,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5014806436727666175,{"inputs":[{"Node":{"node_id":7855094781869605606,"output_index":0,"lambda":false}},{"Node":{"node_id":8863346544623578893,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14139765080256493579,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[3507505346656189771,2904729023031858224,854708012647259796,4175610638601362388,7821224334582795476,2195807584570698921],"remove":[1009888023123207923,16332448509429125699],"delta":[[4175610638601362388,[957.0,324.0]],[3507505346656189771,[552.0,768.0000000000001]],[7821224334582795476,[1093.0,600.0]],[2195807584570698921,[993.0,767.9999999999999]],[2904729023031858224,[491.3420376907663,506.7530051313737]],[854708012647259796,[740.0,298.0]]]},"segments":{"add":[4553965744616493549,13993263006398686359,6577640955869157325,17304574948462342226,8570276641842028192,17183285389582020412],"remove":[546565283439891712,5710832026764395735],"start_point":[[8570276641842028192,2195807584570698921],[17304574948462342226,4175610638601362388],[6577640955869157325,854708012647259796],[4553965744616493549,3507505346656189771],[17183285389582020412,7821224334582795476],[13993263006398686359,2904729023031858224]],"end_point":[[6577640955869157325,4175610638601362388],[17183285389582020412,2195807584570698921],[8570276641842028192,3507505346656189771],[17304574948462342226,7821224334582795476],[4553965744616493549,2904729023031858224],[13993263006398686359,854708012647259796]],"handle_primary":[[6577640955869157325,[102.0,-45.0]],[17304574948462342226,[50.35246044959922,33.38607084805801]],[17183285389582020412,[-24.08196064282073,82.4624712920831]],[4553965744616493549,[0.0,0.0]],[13993263006398686359,[0.0,-84.7537417270637]],[8570276641842028192,[0.0,0.0]]],"handle_end":[[17183285389582020412,[0.0,0.0]],[8570276641842028192,[0.0,0.0]],[6577640955869157325,[-50.35246044959922,-33.38607084805801]],[13993263006398686359,[-102.0,45.0]],[17304574948462342226,[33.0,-113.0]],[4553965744616493549,[0.0,135.2464055295568]]],"stroke":[[13993263006398686359,0],[6577640955869157325,0],[17304574948462342226,0],[17183285389582020412,0],[8570276641842028192,0],[4553965744616493549,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":4553965744616493549},{"ty":"Primary","segment":13993263006398686359}],[{"ty":"End","segment":13993263006398686359},{"ty":"Primary","segment":6577640955869157325}],[{"ty":"End","segment":17304574948462342226},{"ty":"Primary","segment":17183285389582020412}],[{"ty":"Primary","segment":8570276641842028192},{"ty":"End","segment":17183285389582020412}],[{"ty":"End","segment":6577640955869157325},{"ty":"Primary","segment":17304574948462342226}]],"remove_g1_continuous":[[{"ty":"End","segment":546565283439891712},{"ty":"Primary","segment":5710832026764395735}],[{"ty":"End","segment":17183285389582020412},{"ty":"Primary","segment":546565283439891712}],[{"ty":"Primary","segment":8570276641842028192},{"ty":"End","segment":546565283439891712}],[{"ty":"End","segment":5710832026764395735},{"ty":"Primary","segment":8570276641842028192}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10080296672372912698,{"inputs":[{"Node":{"node_id":12867379765049504290,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2834866505092039323,{"inputs":[{"Node":{"node_id":18003287685830153881,"output_index":0,"lambda":false}},{"Node":{"node_id":14139765080256493579,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14690269209726153565,{"inputs":[{"Node":{"node_id":7376049709233607419,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[18188505856445531484,{"inputs":[{"Node":{"node_id":8887924609778270360,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3410481056630111806,{"inputs":[{"Node":{"node_id":1097494158696050491,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12353675714904258944,{"inputs":[{"Node":{"node_id":13203761224559198689,"output_index":0,"lambda":false}},{"Node":{"node_id":17271572793812678706,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17271572793812678706,{"inputs":[{"Node":{"node_id":15900830679378240619,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14228923746783465609,{"inputs":[{"Node":{"node_id":16304636129468583592,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[2003133867055127539,13758328146055368475],"remove":[],"delta":[[4648964341912884959,[324.66666666666646,0.0]],[13758328146055368475,[1299.3064572949788,786.3993743175897]],[16569120368910754547,[-43.0,0.0]],[2003133867055127539,[1011.111083984375,786.3993530273438]]]},"segments":{"add":[8214025514312603513,7334532063810723038,13431612844608018700],"remove":[6602880736207868665,3433930674303663828],"start_point":[[8214025514312603513,2003133867055127539],[13431612844608018700,13758328146055368475],[7334532063810723038,16569120368910754547]],"end_point":[[8214025514312603513,4648964341912884959],[13431612844608018700,2003133867055127539],[7334532063810723038,13758328146055368475]],"handle_primary":[[9030015329489789075,[69.08057198853999,-80.19415805947563]],[13431612844608018700,null],[8214025514312603513,null],[7334532063810723038,null]],"handle_end":[[2197140374690997530,[-24.333333333333485,-86.99999999999977]],[7334532063810723038,null],[13431612844608018700,null],[8214025514312603513,null],[9030015329489789075,[0.0,0.0]]],"stroke":[[7334532063810723038,0],[8214025514312603513,0],[13431612844608018700,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[[{"ty":"Primary","segment":9030015329489789075},{"ty":"End","segment":3433930674303663828}],[{"ty":"End","segment":9030015329489789075},{"ty":"Primary","segment":2197140374690997530}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11210964267417873667,{"inputs":[{"Node":{"node_id":4261249487994076490,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[91.7203910728,-99.9607940061]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.40698564029617024},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7962101329808960965,{"inputs":[{"Node":{"node_id":16322546010403524636,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":-1.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::MultiplyNode"}},"visible":true,"skip_deduplication":false}],[8887924609778270360,{"inputs":[{"Node":{"node_id":5014806436727666175,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17036604842139972912,{"inputs":[{"Node":{"node_id":1491840484128555837,"output_index":0,"lambda":false}},{"Node":{"node_id":11210964267417873667,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12145355397916841389,{"inputs":[{"Node":{"node_id":16759836951269190891,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4470272391975492611,{"inputs":[{"Node":{"node_id":7018444885869143173,"output_index":0,"lambda":false}},{"Node":{"node_id":12145355397916841389,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1097494158696050491,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":15.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false}],[5556372312033787775,{"inputs":[{"Node":{"node_id":6484183251661832039,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::BoundingBoxNode"}},"visible":true,"skip_deduplication":false}],[294265135510952894,{"inputs":[{"Node":{"node_id":11264395591110193456,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[2025899804080897524,{"inputs":[{"Node":{"node_id":17740496701763775226,"output_index":0,"lambda":false}},{"Node":{"node_id":3214181946162459584,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[990192925663920333,{"inputs":[{"Node":{"node_id":3410481056630111806,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[466.8,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":-7.9},"exposed":false}},{"Value":{"tagged_value":{"U32":5},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::RepeatNode"}},"visible":true,"skip_deduplication":false}],[11264395591110193456,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":10.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false}],[13027689870767713939,{"inputs":[{"Node":{"node_id":7201841978411396053,"output_index":0,"lambda":false}},{"Node":{"node_id":13340751444307201866,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9338394475379815879,{"inputs":[{"Node":{"node_id":7977952035097419157,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[1327.0278641242007,11.102707365920756]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.23820276778328575},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[230.36030209674013,67.6958526826066]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[3.855605378252775e-17,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14496934933990319842,{"inputs":[{"Node":{"node_id":12709602171929957216,"output_index":0,"lambda":false}},{"Node":{"node_id":12185047359007423618,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13739729101529293427,{"inputs":[{"Node":{"node_id":18003287685830153881,"output_index":0,"lambda":false}},{"Node":{"node_id":14139765080256493579,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3214181946162459584,{"inputs":[{"Node":{"node_id":5449860184735415958,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16322546010403524636,{"inputs":[{"Node":{"node_id":5556372312033787775,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"CentroidType":"Area"},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CentroidNode"}},"visible":true,"skip_deduplication":false}],[804622576568168609,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[13654185056786459919,6952183320761642858,2802617302192982616,7639287212006638253,15117515618866904690,15750781936547583892,7025422618543191491,3831533579307185652,16937470333767479918,10412162547161259027,5269777039739103358],"remove":[],"delta":[[15750781936547583892,[840.6666666666665,368.66666666666663]],[13654185056786459919,[946.1728395061732,330.8641975308642]],[7025422618543191491,[911.5555555555554,345.3333333333333]],[15117515618866904690,[819.1111111111109,354.44444444444434]],[10412162547161259027,[887.3333333333333,376.0]],[2802617302192982616,[911.7777777777776,334.88888888888886]],[7639287212006638253,[862.8888888888888,349.3333333333333]],[3831533579307185652,[880.4444444444443,357.3333333333333]],[16937470333767479918,[876.6666666666665,359.55555555555554]],[5269777039739103358,[902.2222222222222,394.66666666666663]],[6952183320761642858,[933.9259259259262,324.3456790123457]]]},"segments":{"add":[10498175376126066982,10426255560432238561,11214998966879437330,1241631398419524272,15286139376878919277,15838384105575178137,12854270992100552972,379744301215040936,4069217348643062888,10438163357339042361,9330486019469919863],"remove":[],"start_point":[[379744301215040936,3831533579307185652],[12854270992100552972,7025422618543191491],[10426255560432238561,6952183320761642858],[1241631398419524272,7639287212006638253],[9330486019469919863,5269777039739103358],[11214998966879437330,2802617302192982616],[15838384105575178137,15750781936547583892],[10438163357339042361,10412162547161259027],[15286139376878919277,15117515618866904690],[4069217348643062888,16937470333767479918],[10498175376126066982,13654185056786459919]],"end_point":[[10426255560432238561,2802617302192982616],[15838384105575178137,7025422618543191491],[10438163357339042361,5269777039739103358],[9330486019469919863,13654185056786459919],[11214998966879437330,7639287212006638253],[10498175376126066982,6952183320761642858],[379744301215040936,16937470333767479918],[12854270992100552972,3831533579307185652],[1241631398419524272,15117515618866904690],[15286139376878919277,15750781936547583892],[4069217348643062888,10412162547161259027]],"handle_primary":[[15286139376878919277,[-0.5188510642573192,0.6084707935380038]],[9330486019469919863,[5.555555555555429,-0.2222222222221717]],[10426255560432238561,[-0.39506172839503506,-0.19753086419757435]],[379744301215040936,[-0.2222222222221717,0.0]],[11214998966879437330,[-16.666666666666515,-3.777777777777771]],[15838384105575178137,[22.222222222222285,5.555555555555543]],[1241631398419524272,[-17.111111111111086,12.888888888888856]],[12854270992100552972,[-0.4444444444443434,0.0]],[4069217348643062888,[0.0,0.0]],[10498175376126066982,[0.0,0.0]],[10438163357339042361,[1.3333333333332575,10.888888888888856]]],"handle_end":[[10426255560432238561,[16.666666666666515,3.777777777777771]],[379744301215040936,[0.0,0.0]],[15286139376878919277,[-22.222222222222285,-5.555555555555543]],[15838384105575178137,[-20.0,2.0]],[10498175376126066982,[4.9382716049382225,0.19753086419757435]],[1241631398419524272,[0.5951379226228255,-0.6979344728938486]],[11214998966879437330,[17.111111111111086,-12.888888888888856]],[10438163357339042361,[-5.555555555555429,0.2222222222221717]],[4069217348643062888,[-1.3333333333332575,-10.888888888888856]],[12854270992100552972,[33.77777777777783,2.2222222222222285]],[9330486019469919863,[0.0,0.0]]],"stroke":[[1241631398419524272,0],[11214998966879437330,0],[9330486019469919863,0],[4069217348643062888,0],[12854270992100552972,0],[379744301215040936,0],[15838384105575178137,0],[10498175376126066982,0],[10426255560432238561,0],[15286139376878919277,0],[10438163357339042361,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":10426255560432238561},{"ty":"Primary","segment":11214998966879437330}],[{"ty":"End","segment":11214998966879437330},{"ty":"Primary","segment":1241631398419524272}],[{"ty":"End","segment":4069217348643062888},{"ty":"Primary","segment":10438163357339042361}],[{"ty":"End","segment":379744301215040936},{"ty":"Primary","segment":4069217348643062888}],[{"ty":"End","segment":1241631398419524272},{"ty":"Primary","segment":15286139376878919277}],[{"ty":"End","segment":10438163357339042361},{"ty":"Primary","segment":9330486019469919863}],[{"ty":"End","segment":15286139376878919277},{"ty":"Primary","segment":15838384105575178137}]],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17753909951719808506,{"inputs":[{"Node":{"node_id":2185437945364824599,"output_index":0,"lambda":false}},{"Node":{"node_id":9563008199132558110,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8566844905246185636,{"inputs":[{"Node":{"node_id":6852799892628327372,"output_index":0,"lambda":false}},{"Node":{"node_id":17131529656312051452,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18095952297474762348,{"inputs":[{"Node":{"node_id":5954536408321808728,"output_index":0,"lambda":false}},{"Node":{"node_id":5449860184735415958,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4261249487994076490,{"inputs":[{"Node":{"node_id":14516211820212764316,"output_index":0,"lambda":false}},{"Node":{"node_id":5534800796196967885,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8426490990601560741,{"inputs":[{"Node":{"node_id":10760002922115563021,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13795432594059356320,{"inputs":[{"Node":{"node_id":2871608309888343463,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FlattenPathNode"}},"visible":true,"skip_deduplication":false}],[7651693425519490419,{"inputs":[{"Node":{"node_id":4771789845668099116,"output_index":0,"lambda":false}},{"Node":{"node_id":15817956847588799375,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6616450276140292763,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[14760110820354327749,9465415708990918986,13517856880347849115,12398030966924498647,2930103517622848405,9496337687212684441],"remove":[],"delta":[[9496337687212684441,[732.148148148148,57.18518518518518]],[9465415708990918986,[706.3703703703703,86.51851851851853]],[12398030966924498647,[823.4074074074074,97.4814814814815]],[14760110820354327749,[614.8148148148148,129.1851851851852]],[2930103517622848405,[819.2592592592591,69.33333333333334]],[13517856880347849115,[777.1851851851851,92.44444444444446]]]},"segments":{"add":[18226408581696793441,16628058317667581864,3809009367670994230,13496648265229692336,10686631697241750410,11696351847604335156],"remove":[],"start_point":[[13496648265229692336,12398030966924498647],[3809009367670994230,13517856880347849115],[10686631697241750410,2930103517622848405],[18226408581696793441,14760110820354327749],[16628058317667581864,9465415708990918986],[11696351847604335156,9496337687212684441]],"end_point":[[3809009367670994230,12398030966924498647],[11696351847604335156,14760110820354327749],[18226408581696793441,9465415708990918986],[13496648265229692336,2930103517622848405],[16628058317667581864,13517856880347849115],[10686631697241750410,9496337687212684441]],"handle_primary":[[3809009367670994230,[21.33333333333337,4.740740740740733]],[16628058317667581864,[41.185185185185105,-9.7777777777778]],[11696351847604335156,[-29.333333333333258,11.55555555555555]],[18226408581696793441,[0.0,0.0]],[13496648265229692336,[14.222222222222172,-0.8888888888888857]],[10686631697241750410,[-13.037037037036953,-4.444444444444457]]],"handle_end":[[10686631697241750410,[29.333333333333258,-11.55555555555555]],[18226408581696793441,[-41.185185185185105,9.7777777777778]],[11696351847604335156,[54.81481481481478,-42.37037037037035]],[3809009367670994230,[-14.222222222222172,0.8888888888888857]],[16628058317667581864,[-21.33333333333337,-4.740740740740733]],[13496648265229692336,[13.037037037036953,4.444444444444457]]],"stroke":[[18226408581696793441,0],[3809009367670994230,0],[11696351847604335156,0],[13496648265229692336,0],[16628058317667581864,0],[10686631697241750410,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":3809009367670994230},{"ty":"Primary","segment":13496648265229692336}],[{"ty":"End","segment":16628058317667581864},{"ty":"Primary","segment":3809009367670994230}],[{"ty":"End","segment":18226408581696793441},{"ty":"Primary","segment":16628058317667581864}],[{"ty":"End","segment":10686631697241750410},{"ty":"Primary","segment":11696351847604335156}],[{"ty":"End","segment":13496648265229692336},{"ty":"Primary","segment":10686631697241750410}]],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4560146526699152877,{"inputs":[{"Node":{"node_id":5486211022469996717,"output_index":0,"lambda":false}},{"Node":{"node_id":13646498613066619660,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[57390435731316553,{"inputs":[{"Node":{"node_id":8460565235419043665,"output_index":0,"lambda":false}},{"Node":{"node_id":13838011362258067867,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16785043320296790229,{"inputs":[{"Node":{"node_id":1009114585722052052,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":20.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[9808637865669223270,{"inputs":[{"Node":{"node_id":140396870212231820,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16177422101884031678,{"inputs":[{"Node":{"node_id":13353438235848911576,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11201759760883367635,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[5173348374891662425,12314285668680405002,7388288026322342161,12796056970187696453],"remove":[],"delta":[[5173348374891662425,[969.0,0.0]],[12796056970187696453,[1418.0,0.0]],[12314285668680405002,[1085.0,181.0]],[7388288026322342161,[1277.0,319.0]]]},"segments":{"add":[10860608091363771974,9177623211202289793,18091265337503274797,9065140293539496953],"remove":[],"start_point":[[9177623211202289793,12314285668680405002],[18091265337503274797,7388288026322342161],[9065140293539496953,12796056970187696453],[10860608091363771974,5173348374891662425]],"end_point":[[18091265337503274797,12796056970187696453],[9177623211202289793,7388288026322342161],[9065140293539496953,5173348374891662425],[10860608091363771974,12314285668680405002]],"handle_primary":[[9177623211202289793,[-33.0,137.0]],[9065140293539496953,[0.0,0.0]],[18091265337503274797,[178.0,-35.0]],[10860608091363771974,[0.0,0.0]]],"handle_end":[[9065140293539496953,[0.0,0.0]],[18091265337503274797,[168.99998492988766,81.0]],[9177623211202289793,[-77.81941867085992,15.301571086966838]],[10860608091363771974,[25.066898104916696,-104.0656072840481]]],"stroke":[[18091265337503274797,0],[9065140293539496953,0],[10860608091363771974,0],[9177623211202289793,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":10860608091363771974},{"ty":"Primary","segment":9177623211202289793}],[{"ty":"End","segment":9177623211202289793},{"ty":"Primary","segment":18091265337503274797}]],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10760002922115563021,{"inputs":[{"Node":{"node_id":14257963317028524134,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13588160462734303101,{"inputs":[{"Node":{"node_id":17036604842139972912,"output_index":0,"lambda":false}},{"Node":{"node_id":4301099429811409147,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11373527190663101881,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[12058665768506126331,6802441093413090533,4854280308383915721,17729943149159368459,7436032950540776377,2189722519288419244,15817054697695831753,15744271344233846756,13877679667762731651,13567509413382199058,5664077098702810122,14178520291283306679,15575201098426093294],"remove":[],"delta":[[2189722519288419244,[796.0493827160494,202.2716049382716]],[6802441093413090533,[783.4074074074074,172.74074074074073]],[5664077098702810122,[686.5185185185185,191.1111111111111]],[15575201098426093294,[636.7407407407406,173.33333333333331]],[13567509413382199058,[702.6831275720166,195.95061728395063]],[7436032950540776377,[815.4074074074074,203.25925925925927]],[17729943149159368459,[801.1851851851852,199.90123456790124]],[4854280308383915721,[813.9259259259259,200.2962962962963]],[12058665768506126331,[693.7283950617283,174.35390946502056]],[15817054697695831753,[806.716049382716,206.22222222222223]],[13877679667762731651,[743.4074074074074,234.66666666666669]],[15744271344233846756,[785.7777777777777,205.62962962962965]],[14178520291283306679,[668.4444444444443,183.1111111111111]]]},"segments":{"add":[2336956120616260883,1639796012074210121,3918280827204321712,13932755083907220179,14941832641240060361,94092576912261794,18299135553255571870,3109091330258982137,11037018395008586448,16261506098907231989,8279051592565434787,2367379450383978497,5102625335252315850],"remove":[],"start_point":[[8279051592565434787,5664077098702810122],[94092576912261794,2189722519288419244],[1639796012074210121,6802441093413090533],[14941832641240060361,7436032950540776377],[18299135553255571870,15817054697695831753],[3109091330258982137,15744271344233846756],[11037018395008586448,13877679667762731651],[2367379450383978497,14178520291283306679],[16261506098907231989,13567509413382199058],[5102625335252315850,15575201098426093294],[2336956120616260883,12058665768506126331],[13932755083907220179,17729943149159368459],[3918280827204321712,4854280308383915721]],"end_point":[[18299135553255571870,15744271344233846756],[1639796012074210121,4854280308383915721],[3109091330258982137,13877679667762731651],[14941832641240060361,2189722519288419244],[5102625335252315850,12058665768506126331],[11037018395008586448,13567509413382199058],[2367379450383978497,15575201098426093294],[94092576912261794,15817054697695831753],[16261506098907231989,5664077098702810122],[13932755083907220179,7436032950540776377],[8279051592565434787,14178520291283306679],[2336956120616260883,6802441093413090533],[3918280827204321712,17729943149159368459]],"handle_primary":[[3918280827204321712,[0.0,0.0]],[18299135553255571870,[0.0,0.0]],[94092576912261794,[0.0,0.0]],[2367379450383978497,[-5.037037037036953,-1.7777777777777717]],[16261506098907231989,[0.0,0.0]],[11037018395008586448,[0.0,0.0]],[14941832641240060361,[0.0,0.0]],[1639796012074210121,[0.0,0.0]],[13932755083907220179,[0.0,0.0]],[2336956120616260883,[0.0,0.0]],[5102625335252315850,[0.0,0.0]],[8279051592565434787,[-16.75720164609038,-2.1399176954732297]],[3109091330258982137,[0.0,0.0]]],"handle_end":[[3918280827204321712,[0.0,0.0]],[13932755083907220179,[0.0,0.0]],[5102625335252315850,[-27.12757201646093,2.633744855967052]],[94092576912261794,[0.0,0.0]],[2367379450383978497,[12.740740740740648,5.037037037037038]],[11037018395008586448,[13.168724279835374,22.12345679012344]],[3109091330258982137,[18.962962962963047,2.074074074074048]],[1639796012074210121,[-19.259259259259352,-3.259259259259238]],[2336956120616260883,[-65.77777777777783,13.333333333333314]],[8279051592565434787,[5.037037037036953,1.7777777777777717]],[14941832641240060361,[7.1111111111111995,1.7777777777778]],[18299135553255571870,[10.07407407407402,2.7654320987654444]],[16261506098907231989,[12.1395654462896,1.5502392023748983]]],"stroke":[[3109091330258982137,0],[94092576912261794,0],[13932755083907220179,0],[18299135553255571870,0],[16261506098907231989,0],[8279051592565434787,0],[2336956120616260883,0],[5102625335252315850,0],[3918280827204321712,0],[14941832641240060361,0],[1639796012074210121,0],[2367379450383978497,0],[11037018395008586448,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":3918280827204321712},{"ty":"Primary","segment":13932755083907220179}],[{"ty":"End","segment":16261506098907231989},{"ty":"Primary","segment":8279051592565434787}],[{"ty":"End","segment":8279051592565434787},{"ty":"Primary","segment":2367379450383978497}],[{"ty":"End","segment":94092576912261794},{"ty":"Primary","segment":18299135553255571870}],[{"ty":"End","segment":13932755083907220179},{"ty":"Primary","segment":14941832641240060361}]],"remove_g1_continuous":[[{"ty":"Primary","segment":16261506098907231989},{"ty":"End","segment":11037018395008586448}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9563008199132558110,{"inputs":[{"Node":{"node_id":7855094781869605606,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[18081743490344004315,{"inputs":[{"Node":{"node_id":13588160462734303101,"output_index":0,"lambda":false}},{"Node":{"node_id":18068340617333437755,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6852799892628327372,{"inputs":[{"Node":{"node_id":2025899804080897524,"output_index":0,"lambda":false}},{"Node":{"node_id":16671141883125519098,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17952673493105230490,{"inputs":[{"Node":{"node_id":14228923746783465609,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":20.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[8863346544623578893,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[5480246971175127548,949359986970918930,6461719056721357962,6265491311473200676],"remove":[947514826240006203],"delta":[[6461719056721357962,[173.33333333333331,506.66666666666674]],[949359986970918930,[0.0,608.0]],[5480246971175127548,[364.0,767.9999999999999]],[6265491311473200676,[-2.273736754432321e-13,768.0000000000001]]]},"segments":{"add":[8951068186878308228,9717584104793611782,15710828508798332384,12480300844056666979],"remove":[6561081452252813685,15926511461198813522,11231973846952426191],"start_point":[[8951068186878308228,6461719056721357962],[15710828508798332384,5480246971175127548],[9717584104793611782,949359986970918930],[12480300844056666979,6265491311473200676]],"end_point":[[12480300844056666979,949359986970918930],[8951068186878308228,5480246971175127548],[9717584104793611782,6461719056721357962],[15710828508798332384,6265491311473200676]],"handle_primary":[[8951068186878308228,[121.00000000000006,-37.99999999999994]],[15710828508798332384,null],[9717584104793611782,[0.0,0.0]],[12480300844056666979,null]],"handle_end":[[12480300844056666979,null],[9717584104793611782,[-63.1770926995265,19.84073985604961]],[15710828508798332384,null],[8951068186878308228,[-92.0,-81.99999999999989]]],"stroke":[[15710828508798332384,0],[8951068186878308228,0],[12480300844056666979,0],[9717584104793611782,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":6561081452252813685},{"ty":"Primary","segment":9717584104793611782}],[{"ty":"Primary","segment":9717584104793611782},{"ty":"End","segment":12480300844056666979}],[{"ty":"Primary","segment":8951068186878308228},{"ty":"End","segment":9717584104793611782}]],"remove_g1_continuous":[[{"ty":"End","segment":15926511461198813522},{"ty":"Primary","segment":8951068186878308228}],[{"ty":"Primary","segment":11231973846952426191},{"ty":"End","segment":9717584104793611782}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15692102598187739001,{"inputs":[{"Node":{"node_id":14950060858756810933,"output_index":0,"lambda":false}},{"Node":{"node_id":11201759760883367635,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4421418468606442725,{"inputs":[{"Node":{"node_id":8863346544623578893,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4807760870555738383,{"inputs":[{"Node":{"node_id":876963243827503916,"output_index":0,"lambda":false}},{"Node":{"node_id":8269257328703012432,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4102754869474520966,{"inputs":[{"Node":{"node_id":2723198387862533596,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2880630606834119505,{"inputs":[{"Node":{"node_id":8297015715799006244,"output_index":0,"lambda":false}},{"Node":{"node_id":16322546010403524636,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10265035897167064154,{"inputs":[{"Node":{"node_id":14698962747138962125,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17131529656312051452,{"inputs":[{"Node":{"node_id":13646498613066619660,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7104088139635280554,{"inputs":[{"Node":{"node_id":16785043320296790229,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SolidifyStrokeNode"}},"visible":true,"skip_deduplication":false}],[18068340617333437755,{"inputs":[{"Node":{"node_id":2880630606834119505,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[73.0306419396,-200.8521460039]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.42594097420784194},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999998,0.9999999999999998]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2185437945364824599,{"inputs":[{"Node":{"node_id":18081743490344004315,"output_index":0,"lambda":false}},{"Node":{"node_id":4421418468606442725,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1627123781166851142,{"inputs":[{"Node":{"node_id":4807760870555738383,"output_index":0,"lambda":false}},{"Node":{"node_id":15354358358546908017,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14141479077115894852,{"inputs":[{"Node":{"node_id":15433707377961038695,"output_index":0,"lambda":false}},{"Node":{"node_id":17285637344898461972,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17397123104674848450,{"inputs":[{"Node":{"node_id":1662641269094032596,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15877481873925059044,{"inputs":[{"Node":{"node_id":17299978721726771610,"output_index":0,"lambda":false}},{"Node":{"node_id":7252918969430566594,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13340751444307201866,{"inputs":[{"Node":{"node_id":9135110142507605216,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12741076678082295759,{"inputs":[{"Node":{"node_id":14139765080256493579,"output_index":0,"lambda":false}},{"Node":{"node_id":5449860184735415958,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13916027199283115943,{"inputs":[{"Node":{"node_id":6194305264313730032,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15930698052919171086,{"inputs":[{"Node":{"node_id":13739729101529293427,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4631655038168471552,{"inputs":[{"Node":{"node_id":990192925663920333,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::BoundingBoxNode"}},"visible":true,"skip_deduplication":false}],[17223836790030950966,{"inputs":[{"Node":{"node_id":14030142873804552388,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17056531964793634106,{"inputs":[{"Node":{"node_id":990192925663920333,"output_index":0,"lambda":false}},{"Node":{"node_id":10063704933309776584,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13446205009526451196,{"inputs":[{"Node":{"node_id":14139765080256493579,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15433707377961038695,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[16723991032614525258,1623125309784127684,7209807874503344461,3123395482103162919,2668496811386192321],"remove":[12344391980636687302],"delta":[[1623125309784127684,[643.9258958566198,633.6997633965701]],[16723991032614525258,[553.0000000000001,768.0]],[3123395482103162919,[-2.273736754432321e-13,689.0]],[7209807874503344461,[188.0,694.6666666666669]],[2668496811386192321,[0.0,768.0]]]},"segments":{"add":[3656277643115996070,6789459806904610761,16287649713110748258,16456150086799119359,1652964032977338610],"remove":[1848051273241122771],"start_point":[[1652964032977338610,7209807874503344461],[16287649713110748258,3123395482103162919],[3656277643115996070,16723991032614525258],[16456150086799119359,2668496811386192321],[6789459806904610761,1623125309784127684]],"end_point":[[3656277643115996070,1623125309784127684],[6789459806904610761,7209807874503344461],[16287649713110748258,2668496811386192321],[1652964032977338610,3123395482103162919],[16456150086799119359,16723991032614525258]],"handle_primary":[[3656277643115996070,[0.0,0.0]],[6789459806904610761,[-213.92589585661983,-68.82675604113183]],[16456150086799119359,[0.0,0.0]],[16287649713110748258,[0.0,0.0]],[1652964032977338610,[-81.48609837852206,84.6759456460087]]],"handle_end":[[16456150086799119359,[0.0,0.0]],[16287649713110748258,[0.0,0.0]],[6789459806904610761,[187.33333333333343,-194.6666666666667]],[1652964032977338610,[56.00000000000023,11.0]],[3656277643115996070,[0.0,0.0]]],"stroke":[[16456150086799119359,0],[6789459806904610761,0],[1652964032977338610,0],[3656277643115996070,0],[16287649713110748258,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":16287649713110748258},{"ty":"Primary","segment":16456150086799119359}],[{"ty":"End","segment":6789459806904610761},{"ty":"Primary","segment":1652964032977338610}]],"remove_g1_continuous":[[{"ty":"End","segment":1652964032977338610},{"ty":"Primary","segment":1848051273241122771}],[{"ty":"End","segment":3656277643115996070},{"ty":"Primary","segment":6789459806904610761}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5877930116725120460,{"inputs":[{"Node":{"node_id":4470272391975492611,"output_index":0,"lambda":false}},{"Node":{"node_id":1258994191538244490,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14516211820212764316,{"inputs":[{"Node":{"node_id":2124231869409556689,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,416.7]},"exposed":false}},{"Value":{"tagged_value":{"F64":31.0},"exposed":false}},{"Value":{"tagged_value":{"U32":8},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::RepeatNode"}},"visible":true,"skip_deduplication":false}],[3997031659711823213,{"inputs":[{"Node":{"node_id":6484183251661832039,"output_index":0,"lambda":false}},{"Node":{"node_id":7962101329808960965,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3471746866096043087,{"inputs":[{"Node":{"node_id":5486211022469996717,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7480253252288032958,{"inputs":[{"Node":{"node_id":7104261880154687267,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3079923906392020295,{"inputs":[{"Node":{"node_id":17056531964793634106,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4809200889774783438,{"inputs":[{"Node":{"node_id":3109716240255919254,"output_index":0,"lambda":false}},{"Node":{"node_id":14139129879376457893,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16304636129468583592,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[4648964341912884959,10156053545530752213,16569120368910754547],"remove":[],"delta":[[4648964341912884959,[665.0000000000001,768.0]],[10156053545530752213,[1094.162353515625,594.2965698242188]],[16569120368910754547,[1361.0,768.0]]]},"segments":{"add":[9030015329489789075,2197140374690997530,3433930674303663828],"remove":[],"start_point":[[3433930674303663828,16569120368910754547],[2197140374690997530,10156053545530752213],[9030015329489789075,4648964341912884959]],"end_point":[[9030015329489789075,10156053545530752213],[3433930674303663828,4648964341912884959],[2197140374690997530,16569120368910754547]],"handle_primary":[[2197140374690997530,[79.20069951994813,30.807024746222492]],[3433930674303663828,[0.0,0.0]],[9030015329489789075,[32.66666666666663,-95.99999999999989]]],"handle_end":[[9030015329489789075,[-238.88331323750492,-92.9194336284096]],[2197140374690997530,[-24.333333333333485,-86.99999999999977]],[3433930674303663828,[0.0,0.0]]],"stroke":[[3433930674303663828,0],[9030015329489789075,0],[2197140374690997530,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":9030015329489789075},{"ty":"Primary","segment":2197140374690997530}]],"remove_g1_continuous":[[{"ty":"End","segment":2197140374690997530},{"ty":"Primary","segment":3433930674303663828}],[{"ty":"Primary","segment":9030015329489789075},{"ty":"End","segment":3433930674303663828}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2871608309888343463,{"inputs":[{"Node":{"node_id":12494428953087324640,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,200.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":8},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::RepeatNode"}},"visible":true,"skip_deduplication":false}],[5488285068107445023,{"inputs":[{"Node":{"node_id":7667878689218439065,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3050731459444225191,{"inputs":[{"Node":{"node_id":682567808439406093,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,200.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":12},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::RepeatNode"}},"visible":true,"skip_deduplication":false}],[16306737306999003555,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[6082833770141706533,7903705226822768120,17147466439590042359,13341364271767916194],"remove":[],"delta":[[17147466439590042359,[526.0109927536641,282.1042175292969]],[7903705226822768120,[497.3827160493826,248.88888888888889]],[13341364271767916194,[262.22222222222223,364.1481481481481]],[6082833770141706533,[504.0987654320987,184.6255144032922]]]},"segments":{"add":[14649965831690031908,801877719748058643,9659144961849433642,2255088856072565305],"remove":[],"start_point":[[14649965831690031908,6082833770141706533],[801877719748058643,7903705226822768120],[2255088856072565305,13341364271767916194],[9659144961849433642,17147466439590042359]],"end_point":[[801877719748058643,17147466439590042359],[2255088856072565305,6082833770141706533],[9659144961849433642,13341364271767916194],[14649965831690031908,7903705226822768120]],"handle_primary":[[2255088856072565305,[0.0,0.0]],[14649965831690031908,[0.0,0.0]],[801877719748058643,[13.173601585124231,23.615912208504938]],[9659144961849433642,[0.0,0.0]]],"handle_end":[[801877719748058643,[0.0,0.0]],[2255088856072565305,[-112.09876543209862,43.81893004115227]],[9659144961849433642,[195.55555555555569,-16.14814814814804]],[14649965831690031908,[-17.920501046401128,-32.12553353079403]]],"stroke":[[9659144961849433642,0],[2255088856072565305,0],[801877719748058643,0],[14649965831690031908,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":801877719748058643},{"ty":"Primary","segment":9659144961849433642}],[{"ty":"End","segment":14649965831690031908},{"ty":"Primary","segment":801877719748058643}]],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8297015715799006244,{"inputs":[{"Node":{"node_id":17569892869974995307,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,407.5]},"exposed":false}},{"Value":{"tagged_value":{"F64":24.2},"exposed":false}},{"Value":{"tagged_value":{"U32":8},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::RepeatNode"}},"visible":true,"skip_deduplication":false}],[12867379765049504290,{"inputs":[{"Node":{"node_id":6445954214067437701,"output_index":0,"lambda":false}},{"Node":{"node_id":8863346544623578893,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17740496701763775226,{"inputs":[{"Node":{"node_id":13027689870767713939,"output_index":0,"lambda":false}},{"Node":{"node_id":16609137733952262762,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14808063168960305551,{"inputs":[{"Node":{"node_id":14496934933990319842,"output_index":0,"lambda":false}},{"Node":{"node_id":3471746866096043087,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12494428953087324640,{"inputs":[{"Node":{"node_id":8511737864852441844,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[300.0,50.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":12},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::RepeatNode"}},"visible":true,"skip_deduplication":false}],[15817956847588799375,{"inputs":[{"Node":{"node_id":11201759760883367635,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[2287485748649359627,{"inputs":[{"Node":{"node_id":804622576568168609,"output_index":0,"lambda":false}},{"Node":{"node_id":5449860184735415958,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13646498613066619660,{"inputs":[{"Node":{"node_id":12741076678082295759,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_path_bool::BooleanOperationNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1809704172129195322,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":20.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false}],[2124231869409556689,{"inputs":[{"Node":{"node_id":15877481873925059044,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[876963243827503916,{"inputs":[{"Node":{"node_id":7651693425519490419,"output_index":0,"lambda":false}},{"Node":{"node_id":17223836790030950966,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13838011362258067867,{"inputs":[{"Node":{"node_id":4631655038168471552,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"CentroidType":"Area"},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CentroidNode"}},"visible":true,"skip_deduplication":false}],[7376049709233607419,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[16958489363675356032,7347160684180114694,4322398537034510509,3438797896265725901,16005438712872589849,1674257131044231065,10491326691824745018,9374180853656949931,13358295350421759755,15245407364463454564],"remove":[],"delta":[[16958489363675356032,[658.172839506173,169.08641975308643]],[1674257131044231065,[829.4320987654323,121.67901234567904]],[13358295350421759755,[778.4691358024693,177.1851851851852]],[10491326691824745018,[811.851851851852,148.54320987654322]],[15245407364463454564,[773.530864197531,141.4320987654321]],[7347160684180114694,[772.1481481481483,138.66666666666669]],[9374180853656949931,[784.0000000000002,176.98765432098767]],[3438797896265725901,[795.4567901234569,94.41975308641976]],[4322398537034510509,[776.888888888889,117.53086419753087]],[16005438712872589849,[817.1851851851852,94.61728395061728]]]},"segments":{"add":[11663644781855838202,198953627342130434,8327087349631976772,13015157349146777770,8528911024810728168,3235570761188242773,16847383896493391194,16846650637386857857,3784798568712268630,12873317883441611394],"remove":[],"start_point":[[8327087349631976772,4322398537034510509],[198953627342130434,7347160684180114694],[11663644781855838202,16958489363675356032],[8528911024810728168,16005438712872589849],[3784798568712268630,13358295350421759755],[13015157349146777770,3438797896265725901],[3235570761188242773,1674257131044231065],[16846650637386857857,9374180853656949931],[12873317883441611394,15245407364463454564],[16847383896493391194,10491326691824745018]],"end_point":[[8528911024810728168,1674257131044231065],[198953627342130434,4322398537034510509],[11663644781855838202,7347160684180114694],[16846650637386857857,13358295350421759755],[3235570761188242773,10491326691824745018],[8327087349631976772,3438797896265725901],[13015157349146777770,16005438712872589849],[16847383896493391194,9374180853656949931],[3784798568712268630,15245407364463454564],[12873317883441611394,16958489363675356032]],"handle_primary":[[13015157349146777770,[0.0,0.0]],[3235570761188242773,[0.1975308641974607,7.703703703703709]],[8327087349631976772,[-0.19753086419757435,-13.82716049382715]],[11663644781855838202,[0.0,0.0]],[8528911024810728168,[5.530864197530946,5.925925925925924]],[12873317883441611394,[-19.75308641975323,2.172839506172835]],[16846650637386857857,[0.0,0.0]],[198953627342130434,[0.0,0.3950617283950635]],[3784798568712268630,[-2.962962962963161,-10.864197530864232]],[16847383896493391194,[-17.185185185185105,13.234567901234584]]],"handle_end":[[3784798568712268630,[2.9629629629629335,5.135802469135797]],[12873317883441611394,[33.382716049382566,14.222222222222172]],[8528911024810728168,[-0.1975308641974607,-7.703703703703709]],[8327087349631976772,[0.0,0.0]],[198953627342130434,[0.19753086419757435,13.82716049382715]],[3235570761188242773,[17.185185185185105,-13.234567901234584]],[13015157349146777770,[-5.530864197530946,-5.925925925925924]],[16847383896493391194,[0.0,0.0]],[16846650637386857857,[0.0,0.0]],[11663644781855838202,[-74.27160493827171,29.03703703703698]]],"stroke":[[3784798568712268630,0],[198953627342130434,0],[8327087349631976772,0],[13015157349146777770,0],[3235570761188242773,0],[16846650637386857857,0],[16847383896493391194,0],[12873317883441611394,0],[11663644781855838202,0],[8528911024810728168,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":13015157349146777770},{"ty":"Primary","segment":8528911024810728168}],[{"ty":"End","segment":198953627342130434},{"ty":"Primary","segment":8327087349631976772}],[{"ty":"End","segment":8327087349631976772},{"ty":"Primary","segment":13015157349146777770}],[{"ty":"End","segment":8528911024810728168},{"ty":"Primary","segment":3235570761188242773}],[{"ty":"End","segment":16847383896493391194},{"ty":"Primary","segment":16846650637386857857}],[{"ty":"End","segment":3235570761188242773},{"ty":"Primary","segment":16847383896493391194}]],"remove_g1_continuous":[[{"ty":"End","segment":3784798568712268630},{"ty":"Primary","segment":12873317883441611394}],[{"ty":"End","segment":16846650637386857857},{"ty":"Primary","segment":3784798568712268630}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7977952035097419157,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::EllipseNode"}},"visible":true,"skip_deduplication":false}],[7667878689218439065,{"inputs":[{"Node":{"node_id":18271512507682813443,"output_index":0,"lambda":false}},{"Node":{"node_id":5449860184735415958,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14030142873804552388,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[11163144542703672167,7233902871991446034,9403888920678312544,5714042674660607880,9912917483675332510],"remove":[],"delta":[[9403888920678312544,[1271.0,199.0]],[5714042674660607880,[1536.0,0.0]],[11163144542703672167,[763.0,0.0]],[7233902871991446034,[908.0,134.0]],[9912917483675332510,[1536.0,254.00000000000009]]]},"segments":{"add":[7099980686025805826,11879054056208937348,7804540624589615499,3118709054343469746,12085471811343146506],"remove":[8174738144062904321],"start_point":[[3118709054343469746,9403888920678312544],[7804540624589615499,5714042674660607880],[12085471811343146506,9912917483675332510],[7099980686025805826,11163144542703672167],[11879054056208937348,7233902871991446034]],"end_point":[[7099980686025805826,7233902871991446034],[11879054056208937348,9403888920678312544],[12085471811343146506,5714042674660607880],[3118709054343469746,9912917483675332510],[7804540624589615499,11163144542703672167]],"handle_primary":[[3118709054343469746,[191.0,-106.0]],[12085471811343146506,[0.0,0.0]],[7804540624589615499,[0.0,0.0]],[7099980686025805826,[0.0,0.0]],[11879054056208937348,[68.41365603453937,54.51084151791355]]],"handle_end":[[7099980686025805826,[-68.41365603453914,-54.51084151791349]],[3118709054343469746,[0.0,0.0]],[11879054056208937348,[-121.83694366711715,67.61631428646292]],[12085471811343146506,[0.0,0.0]],[7804540624589615499,[0.0,0.0]]],"stroke":[[12085471811343146506,0],[3118709054343469746,0],[11879054056208937348,0],[7804540624589615499,0],[7099980686025805826,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":7099980686025805826},{"ty":"Primary","segment":11879054056208937348}],[{"ty":"End","segment":11879054056208937348},{"ty":"Primary","segment":3118709054343469746}],[{"ty":"End","segment":11879054056208937348},{"ty":"Primary","segment":8174738144062904321}]],"remove_g1_continuous":[[{"ty":"End","segment":3118709054343469746},{"ty":"Primary","segment":12085471811343146506}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[2871608309888343463,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[682567808439406093,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15433707377961038695,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,87]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4102754869474520966,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3214181946162459584,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18351415092709164412,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5486211022469996717,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,75]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14141479077115894852,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,87]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4771789845668099116,{"persistent_metadata":{"reference":"Merge","display_name":"Cheek Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13795432594059356320,{"persistent_metadata":{"reference":"Flatten Path","display_name":"Flatten Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5534800796196967885,{"persistent_metadata":{"reference":"Centroid","display_name":"Centroid","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Centroid Type","input_description":""}}],"output_names":["DVec2"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,109]}}},"network_metadata":null}}],[7855094781869605606,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,87]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10063704933309776584,{"persistent_metadata":{"reference":"Multiply","display_name":"Multiply","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplier","input_description":"The left-hand side of the multiplication operation.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplicand","input_description":"The right-hand side of the multiplication operation.\n"}}],"output_names":["f64"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,101]}}},"network_metadata":null}}],[8269257328703012432,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18003287685830153881,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,72]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17952673493105230490,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-42,133]}}},"network_metadata":null}}],[18081743490344004315,{"persistent_metadata":{"reference":"Merge","display_name":"Hair Dots Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16304636129468583592,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,135]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1491840484128555837,{"persistent_metadata":{"reference":"Merge","display_name":"Face Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":3}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11095670964487764044,{"persistent_metadata":{"reference":"Merge","display_name":"Hair Strand 2","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11201759760883367635,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,64]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16759836951269190891,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17562801632450633291,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2287485748649359627,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12867379765049504290,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6484183251661832039,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,93]}}},"network_metadata":null}}],[17271572793812678706,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17223836790030950966,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17740294143355019755,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16671141883125519098,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1508440849951861669,{"persistent_metadata":{"reference":"Merge","display_name":"Face Red","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[294265135510952894,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-71,93]}}},"network_metadata":null}}],[15877481873925059044,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17056531964793634106,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[392274448837115448,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":true},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":true,"unit":" px"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-4,9]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7201841978411396053,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Black","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":2}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13353438235848911576,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14139765080256493579,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,138]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18188505856445531484,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12145355397916841389,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3050731459444225191,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6787585796949551500,{"persistent_metadata":{"reference":"Merge","display_name":"Hair Strand 1","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-8,12]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7977952035097419157,{"persistent_metadata":{"reference":"Ellipse","display_name":"Ellipse","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius Y","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17131529656312051452,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1627123781166851142,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Corner Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2185437945364824599,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Left White","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14257963317028524134,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18053728639616073084,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6726954210929537972,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12494428953087324640,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17753909951719808506,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Left Red","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6616450276140292763,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13838011362258067867,{"persistent_metadata":{"reference":"Centroid","display_name":"Centroid","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Centroid Type","input_description":""}}],"output_names":["DVec2"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,103]}}},"network_metadata":null}}],[3608604157153838227,{"persistent_metadata":{"reference":"Bounding Box","display_name":"Bounding Box","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,109]}}},"network_metadata":null}}],[18068340617333437755,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9338394475379815879,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6852799892628327372,{"persistent_metadata":{"reference":"Merge","display_name":"Head Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1001728975241745659,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3079923906392020295,{"persistent_metadata":{"reference":"To Graphic","display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Element","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11264395591110193456,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-78,93]}}},"network_metadata":null}}],[11429506195623419966,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18031616785650843168,{"persistent_metadata":{"reference":"Solidify Stroke","display_name":"Solidify Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-35,133]}}},"network_metadata":null}}],[15692102598187739001,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,57]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17285637344898461972,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,81]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5877930116725120460,{"persistent_metadata":{"reference":"Merge","display_name":"Rear Eyelash","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9135110142507605216,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12709602171929957216,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Left Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16177422101884031678,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17569892869974995307,{"persistent_metadata":{"reference":"To Graphic","display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Element","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17603523494627491590,{"persistent_metadata":{"reference":"Merge","display_name":"Lip Top","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10265035897167064154,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16785043320296790229,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7667878689218439065,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5014806436727666175,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8359580532088731394,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[57390435731316553,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2025899804080897524,{"persistent_metadata":{"reference":"Merge","display_name":"Face White","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16322546010403524636,{"persistent_metadata":{"reference":"Centroid","display_name":"Centroid","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Centroid Type","input_description":""}}],"output_names":["DVec2"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,96]}}},"network_metadata":null}}],[8297015715799006244,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13588160462734303101,{"persistent_metadata":{"reference":"Merge","display_name":"Hair Dots Red","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":3}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1097494158696050491,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-78,99]}}},"network_metadata":null}}],[8863346544623578893,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,90]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8566844905246185636,{"persistent_metadata":{"reference":"Merge","display_name":"Mouth Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17735408893002232096,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15817956847588799375,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17495267820524300686,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14684142559936015947,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5888633415105234509,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4631655038168471552,{"persistent_metadata":{"reference":"Bounding Box","display_name":"Bounding Box","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,103]}}},"network_metadata":null}}],[11301831865756336526,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17299978721726771610,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,106]}}},"network_metadata":null}}],[5488285068107445023,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3410481056630111806,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-71,99]}}},"network_metadata":null}}],[8426490990601560741,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13027689870767713939,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Black - Dots","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6445954214067437701,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17351444026127625357,{"persistent_metadata":{"reference":"Merge","display_name":"Face Black","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9071802450034150503,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3750439930725791025,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[876963243827503916,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Red","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4470272391975492611,{"persistent_metadata":{"reference":"Merge","display_name":"Rose Sliver Silhouette","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2723198387862533596,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12922148192688274227,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8460565235419043665,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1809704172129195322,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-78,106]}}},"network_metadata":null}}],[14228923746783465609,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-49,135]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4328376070224119511,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10760002922115563021,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4301099429811409147,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1009114585722052052,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,57]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1662641269094032596,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18095952297474762348,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16609137733952262762,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4807760870555738383,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Main Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2124231869409556689,{"persistent_metadata":{"reference":"To Graphic","display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Element","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6194305264313730032,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9808637865669223270,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2834866505092039323,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10995640810984321903,{"persistent_metadata":{"reference":"Merge","display_name":"Lip Bottom","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14808063168960305551,{"persistent_metadata":{"reference":"Merge","display_name":"Face Blue","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17740496701763775226,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Blue","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7962101329808960965,{"persistent_metadata":{"reference":"Multiply","display_name":"Multiply","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplier","input_description":"The left-hand side of the multiplication operation.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplicand","input_description":"The right-hand side of the multiplication operation.\n"}}],"output_names":["f64"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,94]}}},"network_metadata":null}}],[13739729101529293427,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16306737306999003555,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[990192925663920333,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,99]}}},"network_metadata":null}}],[11210964267417873667,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4261249487994076490,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7104261880154687267,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3471746866096043087,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14950060858756810933,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,60]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9563008199132558110,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7376049709233607419,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11373527190663101881,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18271512507682813443,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7104088139635280554,{"persistent_metadata":{"reference":"Solidify Stroke","display_name":"Solidify Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12353675714904258944,{"persistent_metadata":{"reference":"Merge","display_name":"Nose Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14690269209726153565,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13446205009526451196,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8511737864852441844,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17036604842139972912,{"persistent_metadata":{"reference":"Merge","display_name":"Hair Dots Blue","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":4}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12234961922142600898,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Black","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":12}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5954536408321808728,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4809200889774783438,{"persistent_metadata":{"reference":"Merge","display_name":"Front Eye","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5556372312033787775,{"persistent_metadata":{"reference":"Bounding Box","display_name":"Bounding Box","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,96]}}},"network_metadata":null}}],[14516211820212764316,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11196821089257149774,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6503655938154160104,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-35,44]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14139129879376457893,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14030142873804552388,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-36,66]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5856350938151339368,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16780039553038473906,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13646498613066619660,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-35,118]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[804622576568168609,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13340751444307201866,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15930698052919171086,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10286817149456341619,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5449860184735415958,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,124]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17696051535511578981,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-41,47]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13916027199283115943,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12741076678082295759,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-42,118]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12770183061753030023,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7029437790788498388,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-71,106]}}},"network_metadata":null}}],[7651693425519490419,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Blue","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7252918969430566594,{"persistent_metadata":{"reference":"Multiply","display_name":"Multiply","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplier","input_description":"The left-hand side of the multiplication operation.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplicand","input_description":"The right-hand side of the multiplication operation.\n"}}],"output_names":["f64"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,107]}}},"network_metadata":null}}],[7755499790391969923,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17397123104674848450,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3997031659711823213,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4560146526699152877,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13670206802546093234,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2880630606834119505,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15900830679378240619,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1258994191538244490,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13203761224559198689,{"persistent_metadata":{"reference":"Merge","display_name":"Front Eye Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13616602029989984195,{"persistent_metadata":{"reference":"Flatten Path","display_name":"Flatten Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12276520439585231336,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7018444885869143173,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Black - Dots","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12185047359007423618,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15301503532602557206,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10080296672372912698,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14496934933990319842,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Left Blue","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6728362629909402903,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14698962747138962125,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7480253252288032958,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8887924609778270360,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15354358358546908017,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4421418468606442725,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[140396870212231820,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3109716240255919254,{"persistent_metadata":{"reference":"Merge","display_name":"Front Eyebrow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[866.5700198973645,-2549.4579096366515],"tilt":0.0,"zoom":0.6666666666666666,"flip":false},"node_graph_to_viewport":[0.6666666666666666,0.0,0.0,0.6666666666666666,1568.0,-1119.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[3410481056630111806],[1097494158696050491],[3410481056630111806],[11684705487012407227],[],[294265135510952894],[],[],[],[13340751444307201866],[3765280235392282097],[3765280235392282097],[],[13795432594059356320],[],[2871608309888343463],[2871608309888343463,12494428953087324640],[3765280235392282097,12494428953087324640,2871608309888343463],[8511737864852441844,2871608309888343463,12494428953087324640,3765280235392282097],[],[13795432594059356320],[],[12494428953087324640,2871608309888343463],[2871608309888343463,3765280235392282097,12494428953087324640],[12494428953087324640,2871608309888343463,3765280235392282097,8511737864852441844],[],[3765280235392282097],[],[],[13616602029989984195],[],[],[],[16780039553038473906],[7104088139635280554],[],[],[7104088139635280554],[],[7104088139635280554],[],[],[16785043320296790229],[6503655938154160104],[17696051535511578981],[6503655938154160104],[17696051535511578981],[9071802450034150503],[],[17696051535511578981],[6503655938154160104],[],[18031616785650843168],[17952673493105230490],[],[4328376070224119511],[18031616785650843168,3750439930725791025,13446205009526451196,7201841978411396053,17735408893002232096,11196821089257149774,13027689870767713939,17952673493105230490,14228923746783465609,4328376070224119511],[13027689870767713939,16609137733952262762,12276520439585231336,13795432594059356320,7201841978411396053,17740496701763775226,13340751444307201866,5888633415105234509,17735408893002232096,9135110142507605216,3750439930725791025,11196821089257149774,17397123104674848450,13446205009526451196,4328376070224119511,14228923746783465609,1662641269094032596,18031616785650843168,17952673493105230490],[5888633415105234509,17740496701763775226,14228923746783465609,12276520439585231336,18031616785650843168,16306737306999003555,6852799892628327372,17952673493105230490,3750439930725791025,16671141883125519098,13446205009526451196,11196821089257149774,1662641269094032596,9135110142507605216,17397123104674848450,3214181946162459584,13027689870767713939,16609137733952262762,7201841978411396053,13795432594059356320,17735408893002232096,2871608309888343463,4328376070224119511,2025899804080897524,13340751444307201866],[17952673493105230490,13027689870767713939,13646498613066619660,14139765080256493579,3214181946162459584,13795432594059356320,1662641269094032596,16671141883125519098,17740496701763775226,16306737306999003555,17735408893002232096,14228923746783465609,4328376070224119511,12276520439585231336,9135110142507605216,11196821089257149774,2025899804080897524,17397123104674848450,5888633415105234509,7201841978411396053,16609137733952262762,2871608309888343463,16304636129468583592,13446205009526451196,17131529656312051452,8566844905246185636,5449860184735415958,3750439930725791025,18031616785650843168,12494428953087324640,12741076678082295759,6852799892628327372,13340751444307201866],[3750439930725791025,5888633415105234509,18031616785650843168,12494428953087324640,13340751444307201866,16306737306999003555,17952673493105230490,17397123104674848450,13795432594059356320,12741076678082295759,7201841978411396053,9135110142507605216,3214181946162459584,2871608309888343463,6852799892628327372,13646498613066619660,17740496701763775226,17131529656312051452,16671141883125519098,13446205009526451196,12276520439585231336,14139765080256493579,14228923746783465609,5449860184735415958,4328376070224119511,16609137733952262762,17735408893002232096,16304636129468583592,8566844905246185636,1662641269094032596,2025899804080897524,11196821089257149774,13027689870767713939,8511737864852441844],[13340751444307201866,5888633415105234509,14139765080256493579,8566844905246185636,13795432594059356320,16609137733952262762,5449860184735415958,13027689870767713939,6852799892628327372,3750439930725791025,8511737864852441844,11196821089257149774,12494428953087324640,17131529656312051452,16306737306999003555,2834866505092039323,17735408893002232096,13646498613066619660,18031616785650843168,12276520439585231336,17740496701763775226,3214181946162459584,12741076678082295759,16671141883125519098,9135110142507605216,14228923746783465609,2871608309888343463,16304636129468583592,2025899804080897524,17397123104674848450,17952673493105230490,1662641269094032596,7201841978411396053,13446205009526451196,4328376070224119511],[9135110142507605216,12276520439585231336,2871608309888343463,1508440849951861669,2025899804080897524,7201841978411396053,11196821089257149774,17740496701763775226,13446205009526451196,6852799892628327372,3214181946162459584,1662641269094032596,4328376070224119511,12741076678082295759,13340751444307201866,13795432594059356320,16671141883125519098,14139765080256493579,5888633415105234509,17735408893002232096,18031616785650843168,17131529656312051452,13027689870767713939,8566844905246185636,17952673493105230490,2834866505092039323,5449860184735415958,16304636129468583592,16609137733952262762,16306737306999003555,17397123104674848450,13646498613066619660,14228923746783465609,3750439930725791025,12494428953087324640,8511737864852441844],[17397123104674848450,13340751444307201866,12494428953087324640,13446205009526451196,3214181946162459584,17131529656312051452,16609137733952262762,16306737306999003555,12276520439585231336,2871608309888343463,4328376070224119511,16304636129468583592,17740496701763775226,7201841978411396053,2834866505092039323,9135110142507605216,8511737864852441844,5888633415105234509,13795432594059356320,17952673493105230490,7480253252288032958,11196821089257149774,5449860184735415958,14228923746783465609,3750439930725791025,13027689870767713939,17735408893002232096,1508440849951861669,8566844905246185636,18031616785650843168,13646498613066619660,14139765080256493579,7104261880154687267,2025899804080897524,12741076678082295759,1662641269094032596,6852799892628327372,16671141883125519098],[17952673493105230490,7104261880154687267,18031616785650843168,8566844905246185636,17735408893002232096,7201841978411396053,12741076678082295759,5449860184735415958,16609137733952262762,1662641269094032596,3214181946162459584,11196821089257149774,1508440849951861669,13340751444307201866,13446205009526451196,8511737864852441844,9135110142507605216,6852799892628327372,3750439930725791025,13795432594059356320,4328376070224119511,17131529656312051452,16304636129468583592,16306737306999003555,17740496701763775226,12494428953087324640,17397123104674848450,16671141883125519098,5888633415105234509,12276520439585231336,2834866505092039323,7480253252288032958,18095952297474762348,13646498613066619660,2871608309888343463,2025899804080897524,14228923746783465609,14139765080256493579,13027689870767713939],[1491840484128555837,7104261880154687267,17397123104674848450,8511737864852441844,13446205009526451196,13795432594059356320,14228923746783465609,7480253252288032958,2025899804080897524,17735408893002232096,16306737306999003555,17740496701763775226,12741076678082295759,13646498613066619660,4328376070224119511,12276520439585231336,18031616785650843168,3750439930725791025,3214181946162459584,2871608309888343463,5888633415105234509,16304636129468583592,13340751444307201866,1662641269094032596,11196821089257149774,5449860184735415958,16671141883125519098,13027689870767713939,17952673493105230490,6852799892628327372,17131529656312051452,14139765080256493579,1508440849951861669,18095952297474762348,8566844905246185636,12494428953087324640,16609137733952262762,2834866505092039323,9135110142507605216,7201841978411396053],[13027689870767713939,8511737864852441844,2871608309888343463,3214181946162459584,14228923746783465609,9808637865669223270,1508440849951861669,12494428953087324640,7201841978411396053,16671141883125519098,13340751444307201866,140396870212231820,1491840484128555837,13446205009526451196,14139765080256493579,5888633415105234509,2834866505092039323,7480253252288032958,17397123104674848450,17740496701763775226,1662641269094032596,18095952297474762348,16306737306999003555,16304636129468583592,17735408893002232096,12276520439585231336,16609137733952262762,4328376070224119511,13795432594059356320,7104261880154687267,5449860184735415958,17131529656312051452,13646498613066619660,6852799892628327372,3750439930725791025,2025899804080897524,9135110142507605216,5954536408321808728,11196821089257149774,12741076678082295759,8566844905246185636,17952673493105230490,18031616785650843168],[7252918969430566594,15877481873925059044,4261249487994076490,5534800796196967885,17036604842139972912],[5534800796196967885,11210964267417873667,4261249487994076490,17036604842139972912,2124231869409556689,7252918969430566594,14516211820212764316,15877481873925059044],[17036604842139972912,4261249487994076490,11210964267417873667,3608604157153838227,15877481873925059044,5534800796196967885,2124231869409556689,14516211820212764316,7252918969430566594],[14516211820212764316,4261249487994076490,11210964267417873667,7252918969430566594,15877481873925059044,17036604842139972912,5534800796196967885,3608604157153838227,2124231869409556689,17299978721726771610],[7252918969430566594,11210964267417873667,15877481873925059044,3608604157153838227,4261249487994076490,2124231869409556689,17299978721726771610,7029437790788498388,5534800796196967885,14516211820212764316,17036604842139972912],[4261249487994076490,17036604842139972912,5534800796196967885,17299978721726771610,7252918969430566594,3608604157153838227,14516211820212764316,11210964267417873667,1809704172129195322,2124231869409556689,15877481873925059044,7029437790788498388],[57390435731316553,13838011362258067867,17056531964793634106,4631655038168471552,13588160462734303101,10063704933309776584],[3410481056630111806,13838011362258067867,990192925663920333,57390435731316553,4631655038168471552,8460565235419043665,10063704933309776584,3079923906392020295,13588160462734303101,4301099429811409147,17056531964793634106],[57390435731316553,1097494158696050491,3410481056630111806,990192925663920333,8460565235419043665,13588160462734303101,13838011362258067867,17056531964793634106,4631655038168471552,3079923906392020295,4301099429811409147,10063704933309776584],[13588160462734303101],[4301099429811409147,8460565235419043665,13588160462734303101,57390435731316553],[3079923906392020295,17056531964793634106,4301099429811409147,8460565235419043665,57390435731316553,13588160462734303101],[57390435731316553,13588160462734303101,4301099429811409147,10063704933309776584,3079923906392020295,8460565235419043665,17056531964793634106],[4301099429811409147,990192925663920333,10063704933309776584,57390435731316553,17056531964793634106,3079923906392020295,8460565235419043665,13588160462734303101],[3410481056630111806,57390435731316553,990192925663920333,13588160462734303101,10063704933309776584,8460565235419043665,3079923906392020295,4301099429811409147,17056531964793634106],[3410481056630111806,13588160462734303101,57390435731316553,3079923906392020295,17056531964793634106,10063704933309776584,4301099429811409147,1097494158696050491,990192925663920333,8460565235419043665],[17056531964793634106,4631655038168471552,10063704933309776584,3410481056630111806,8460565235419043665,3079923906392020295,990192925663920333,1097494158696050491,13838011362258067867,13588160462734303101,4301099429811409147,57390435731316553],[11210964267417873667,4261249487994076490,14516211820212764316,17036604842139972912],[14516211820212764316,7252918969430566594,4261249487994076490,15877481873925059044,17036604842139972912,2124231869409556689,11210964267417873667],[7252918969430566594,17299978721726771610,15877481873925059044,4261249487994076490,17036604842139972912,11210964267417873667,14516211820212764316,2124231869409556689],[4261249487994076490,15877481873925059044,14516211820212764316,7252918969430566594,17299978721726771610,11210964267417873667,17036604842139972912,7029437790788498388,2124231869409556689],[15877481873925059044,7252918969430566594,4261249487994076490,17036604842139972912,17299978721726771610,1809704172129195322,7029437790788498388,2124231869409556689,11210964267417873667,14516211820212764316],[2124231869409556689,5534800796196967885,7029437790788498388,7252918969430566594,14516211820212764316,4261249487994076490,11210964267417873667,15877481873925059044,17299978721726771610,3608604157153838227,1809704172129195322,17036604842139972912],[17299978721726771610,4261249487994076490,1809704172129195322,7029437790788498388,14516211820212764316,11210964267417873667,15877481873925059044,17036604842139972912,7252918969430566594,2124231869409556689],[14516211820212764316,15877481873925059044,17299978721726771610,7252918969430566594,17036604842139972912,1809704172129195322,5534800796196967885,7029437790788498388,4261249487994076490,11210964267417873667,2124231869409556689,3608604157153838227],[4328376070224119511],[13340751444307201866,6852799892628327372,14228923746783465609,2871608309888343463,11196821089257149774,9135110142507605216,17740496701763775226,12276520439585231336,2025899804080897524,3750439930725791025,1662641269094032596,5888633415105234509,4328376070224119511,17735408893002232096,7201841978411396053,17397123104674848450,13795432594059356320,18031616785650843168,16609137733952262762,13027689870767713939,17952673493105230490,3214181946162459584,16671141883125519098,16306737306999003555,13446205009526451196],[3750439930725791025,12741076678082295759,7201841978411396053,7480253252288032958,13446205009526451196,3214181946162459584,13340751444307201866,13646498613066619660,14139765080256493579,6852799892628327372,16306737306999003555,4328376070224119511,8566844905246185636,7104261880154687267,12494428953087324640,5449860184735415958,1662641269094032596,17740496701763775226,17952673493105230490,16304636129468583592,2025899804080897524,9135110142507605216,2871608309888343463,18031616785650843168,2834866505092039323,13027689870767713939,13795432594059356320,12276520439585231336,11196821089257149774,17397123104674848450,16609137733952262762,17131529656312051452,14228923746783465609,16671141883125519098,5888633415105234509,8511737864852441844,17735408893002232096,1508440849951861669],[17131529656312051452,16306737306999003555,12276520439585231336,17735408893002232096,18095952297474762348,7201841978411396053,17740496701763775226,14139765080256493579,13795432594059356320,8511737864852441844,4328376070224119511,6852799892628327372,5449860184735415958,140396870212231820,14228923746783465609,13446205009526451196,11196821089257149774,9808637865669223270,1508440849951861669,13027689870767713939,1491840484128555837,5954536408321808728,17397123104674848450,9135110142507605216,2871608309888343463,18031616785650843168,2834866505092039323,3214181946162459584,3750439930725791025,1662641269094032596,13646498613066619660,16304636129468583592,8566844905246185636,7480253252288032958,5888633415105234509,2025899804080897524,12741076678082295759,16671141883125519098,12494428953087324640,17952673493105230490,16609137733952262762,7104261880154687267,13340751444307201866],[17036604842139972912],[13588160462734303101],[18081743490344004315],[]],"selection_redo_history":[]}}},"collapsed":[],"name":"painted-dreams.graphite","commit_hash":"3a591dac6a53454813c8df6ceed5b44b91d1e816","document_ptz":{"pan":[-768.2748744089959,-384.56142660725646],"tilt":0.0,"zoom":1.0,"flip":false},"document_mode":"DesignMode","view_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file +{"network_interface":{"network":{"exports":[{"Node":{"node_id":392274448837115448,"output_index":0}}],"nodes":[[13353438235848911576,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[6379137305818664393,18442321214082298093,18118267825025549699,6351696498298648253,17863574903157697896,4691860614575868200,301778328144628917,10625296323957562985,533731991408535384,13357220652574593654,15992617814592812350],"remove":[],"delta":[[10625296323957562985,[473.4814814814815,272.5925925925926]],[18118267825025549699,[642.0740740740741,0.0]],[301778328144628917,[493.5149940383244,200.29629629629628]],[533731991408535384,[501.6296296296296,175.40740740740742]],[18442321214082298093,[565.6296296296297,122.96296296296298]],[4691860614575868200,[528.2962962962963,283.8518518518518]],[6379137305818664393,[625.4814814814813,0.0]],[15992617814592812350,[621.0370370370368,0.0]],[6351696498298648253,[646.8148148148149,0.0]],[17863574903157697896,[606.8148151308641,95.19407372365433]],[13357220652574593654,[574.2222222222222,108.44444444444449]]]},"segments":{"add":[13662059715350867364,3384102572540409881,12035095010819582754,10146665273368938971,318560030360358929,8462655819889292900,3303411878775644985,8661113083384527971,2035327810332855521,11346538709718766144,3710133387837274291],"remove":[],"start_point":[[3303411878775644985,301778328144628917],[11346538709718766144,13357220652574593654],[2035327810332855521,533731991408535384],[10146665273368938971,6351696498298648253],[8661113083384527971,10625296323957562985],[8462655819889292900,4691860614575868200],[12035095010819582754,18118267825025549699],[13662059715350867364,6379137305818664393],[318560030360358929,17863574903157697896],[3710133387837274291,15992617814592812350],[3384102572540409881,18442321214082298093]],"end_point":[[11346538709718766144,15992617814592812350],[8462655819889292900,301778328144628917],[3710133387837274291,6379137305818664393],[10146665273368938971,17863574903157697896],[2035327810332855521,13357220652574593654],[8661113083384527971,533731991408535384],[3303411878775644985,10625296323957562985],[3384102572540409881,18118267825025549699],[12035095010819582754,6351696498298648253],[318560030360358929,4691860614575868200],[13662059715350867364,18442321214082298093]],"handle_primary":[[11346538709718766144,[9.925839724176626,-9.951533978271286]],[8462655819889292900,[0.0,0.0]],[8661113083384527971,[0.2962962962963047,0.2962962962963047]],[2035327810332855521,[42.96296296296293,-41.7777777777778]],[3384102572540409881,[0.0,0.0]],[12035095010819582754,[0.0,0.0]],[3710133387837274291,[0.0,0.0]],[3303411878775644985,[0.0,0.0]],[10146665273368938971,[0.0,0.0]],[13662059715350867364,[0.0,0.0]],[318560030360358929,[-46.95465552079859,46.40007297527743]]],"handle_end":[[10146665273368938971,[48.16592595101224,-47.597037061827145]],[3384102572540409881,[0.5807410754567854,77.36888852918523]],[3710133387837274291,[0.0,0.0]],[11346538709718766144,[1.1377781018271662,63.71555518874077]],[12035095010819582754,[0.0,0.0]],[8661113083384527971,[-42.34888386913234,41.180638796880466]],[318560030360358929,[-97.48148148148152,-81.18518518518522]],[8462655819889292900,[-21.74426522093495,47.99999999999997]],[3303411878775644985,[-6.2222222222222285,-40.59259259259261]],[2035327810332855521,[-8.299214014278164,8.32069754812484]],[13662059715350867364,[68.68148181185177,-54.8859262904691]]],"stroke":[[10146665273368938971,0],[3710133387837274291,0],[13662059715350867364,0],[11346538709718766144,0],[318560030360358929,0],[2035327810332855521,0],[3384102572540409881,0],[3303411878775644985,0],[8661113083384527971,0],[8462655819889292900,0],[12035095010819582754,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":10146665273368938971},{"ty":"Primary","segment":318560030360358929}],[{"ty":"Primary","segment":11346538709718766144},{"ty":"End","segment":2035327810332855521}],[{"ty":"End","segment":8661113083384527971},{"ty":"Primary","segment":2035327810332855521}],[{"ty":"End","segment":12035095010819582754},{"ty":"Primary","segment":10146665273368938971}]],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16671141883125519098,{"inputs":[{"Node":{"node_id":16306737306999003555,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6445954214067437701,{"inputs":[{"Node":{"node_id":13670206802546093234,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[140396870212231820,{"inputs":[{"Node":{"node_id":18095952297474762348,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5449860184735415958,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[17520941196305861319,6029995238423674441,16590926169549948521,12817219955590128894,4723170318056755559,12317789037775437786,17339925811006567497,4659274885664969740,1541401134848201833,17321098837874422287,11084016020553554647,9729762716079513741,13279221198527484331,7727030009292816503,15701538241214188894],"remove":[],"delta":[[17339925811006567497,[898.0,468.0]],[15701538241214188894,[0.0,0.0]],[13279221198527484331,[564.0,768.0]],[16590926169549948521,[869.0,147.0]],[17321098837874422287,[802.6666666666667,656.4444444444445]],[7727030009292816503,[0.0,768.0]],[12817219955590128894,[933.0,273.0]],[1541401134848201833,[886.0,572.0]],[12317789037775437786,[902.0,394.0]],[6029995238423674441,[898.0,46.0]],[11084016020553554647,[655.0,636.0]],[4659274885664969740,[896.0,523.0]],[9729762716079513741,[585.0,666.0]],[17520941196305861319,[889.0,0.0]],[4723170318056755559,[923.0,349.0]]]},"segments":{"add":[862900208337901235,4806484166818510930,11569179934425192262,9808624553037921371,9730229894941201870,1248401493076165062,8832757535144158913,15056691877609602335,8919277736361106420,16631919016540861133,9314952320711038398,10137845066833192587,14740183693208469558,3307452201570141575,3876401232874291775],"remove":[],"start_point":[[9730229894941201870,4723170318056755559],[4806484166818510930,6029995238423674441],[8919277736361106420,1541401134848201833],[9314952320711038398,11084016020553554647],[862900208337901235,17520941196305861319],[3307452201570141575,7727030009292816503],[8832757535144158913,17339925811006567497],[3876401232874291775,15701538241214188894],[11569179934425192262,16590926169549948521],[16631919016540861133,17321098837874422287],[15056691877609602335,4659274885664969740],[10137845066833192587,9729762716079513741],[9808624553037921371,12817219955590128894],[1248401493076165062,12317789037775437786],[14740183693208469558,13279221198527484331]],"end_point":[[1248401493076165062,17339925811006567497],[11569179934425192262,12817219955590128894],[862900208337901235,6029995238423674441],[10137845066833192587,13279221198527484331],[9808624553037921371,4723170318056755559],[16631919016540861133,11084016020553554647],[8832757535144158913,4659274885664969740],[9730229894941201870,12317789037775437786],[15056691877609602335,1541401134848201833],[3307452201570141575,15701538241214188894],[3876401232874291775,17520941196305861319],[9314952320711038398,9729762716079513741],[8919277736361106420,17321098837874422287],[14740183693208469558,7727030009292816503],[4806484166818510930,16590926169549948521]],"handle_primary":[[4806484166818510930,[11.595886737767424,32.210796493798]],[11569179934425192262,[-4.0,51.0]],[1248401493076165062,[21.0,27.0]],[9730229894941201870,[-24.00371914417652,11.366922485048674]],[16631919016540861133,[-63.996421719362885,-1.2074796550824587]],[15056691877609602335,[0.0,0.0]],[862900208337901235,[0.0,0.0]],[8919277736361106420,[10.458809984597837,40.44073194044492]],[14740183693208469558,[0.0,0.0]],[8832757535144158913,[14.888888888888914,4.8888888888888005]],[3876401232874291775,[0.0,0.0]],[9808624553037921371,[18.0,36.0]],[3307452201570141575,[0.0,0.0]],[9314952320711038398,[-34.0,-7.0]],[10137845066833192587,[-19.0,43.0]]],"handle_end":[[3307452201570141575,[0.0,0.0]],[9808624553037921371,[28.703703703703695,-13.592592592592496]],[16631919016540861133,[34.0,7.0]],[3876401232874291775,[0.0,0.0]],[4806484166818510930,[3.365858386031487,-42.91469442190146]],[8832757535144158913,[33.33333333333326,-9.666666666666742]],[862900208337901235,[-9.000000000000114,-25.0]],[11569179934425192262,[-18.0,-36.0]],[10137845066833192587,[0.0,0.0]],[8919277736361106420,[70.66666666666652,1.333333333333485]],[9730229894941201870,[-21.0,-27.0]],[9314952320711038398,[19.0,-43.0]],[14740183693208469558,[0.0,0.0]],[1248401493076165062,[30.59259259259261,-36.59259259259255]],[15056691877609602335,[-10.0,-38.66666666666663]]],"stroke":[[8919277736361106420,0],[1248401493076165062,0],[16631919016540861133,0],[11569179934425192262,0],[862900208337901235,0],[15056691877609602335,0],[4806484166818510930,0],[8832757535144158913,0],[3307452201570141575,0],[9730229894941201870,0],[3876401232874291775,0],[10137845066833192587,0],[9314952320711038398,0],[9808624553037921371,0],[14740183693208469558,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":16631919016540861133},{"ty":"Primary","segment":9314952320711038398}],[{"ty":"End","segment":9314952320711038398},{"ty":"Primary","segment":10137845066833192587}],[{"ty":"End","segment":9730229894941201870},{"ty":"Primary","segment":1248401493076165062}],[{"ty":"End","segment":9808624553037921371},{"ty":"Primary","segment":9730229894941201870}],[{"ty":"End","segment":11569179934425192262},{"ty":"Primary","segment":9808624553037921371}],[{"ty":"End","segment":10137845066833192587},{"ty":"Primary","segment":14740183693208469558}],[{"ty":"End","segment":15056691877609602335},{"ty":"Primary","segment":8919277736361106420}],[{"ty":"End","segment":14740183693208469558},{"ty":"Primary","segment":3307452201570141575}],[{"ty":"End","segment":8919277736361106420},{"ty":"Primary","segment":16631919016540861133}],[{"ty":"End","segment":3307452201570141575},{"ty":"Primary","segment":3876401232874291775}],[{"ty":"End","segment":4806484166818510930},{"ty":"Primary","segment":11569179934425192262}],[{"ty":"End","segment":862900208337901235},{"ty":"Primary","segment":4806484166818510930}]],"remove_g1_continuous":[[{"ty":"Primary","segment":8832757535144158913},{"ty":"End","segment":1248401493076165062}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12709602171929957216,{"inputs":[{"Node":{"node_id":17753909951719808506,"output_index":0}},{"Node":{"node_id":12922148192688274227,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16609137733952262762,{"inputs":[{"Node":{"node_id":17397123104674848450,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7855094781869605606,{"inputs":[{"Node":{"node_id":14141479077115894852,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractBack"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8460565235419043665,{"inputs":[{"Node":{"node_id":3079923906392020295,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,412.1]},"exposed":false}},{"Value":{"tagged_value":{"F64":27.6},"exposed":false}},{"Value":{"tagged_value":{"U32":8},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::RepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6194305264313730032,{"inputs":[{"Node":{"node_id":4560146526699152877,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14950060858756810933,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[9346093213164033195,3249248431686392864,9577388580635291078],"remove":[],"delta":[[3249248431686392864,[1536.0,95.0]],[9577388580635291078,[1536.0,0.0]],[9346093213164033195,[1211.0,0.0]]]},"segments":{"add":[9585086796709645600,13980191878100735848,1147165232046305110],"remove":[],"start_point":[[13980191878100735848,3249248431686392864],[9585086796709645600,9346093213164033195],[1147165232046305110,9577388580635291078]],"end_point":[[13980191878100735848,9577388580635291078],[9585086796709645600,3249248431686392864],[1147165232046305110,9346093213164033195]],"handle_primary":[[9585086796709645600,[0.0,0.0]],[1147165232046305110,[0.0,0.0]],[13980191878100735848,[4.547473508864641e-13,2.8421709430404014e-14]]],"handle_end":[[13980191878100735848,[0.0,0.0]],[9585086796709645600,[-281.0,-17.00000000000003]],[1147165232046305110,[0.0,0.0]]],"stroke":[[9585086796709645600,0],[13980191878100735848,0],[1147165232046305110,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":13980191878100735848},{"ty":"Primary","segment":1147165232046305110}]],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14698962747138962125,{"inputs":[{"Node":{"node_id":17562801632450633291,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18031616785650843168,{"inputs":[{"Node":{"node_id":17952673493105230490,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SolidifyStrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11196821089257149774,{"inputs":[{"Node":{"node_id":5888633415105234509,"output_index":0}},{"Node":{"node_id":18031616785650843168,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8359580532088731394,{"inputs":[{"Node":{"node_id":6726954210929537972,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8269257328703012432,{"inputs":[{"Node":{"node_id":4102754869474520966,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13203761224559198689,{"inputs":[{"Node":{"node_id":4809200889774783438,"output_index":0}},{"Node":{"node_id":14690269209726153565,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13670206802546093234,{"inputs":[{"Node":{"node_id":17285637344898461972,"output_index":0}},{"Node":{"node_id":7855094781869605606,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7201841978411396053,{"inputs":[{"Node":{"node_id":4328376070224119511,"output_index":0}},{"Node":{"node_id":17735408893002232096,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11429506195623419966,{"inputs":[{"Node":{"node_id":11301831865756336526,"output_index":0}},{"Node":{"node_id":5449860184735415958,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9071802450034150503,{"inputs":[{"Node":{"node_id":9338394475379815879,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10063704933309776584,{"inputs":[{"Node":{"node_id":13838011362258067867,"output_index":0}},{"Value":{"tagged_value":{"F64":-1.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::MultiplyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3608604157153838227,{"inputs":[{"Node":{"node_id":17299978721726771610,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::BoundingBoxNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12185047359007423618,{"inputs":[{"Node":{"node_id":10080296672372912698,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7018444885869143173,{"inputs":[{"Node":{"node_id":12234961922142600898,"output_index":0}},{"Node":{"node_id":8426490990601560741,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1001728975241745659,{"inputs":[{"Node":{"node_id":12770183061753030023,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[392274448837115448,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":6787585796949551500,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1536.0,768.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Import":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17562801632450633291,{"inputs":[{"Node":{"node_id":10286817149456341619,"output_index":0}},{"Node":{"node_id":5449860184735415958,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3750439930725791025,{"inputs":[{"Node":{"node_id":12276520439585231336,"output_index":0}},{"Node":{"node_id":14228923746783465609,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[682567808439406093,{"inputs":[{"Node":{"node_id":7755499790391969923,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[300.0,50.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":15},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::RepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17740294143355019755,{"inputs":[{"Node":{"node_id":15301503532602557206,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16759836951269190891,{"inputs":[{"Node":{"node_id":11429506195623419966,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17495267820524300686,{"inputs":[{"Node":{"node_id":13616602029989984195,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[1248.4973005620557,-153.1867628889006]},"exposed":false}},{"Value":{"tagged_value":{"F64":17.033756191102253},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0000000000000002,1.0000000000000002]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[3.180554681463516e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12234961922142600898,{"inputs":[{"Node":{"node_id":1627123781166851142,"output_index":0}},{"Node":{"node_id":18351415092709164412,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11095670964487764044,{"inputs":[{"Node":{"node_id":17603523494627491590,"output_index":0}},{"Node":{"node_id":8359580532088731394,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11301831865756336526,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[3251241957527197760,11100418327549747778,8048619563638005414,1078998931754662073],"remove":[],"delta":[[1078998931754662073,[942.0246913580248,264.2962962962963]],[8048619563638005414,[944.0577392578124,302.0703430175781]],[11100418327549747778,[910.880658436214,243.0946502057613]],[3251241957527197760,[875.8001811251517,185.6784024477276]]]},"segments":{"add":[6165219920202055745,10795897848378052161,3439025775805007707,12551435438068218604],"remove":[],"start_point":[[3439025775805007707,8048619563638005414],[12551435438068218604,1078998931754662073],[10795897848378052161,11100418327549747778],[6165219920202055745,3251241957527197760]],"end_point":[[10795897848378052161,8048619563638005414],[6165219920202055745,11100418327549747778],[12551435438068218604,3251241957527197760],[3439025775805007707,1078998931754662073]],"handle_primary":[[10795897848378052161,[11.46027223334628,13.82427457744465]],[12551435438068218604,[-14.61728395061732,-27.456790123456813]],[6165219920202055745,[0.0,0.0]],[3439025775805007707,[-2.629814161991817e-6,5.151861046215345e-6]]],"handle_end":[[3439025775805007707,[14.61728395061732,27.456790123456813]],[12551435438068218604,[23.33217876876199,5.204454965879364]],[10795897848378052161,[-4.732636377154108,-19.33783272951229]],[6165219920202055745,[-29.36625514403283,-35.42386831275718]]],"stroke":[[3439025775805007707,0],[12551435438068218604,0],[10795897848378052161,0],[6165219920202055745,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":6165219920202055745},{"ty":"Primary","segment":10795897848378052161}],[{"ty":"End","segment":3439025775805007707},{"ty":"Primary","segment":12551435438068218604}]],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15301503532602557206,{"inputs":[{"Node":{"node_id":6728362629909402903,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6787585796949551500,{"inputs":[{"Node":{"node_id":11095670964487764044,"output_index":0}},{"Node":{"node_id":16177422101884031678,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18003287685830153881,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[4475009837548700636,4481635366652149569,1608608093193158603,4765910415851982345],"remove":[1647009925892902058],"delta":[[4481635366652149569,[684.8888888888889,395.55555555555554]],[1608608093193158603,[609.7777777777777,620.0]],[4475009837548700636,[525.7325506063205,282.1042056224195]],[4765910415851982345,[283.33331298828125,354.6666564941406]]]},"segments":{"add":[3045825504718908919,8024777209266880257,3983292299330016176,11103925991989272298],"remove":[13489289770112164650],"start_point":[[3983292299330016176,1608608093193158603],[11103925991989272298,4765910415851982345],[3045825504718908919,4475009837548700636],[8024777209266880257,4481635366652149569]],"end_point":[[8024777209266880257,1608608093193158603],[11103925991989272298,4475009837548700636],[3045825504718908919,4481635366652149569],[3983292299330016176,4765910415851982345]],"handle_primary":[[3983292299330016176,[0.0,0.0]],[8024777209266880257,[11.111111111111086,62.22222222222217]],[3045825504718908919,[62.22222222222217,43.111111111111086]],[11103925991989272298,[0.0,0.0]]],"handle_end":[[11103925991989272298,[-113.5844024581724,39.08097956276566]],[3045825504718908919,[-11.111111111111086,-62.22222222222217]],[8024777209266880257,[34.66666666666674,-85.33333333333337]],[3983292299330016176,[0.0,0.0]]],"stroke":[[3983292299330016176,0],[8024777209266880257,0],[3045825504718908919,0],[11103925991989272298,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":3045825504718908919},{"ty":"Primary","segment":8024777209266880257}],[{"ty":"End","segment":3983292299330016176},{"ty":"Primary","segment":11103925991989272298}]],"remove_g1_continuous":[[{"ty":"End","segment":11103925991989272298},{"ty":"Primary","segment":3045825504718908919}],[{"ty":"End","segment":13489289770112164650},{"ty":"Primary","segment":3045825504718908919}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12770183061753030023,{"inputs":[{"Node":{"node_id":17495267820524300686,"output_index":0}},{"Node":{"node_id":1009114585722052052,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17299978721726771610,{"inputs":[{"Node":{"node_id":7029437790788498388,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[459.4,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":-8.6},"exposed":false}},{"Value":{"tagged_value":{"U32":5},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::RepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9135110142507605216,{"inputs":[{"Node":{"node_id":11196821089257149774,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7104261880154687267,{"inputs":[{"Node":{"node_id":2834866505092039323,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18271512507682813443,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[10872099980755217048,13049263474526562389,2409359561719399794,9175973472325454282,14263506369487797530,5496457317579994340,7125168137854779179,9658821733796680583,425878374398720476,5252668597335249558],"remove":[],"delta":[[14263506369487797530,[886.5185185185185,178.66666666666669]],[425878374398720476,[898.633744855967,207.99999999999997]],[10872099980755217048,[889.0,0.0]],[9658821733796680583,[920.5925925925926,208.0]],[5252668597335249558,[888.2516734908237,208.88931872324497]],[5496457317579994340,[929.3607681755832,198.40877914951983]],[13049263474526562389,[903.1111111111112,55.70370370370371]],[7125168137854779179,[912.2962962962964,205.6296296296296]],[2409359561719399794,[892.7407407407408,111.70370370370372]],[9175973472325454282,[881.4814814814815,152.5925925925926]]]},"segments":{"add":[16241193756011776206,13961346931609713434,6443321953815072406,13223251807271379465,6545223889678917273,9745298522639115232,8058164935346100149,9187894839116405225,5210886161307886529,11050813873332011119],"remove":[],"start_point":[[13961346931609713434,13049263474526562389],[9745298522639115232,5496457317579994340],[16241193756011776206,10872099980755217048],[6545223889678917273,14263506369487797530],[9187894839116405225,9658821733796680583],[13223251807271379465,9175973472325454282],[11050813873332011119,5252668597335249558],[5210886161307886529,425878374398720476],[8058164935346100149,7125168137854779179],[6443321953815072406,2409359561719399794]],"end_point":[[13961346931609713434,2409359561719399794],[16241193756011776206,13049263474526562389],[13223251807271379465,14263506369487797530],[8058164935346100149,9658821733796680583],[11050813873332011119,10872099980755217048],[9745298522639115232,7125168137854779179],[6443321953815072406,9175973472325454282],[9187894839116405225,425878374398720476],[5210886161307886529,5252668597335249558],[6545223889678917273,5496457317579994340]],"handle_primary":[[13223251807271379465,[3.2812071330587287,8.329218106995853]],[8058164935346100149,[0.0,0.0]],[13961346931609713434,[6.522611384544012,17.67970980547415]],[11050813873332011119,[-5.947146741852521,-2.1403475298293415]],[6443321953815072406,[-9.144953020396894,24.145964868041293]],[9187894839116405225,[-8.263374485596842,1.880201188843188]],[16241193756011776206,[0.0,0.0]],[6545223889678917273,[0.0,0.0]],[9745298522639115232,[0.0,0.0]],[5210886161307886529,[-1.1368683772161605e-13,-2.8421709430404014e-14]]],"handle_end":[[8058164935346100149,[-5.925925925925867,-2.370370370370381]],[6443321953815072406,[-3.3276401397055917,-8.447086508484054]],[11050813873332011119,[-86.26684502769479,250.37037037037035]],[16241193756011776206,[-7.506172839506348,-20.345679012345684]],[6545223889678917273,[-25.3424782807499,-1.3461362597164737]],[9745298522639115232,[7.703703703703695,-2.074074074074076]],[5210886161307886529,[5.947146741852521,2.1403475298293415]],[13223251807271379465,[0.7901234567900701,-9.492455418381354]],[13961346931609713434,[10.984910836762538,-29.00411522633746]],[9187894839116405225,[4.974851394604343,2.0557841792410443]]],"stroke":[[9187894839116405225,0],[13223251807271379465,0],[11050813873332011119,0],[16241193756011776206,0],[13961346931609713434,0],[8058164935346100149,0],[9745298522639115232,0],[6443321953815072406,0],[6545223889678917273,0],[5210886161307886529,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":5210886161307886529},{"ty":"Primary","segment":11050813873332011119}],[{"ty":"End","segment":16241193756011776206},{"ty":"Primary","segment":13961346931609713434}],[{"ty":"End","segment":6443321953815072406},{"ty":"Primary","segment":13223251807271379465}],[{"ty":"End","segment":13961346931609713434},{"ty":"Primary","segment":6443321953815072406}]],"remove_g1_continuous":[[{"ty":"Primary","segment":9187894839116405225},{"ty":"End","segment":8058164935346100149}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8511737864852441844,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17696051535511578981,{"inputs":[{"Node":{"node_id":16780039553038473906,"output_index":0}},{"Node":{"node_id":9071802450034150503,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10286817149456341619,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[10786213048155734586,12599396287665855262,6164201091766276213,6781153531246981076,15695128662656633322,8241402276734357681,10333377922713208038,3749627916562964805,2535476870476707501],"remove":[],"delta":[[3749627916562964805,[866.172839506173,558.2222222222224]],[10786213048155734586,[917.7283950617284,502.91358024691374]],[6164201091766276213,[902.9135802469136,506.8641975308643]],[10333377922713208038,[843.4567901234569,550.1234567901236]],[12599396287665855262,[902.5185185185188,498.56790123456807]],[6781153531246981076,[872.6913580246915,513.7777777777779]],[15695128662656633322,[825.6790123456792,509.4320987654323]],[2535476870476707501,[887.5061728395062,568.6913580246915]],[8241402276734357681,[853.3333333333336,529.1851851851854]]]},"segments":{"add":[15700595221504820396,6369399239389505343,17761347836385237495,3021925106447084698,14489254209548096966,3461110970422306113,14847678502054094837,14515109677644612103,264894972572137143],"remove":[],"start_point":[[17761347836385237495,6164201091766276213],[3461110970422306113,8241402276734357681],[6369399239389505343,12599396287665855262],[264894972572137143,2535476870476707501],[3021925106447084698,6781153531246981076],[14489254209548096966,15695128662656633322],[14847678502054094837,10333377922713208038],[14515109677644612103,3749627916562964805],[15700595221504820396,10786213048155734586]],"end_point":[[14515109677644612103,2535476870476707501],[3021925106447084698,15695128662656633322],[17761347836385237495,6781153531246981076],[6369399239389505343,6164201091766276213],[15700595221504820396,12599396287665855262],[14847678502054094837,3749627916562964805],[14489254209548096966,8241402276734357681],[264894972572137143,10786213048155734586],[3461110970422306113,10333377922713208038]],"handle_primary":[[264894972572137143,[0.0,0.0]],[15700595221504820396,[0.0,0.0]],[3021925106447084698,[-16.59259259259261,2.370370370370324]],[3461110970422306113,[0.38915905346209456,1.493515242756871]],[14515109677644612103,[8.888888888888914,0.0]],[14489254209548096966,[-0.3950434518873181,1.0617032941893854]],[6369399239389505343,[-7.1111111111111995,-5.530864197530889]],[17761347836385237495,[0.0,0.0]],[14847678502054094837,[0.7901234567900701,2.765432098765473]]],"handle_end":[[6369399239389505343,[0.0,0.0]],[3461110970422306113,[-0.7901234567900701,-2.765432098765473]],[15700595221504820396,[7.1111111111111995,5.530864197530889]],[17761347836385237495,[16.59259259259261,-2.370370370370324]],[264894972572137143,[3.753086419753003,37.1358024691358]],[14489254209548096966,[-0.5712718875797691,-2.192428171126153]],[3021925106447084698,[0.5488119028742631,-1.474965354794051]],[14515109677644612103,[0.0,0.0]],[14847678502054094837,[-8.888888888888914,0.0]]],"stroke":[[6369399239389505343,0],[14489254209548096966,0],[3461110970422306113,0],[17761347836385237495,0],[15700595221504820396,0],[3021925106447084698,0],[264894972572137143,0],[14847678502054094837,0],[14515109677644612103,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":3461110970422306113},{"ty":"Primary","segment":14847678502054094837}],[{"ty":"End","segment":6369399239389505343},{"ty":"Primary","segment":17761347836385237495}],[{"ty":"End","segment":14489254209548096966},{"ty":"Primary","segment":3461110970422306113}],[{"ty":"End","segment":3021925106447084698},{"ty":"Primary","segment":14489254209548096966}],[{"ty":"End","segment":14515109677644612103},{"ty":"Primary","segment":264894972572137143}],[{"ty":"End","segment":15700595221504820396},{"ty":"Primary","segment":6369399239389505343}],[{"ty":"End","segment":14847678502054094837},{"ty":"Primary","segment":14515109677644612103}],[{"ty":"End","segment":17761347836385237495},{"ty":"Primary","segment":3021925106447084698}]],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6726954210929537972,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[177515045030371783,4609870404630548899,1458337690478625792,16230687409600568539,8055802412900565217,12390708657704154619,12909592102393222573,6873550371723398444,13416153271806375161,2492294980235986276,12448133448335459077,7624137673235413199],"remove":[],"delta":[[16230687409600568539,[491.55555555555554,311.55555555555566]],[8055802412900565217,[480.4444444444445,219.7777777777778]],[1458337690478625792,[473.1851851851851,213.62962962962965]],[12390708657704154619,[596.6748971193416,72.42798353909465]],[13416153271806375161,[531.8518518518517,131.2592592592593]],[2492294980235986276,[604.4434936307387,42.970116997735616]],[12448133448335459077,[610.3703703703706,2.4308653429145085e-63]],[7624137673235413199,[617.8765432098766,2.465190328815662e-32]],[12909592102393222573,[607.8024691358027,0.0]],[6873550371723398444,[538.6666666666667,136.0]],[4609870404630548899,[589.432098765432,64.79012345679011]],[177515045030371783,[604.2883706752018,0.0]]]},"segments":{"add":[12529947318087068663,5578827639764758986,1705877195608053135,2463526518527501592,9361245670457788924,921651403153242564,9825559201153691780,15749222431214672690,14294722277069184337,4341232355541306629,3818841110886669992],"remove":[17843645051722826880,17799038492181728804,5057709998225566481,11060716078587457450,16939098306153440303],"start_point":[[2463526518527501592,8055802412900565217],[5578827639764758986,1458337690478625792],[1705877195608053135,16230687409600568539],[4341232355541306629,12390708657704154619],[12529947318087068663,177515045030371783],[921651403153242564,4609870404630548899],[9825559201153691780,13416153271806375161],[14294722277069184337,12448133448335459077],[15749222431214672690,2492294980235986276],[9361245670457788924,6873550371723398444],[3818841110886669992,7624137673235413199]],"end_point":[[3818841110886669992,12448133448335459077],[12529947318087068663,4609870404630548899],[921651403153242564,13416153271806375161],[4341232355541306629,7624137673235413199],[1705877195608053135,8055802412900565217],[9825559201153691780,1458337690478625792],[2463526518527501592,6873550371723398444],[9361245670457788924,12390708657704154619],[15749222431214672690,12909592102393222573],[14294722277069184337,2492294980235986276],[5578827639764758986,16230687409600568539]],"handle_primary":[[14294722277069184337,[-0.2633744855968416,28.576131687242796]],[3818841110886669992,[0.0,0.0]],[4341232355541306629,[19.753086419753117,-26.73251028806584]],[9825559201153691780,[-30.00610951685011,28.39287782239575]],[12529947318087068663,[0.0,0.0]],[2463526518527501592,[9.74414620103056,-24.528368023283747]],[921651403153242564,[-7.513106110924076,12.956274823940417]],[5578827639764758986,[-19.25925925925924,60.44444444444443]],[9361245670457788924,[22.844654233974516,-21.876660410500975]],[1705877195608053135,[0.0,0.0]],[15749222431214672690,[3.877242131088792,-22.333682252383095]]],"handle_end":[[2463526518527501592,[-34.96296296296305,33.481481481481495]],[5578827639764758986,[0.0,0.0]],[1705877195608053135,[-19.33333333333331,48.66666666666666]],[9825559201153691780,[6.194184133897295,-19.440208666385132]],[12529947318087068663,[12.90534979423876,-22.255144032921805]],[14294722277069184337,[0.0,0.0]],[4341232355541306629,[0.0,0.0]],[15749222431214672690,[0.0,0.0]],[9361245670457788924,[-16.14969885498249,21.855925783742933]],[921651403153242564,[27.555555555555657,-26.07407407407412]],[3818841110886669992,[0.0,0.0]]],"stroke":[[5578827639764758986,0],[2463526518527501592,0],[9825559201153691780,0],[14294722277069184337,0],[15749222431214672690,0],[1705877195608053135,0],[3818841110886669992,0],[4341232355541306629,0],[9361245670457788924,0],[12529947318087068663,0],[921651403153242564,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":17843645051722826880},{"ty":"Primary","segment":15749222431214672690}],[{"ty":"End","segment":1705877195608053135},{"ty":"Primary","segment":17799038492181728804}],[{"ty":"End","segment":921651403153242564},{"ty":"Primary","segment":9825559201153691780}],[{"ty":"End","segment":9361245670457788924},{"ty":"Primary","segment":5057709998225566481}],[{"ty":"End","segment":1705877195608053135},{"ty":"Primary","segment":2463526518527501592}],[{"ty":"End","segment":2463526518527501592},{"ty":"Primary","segment":9361245670457788924}],[{"ty":"End","segment":17799038492181728804},{"ty":"Primary","segment":16939098306153440303}],[{"ty":"End","segment":9361245670457788924},{"ty":"Primary","segment":4341232355541306629}],[{"ty":"End","segment":9361245670457788924},{"ty":"Primary","segment":17843645051722826880}],[{"ty":"End","segment":12529947318087068663},{"ty":"Primary","segment":11060716078587457450}],[{"ty":"End","segment":11060716078587457450},{"ty":"Primary","segment":5578827639764758986}],[{"ty":"Primary","segment":5578827639764758986},{"ty":"End","segment":9825559201153691780}],[{"ty":"Primary","segment":16939098306153440303},{"ty":"End","segment":9361245670457788924}],[{"ty":"End","segment":12529947318087068663},{"ty":"Primary","segment":921651403153242564}]],"remove_g1_continuous":[[{"ty":"Primary","segment":14294722277069184337},{"ty":"End","segment":3818841110886669992}],[{"ty":"End","segment":4341232355541306629},{"ty":"Primary","segment":3818841110886669992}],[{"ty":"End","segment":5057709998225566481},{"ty":"Primary","segment":14294722277069184337}],[{"ty":"Primary","segment":15749222431214672690},{"ty":"End","segment":14294722277069184337}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17603523494627491590,{"inputs":[{"Node":{"node_id":10995640810984321903,"output_index":0}},{"Node":{"node_id":17740294143355019755,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13616602029989984195,{"inputs":[{"Node":{"node_id":3050731459444225191,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FlattenPathNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4301099429811409147,{"inputs":[{"Node":{"node_id":57390435731316553,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[81.3755165062,-154.9064700048801]},"exposed":false}},{"Value":{"tagged_value":{"F64":23.8615898276},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999998,0.9999999999999998]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3109716240255919254,{"inputs":[{"Node":{"node_id":5877930116725120460,"output_index":0}},{"Node":{"node_id":18053728639616073084,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2723198387862533596,{"inputs":[{"Node":{"node_id":14030142873804552388,"output_index":0}},{"Node":{"node_id":11201759760883367635,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18351415092709164412,{"inputs":[{"Node":{"node_id":1009114585722052052,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6484183251661832039,{"inputs":[{"Node":{"node_id":294265135510952894,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[474.2,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":-7.2},"exposed":false}},{"Value":{"tagged_value":{"U32":5},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::RepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12922148192688274227,{"inputs":[{"Node":{"node_id":18188505856445531484,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7755499790391969923,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6503655938154160104,{"inputs":[{"Node":{"node_id":17696051535511578981,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16780039553038473906,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7104088139635280554,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1508440849951861669,{"inputs":[{"Node":{"node_id":8566844905246185636,"output_index":0}},{"Node":{"node_id":7480253252288032958,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5856350938151339368,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[5138872293174440313,14935583009751134816,9014079831396927156,7008812441195504980,9603704700847490044,7238075805746621699,2355002738045707979,5021902985892894619,17629528758352690600,5995306636877552],"remove":[10768931421586254879],"delta":[[5021902985892894619,[857.679012345679,478.2880658436215]],[9603704700847490044,[821.037037037037,464.2962962962963]],[7008812441195504980,[888.8888888888887,421.3333333333333]],[14935583009751134816,[914.9629629629628,418.3703703703703]],[5995306636877552,[912.8888888888888,479.7037037037037]],[9014079831396927156,[908.4444444444443,429.9259259259259]],[17629528758352690600,[892.148148148148,480.2962962962963]],[7238075805746621699,[798.6831275720165,497.9094650205762]],[2355002738045707979,[826.2057613168724,485.0041152263375]],[5138872293174440313,[922.9629629629628,422.22222222222223]]]},"segments":{"add":[7250062683967197158,14131440324578863745,4499620435559196394,14571502160667941876,7203043366367198812,239843798079287870,7655921914272804429,12687760936062936386,7117413478945421556,9071432674597727163],"remove":[3746587001535987651],"start_point":[[7117413478945421556,5995306636877552],[239843798079287870,2355002738045707979],[4499620435559196394,9014079831396927156],[7250062683967197158,5138872293174440313],[14131440324578863745,14935583009751134816],[12687760936062936386,17629528758352690600],[7655921914272804429,5021902985892894619],[7203043366367198812,9603704700847490044],[9071432674597727163,7238075805746621699],[14571502160667941876,7008812441195504980]],"end_point":[[7117413478945421556,5138872293174440313],[14571502160667941876,9603704700847490044],[4499620435559196394,7008812441195504980],[7250062683967197158,14935583009751134816],[14131440324578863745,9014079831396927156],[12687760936062936386,5995306636877552],[7655921914272804429,17629528758352690600],[9071432674597727163,2355002738045707979],[239843798079287870,5021902985892894619],[7203043366367198812,7238075805746621699]],"handle_primary":[[7203043366367198812,[0.0,0.2962962962963047]],[7655921914272804429,[18.172839506172863,-1.9753086419753456]],[7117413478945421556,[0.0,0.0]],[7250062683967197158,[0.0,0.0]],[14131440324578863745,[0.0,0.0]],[14571502160667941876,[-0.5925925925926094,0.0]],[9071432674597727163,[4.345679012345499,-3.555555555555543]],[4499620435559196394,[-0.2962962962963047,-0.2962962962963047]],[239843798079287870,[9.61316872427983,-1.843621399176982]],[12687760936062936386,[10.666666666666742,3.555555555555543]]],"handle_end":[[4499620435559196394,[8.59259259259261,5.629629629629619]],[12687760936062936386,[0.0,0.0]],[7117413478945421556,[15.703703703703695,33.48148148148147]],[239843798079287870,[-21.502976534539364,2.3372800581021456]],[7250062683967197158,[0.0,0.0]],[7655921914272804429,[-10.666666666666742,-3.555555555555543]],[14131440324578863745,[2.962962962963047,-3.259259259259238]],[7203043366367198812,[-1.1851851851852189,-25.18518518518516]],[14571502160667941876,[24.395061728395035,-0.36213991769540144]],[9071432674597727163,[-9.913826570592164,1.9012818080587977]]],"stroke":[[7655921914272804429,0],[4499620435559196394,0],[14571502160667941876,0],[7203043366367198812,0],[7250062683967197158,0],[9071432674597727163,0],[7117413478945421556,0],[239843798079287870,0],[12687760936062936386,0],[14131440324578863745,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":7655921914272804429},{"ty":"Primary","segment":12687760936062936386}],[{"ty":"End","segment":12687760936062936386},{"ty":"Primary","segment":7117413478945421556}],[{"ty":"End","segment":7250062683967197158},{"ty":"Primary","segment":14131440324578863745}],[{"ty":"End","segment":239843798079287870},{"ty":"Primary","segment":7655921914272804429}],[{"ty":"Primary","segment":239843798079287870},{"ty":"End","segment":9071432674597727163}]],"remove_g1_continuous":[[{"ty":"End","segment":3746587001535987651},{"ty":"Primary","segment":239843798079287870}],[{"ty":"End","segment":9071432674597727163},{"ty":"Primary","segment":3746587001535987651}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14257963317028524134,{"inputs":[{"Node":{"node_id":1001728975241745659,"output_index":0}},{"Node":{"node_id":6503655938154160104,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1491840484128555837,{"inputs":[{"Node":{"node_id":1508440849951861669,"output_index":0}},{"Node":{"node_id":9808637865669223270,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5888633415105234509,{"inputs":[{"Node":{"node_id":3750439930725791025,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1258994191538244490,{"inputs":[{"Node":{"node_id":5488285068107445023,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5486211022469996717,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[266134622800431246,12075466065090700811,7115673652122600762,9852238672814254137],"remove":[134095410253559933],"delta":[[9852238672814254137,[879.7947439326053,110.54094004739208]],[266134622800431246,[525.7325506063205,282.1042056224195]],[12075466065090700811,[877.0370370370372,136.5925925925926]],[7115673652122600762,[646.5386352539062,343.99395751953125]]]},"segments":{"add":[17255728395700231433,3166693019207180063,10242199012993595528,2159953159628520134],"remove":[10196443086284452827,3769008694104161528,13980530488817762548],"start_point":[[17255728395700231433,12075466065090700811],[2159953159628520134,9852238672814254137],[3166693019207180063,7115673652122600762],[10242199012993595528,266134622800431246]],"end_point":[[3166693019207180063,266134622800431246],[10242199012993595528,9852238672814254137],[17255728395700231433,7115673652122600762],[2159953159628520134,12075466065090700811]],"handle_primary":[[10242199012993595528,[137.37856050479058,-43.88198340019727]],[17255728395700231433,[0.0010773420832492775,-0.01370555995902123]],[2159953159628520134,[0.0,0.0]],[3166693019207180063,[-126.67994767097883,-51.72627287889763]]],"handle_end":[[17255728395700231433,[165.46136474609386,67.5615980360243]],[3166693019207180063,[0.0,0.0]],[2159953159628520134,[0.0,0.0]],[10242199012993595528,[-15.794743932605344,36.71831921186718]]],"stroke":[[3166693019207180063,0],[10242199012993595528,0],[2159953159628520134,0],[17255728395700231433,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"Primary","segment":3166693019207180063},{"ty":"End","segment":17255728395700231433}]],"remove_g1_continuous":[[{"ty":"End","segment":10242199012993595528},{"ty":"Primary","segment":2159953159628520134}],[{"ty":"Primary","segment":3769008694104161528},{"ty":"End","segment":10196443086284452827}],[{"ty":"End","segment":3166693019207180063},{"ty":"Primary","segment":13980530488817762548}],[{"ty":"Primary","segment":10242199012993595528},{"ty":"End","segment":3166693019207180063}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14139129879376457893,{"inputs":[{"Node":{"node_id":11373527190663101881,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5954536408321808728,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[8323145223085840944,87630150944518163,8212340198835025146,6057321578372831916,16788403743390653241,16686047298905200065,15635903913637220842,8652457572576966876,3124531241960914803,18307826411292029066,9969822516610975381,16995054111951247369,16808246968731723098],"remove":[],"delta":[[16686047298905200065,[283.3333333333333,354.66666666666663]],[9969822516610975381,[0.0,0.0]],[87630150944518163,[879.1111111111111,595.8518518518517]],[8323145223085840944,[891.5555555555554,569.3827160493826]],[15635903913637220842,[468.4799499511719,219.78570556640625]],[3124531241960914803,[589.9588477366256,64.65843621399176]],[8652457572576966876,[514.4523315429688,146.72100830078125]],[16995054111951247369,[0.0,768.0]],[18307826411292029066,[601.1756940654021,0.0]],[16788403743390653241,[467.99999999999994,487.3333333333333]],[16808246968731723098,[891.5555555555554,768.0]],[6057321578372831916,[708.148148148148,616.2962962962962]],[8212340198835025146,[830.8148148148148,633.7777777777776]]]},"segments":{"add":[14879480148926424885,5227512358023446442,17410347049685436697,9544743211426701912,14715945740984195653,515539069333222772,9242150930423817167,8823161072525575433,15885450050057549950,1662692131856898001,178608879920007638,12162371359208565273,16224358815792062223],"remove":[],"start_point":[[14879480148926424885,8323145223085840944],[17410347049685436697,8212340198835025146],[8823161072525575433,8652457572576966876],[14715945740984195653,16788403743390653241],[16224358815792062223,16808246968731723098],[1662692131856898001,18307826411292029066],[178608879920007638,9969822516610975381],[9544743211426701912,6057321578372831916],[515539069333222772,16686047298905200065],[5227512358023446442,87630150944518163],[12162371359208565273,16995054111951247369],[15885450050057549950,3124531241960914803],[9242150930423817167,15635903913637220842]],"end_point":[[16224358815792062223,8323145223085840944],[8823161072525575433,3124531241960914803],[1662692131856898001,9969822516610975381],[17410347049685436697,6057321578372831916],[12162371359208565273,16808246968731723098],[15885450050057549950,18307826411292029066],[5227512358023446442,8212340198835025146],[178608879920007638,16995054111951247369],[9242150930423817167,8652457572576966876],[14879480148926424885,87630150944518163],[14715945740984195653,16686047298905200065],[515539069333222772,15635903913637220842],[9544743211426701912,16788403743390653241]],"handle_primary":[[1662692131856898001,[0.0,0.0]],[16224358815792062223,[0.0,0.0]],[5227512358023446442,[-4.444444444444457,18.074074074074133]],[17410347049685436697,[-26.37037037037044,2.3703703703704377]],[515539069333222772,[48.66666666666663,-23.999999999999943]],[9544743211426701912,[-57.48148148148141,-21.629629629629676]],[14879480148926424885,[0.0,0.0]],[15885450050057549950,[11.193415637860312,-27.25925925925926]],[14715945740984195653,[-92.66666666666656,-80.66666666666669]],[8823161072525575433,[11.259252477575274,-22.666663275824646]],[9242150930423817167,[27.25925925925918,-22.518518518518533]],[178608879920007638,[0.0,0.0]],[12162371359208565273,[0.0,0.0]]],"handle_end":[[9242150930423817167,[-9.36826657882972,18.859808361471693]],[8823161072525575433,[-12.439135136214697,30.29295262583988]],[16224358815792062223,[0.0,0.0]],[15885450050057549950,[0.0,0.0]],[17410347049685436697,[57.48148148148141,21.629629629629676]],[14879480148926424885,[4.444444444444457,-18.074074074074133]],[5227512358023446442,[26.37037037037044,-2.3703703703704377]],[1662692131856898001,[0.0,0.0]],[9544743211426701912,[92.66666666666656,80.66666666666669]],[515539069333222772,[-95.07216232621772,78.5378732260062]],[14715945740984195653,[0.0,0.0]],[178608879920007638,[0.0,0.0]],[12162371359208565273,[0.0,0.0]]],"stroke":[[14715945740984195653,0],[5227512358023446442,0],[15885450050057549950,0],[1662692131856898001,0],[9242150930423817167,0],[178608879920007638,0],[9544743211426701912,0],[515539069333222772,0],[16224358815792062223,0],[17410347049685436697,0],[14879480148926424885,0],[8823161072525575433,0],[12162371359208565273,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":9242150930423817167},{"ty":"Primary","segment":8823161072525575433}],[{"ty":"End","segment":12162371359208565273},{"ty":"Primary","segment":16224358815792062223}],[{"ty":"End","segment":9544743211426701912},{"ty":"Primary","segment":14715945740984195653}],[{"ty":"End","segment":178608879920007638},{"ty":"Primary","segment":12162371359208565273}],[{"ty":"End","segment":1662692131856898001},{"ty":"Primary","segment":178608879920007638}],[{"ty":"End","segment":17410347049685436697},{"ty":"Primary","segment":9544743211426701912}],[{"ty":"End","segment":15885450050057549950},{"ty":"Primary","segment":1662692131856898001}],[{"ty":"End","segment":8823161072525575433},{"ty":"Primary","segment":15885450050057549950}],[{"ty":"End","segment":14879480148926424885},{"ty":"Primary","segment":5227512358023446442}],[{"ty":"End","segment":515539069333222772},{"ty":"Primary","segment":9242150930423817167}],[{"ty":"End","segment":5227512358023446442},{"ty":"Primary","segment":17410347049685436697}]],"remove_g1_continuous":[[{"ty":"End","segment":14715945740984195653},{"ty":"Primary","segment":515539069333222772}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18053728639616073084,{"inputs":[{"Node":{"node_id":6616450276140292763,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17569892869974995307,{"inputs":[{"Node":{"node_id":3997031659711823213,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5534800796196967885,{"inputs":[{"Node":{"node_id":3608604157153838227,"output_index":0}},{"Value":{"tagged_value":{"CentroidType":"Area"},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CentroidNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7029437790788498388,{"inputs":[{"Node":{"node_id":1809704172129195322,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17351444026127625357,{"inputs":[{"Node":{"node_id":14808063168960305551,"output_index":0}},{"Node":{"node_id":13916027199283115943,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17735408893002232096,{"inputs":[{"Node":{"node_id":14228923746783465609,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17285637344898461972,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[16608607268690234590,17457877227823502997,13436129231170586617,5992570223148766873],"remove":[],"delta":[[5992570223148766873,[-2.273736754432321e-13,768.0]],[16608607268690234590,[0.0,340.0]],[17457877227823502997,[273.0,476.0]],[13436129231170586617,[481.3333333333333,768.0]]]},"segments":{"add":[13284808974014161135,5472571334856691465,8776124420595946733,4274372337254864190],"remove":[],"start_point":[[13284808974014161135,16608607268690234590],[5472571334856691465,17457877227823502997],[8776124420595946733,13436129231170586617],[4274372337254864190,5992570223148766873]],"end_point":[[13284808974014161135,17457877227823502997],[4274372337254864190,16608607268690234590],[5472571334856691465,13436129231170586617],[8776124420595946733,5992570223148766873]],"handle_primary":[[13284808974014161135,[161.73791370620617,43.57576470888159]],[8776124420595946733,[0.0,0.0]],[4274372337254864190,[0.0,0.0]],[5472571334856691465,[146.0,-13.0]]],"handle_end":[[8776124420595946733,[0.0,0.0]],[4274372337254864190,[0.0,0.0]],[13284808974014161135,[-165.43581782916667,14.730586519035386]],[5472571334856691465,[0.4078646547782227,-253.307727480567]]],"stroke":[[13284808974014161135,0],[4274372337254864190,0],[5472571334856691465,0],[8776124420595946733,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":8776124420595946733},{"ty":"Primary","segment":4274372337254864190}],[{"ty":"End","segment":13284808974014161135},{"ty":"Primary","segment":5472571334856691465}]],"remove_g1_continuous":[[{"ty":"Primary","segment":13284808974014161135},{"ty":"End","segment":4274372337254864190}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15900830679378240619,{"inputs":[{"Node":{"node_id":2287485748649359627,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1662641269094032596,{"inputs":[{"Node":{"node_id":16304636129468583592,"output_index":0}},{"Node":{"node_id":14139765080256493579,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6728362629909402903,{"inputs":[{"Node":{"node_id":5856350938151339368,"output_index":0}},{"Node":{"node_id":5449860184735415958,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12276520439585231336,{"inputs":[{"Node":{"node_id":13795432594059356320,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[997.5029638869316,545.7213923090854]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10995640810984321903,{"inputs":[{"Node":{"node_id":12353675714904258944,"output_index":0}},{"Node":{"node_id":10265035897167064154,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15354358358546908017,{"inputs":[{"Node":{"node_id":14950060858756810933,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4328376070224119511,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":13446205009526451196,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1009114585722052052,{"inputs":[{"Node":{"node_id":15692102598187739001,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7252918969430566594,{"inputs":[{"Node":{"node_id":5534800796196967885,"output_index":0}},{"Value":{"tagged_value":{"F64":-1.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::MultiplyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14684142559936015947,{"inputs":[{"Node":{"node_id":15930698052919171086,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4771789845668099116,{"inputs":[{"Node":{"node_id":17351444026127625357,"output_index":0}},{"Node":{"node_id":14684142559936015947,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14690269209726153565,{"inputs":[{"Node":{"node_id":7376049709233607419,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18188505856445531484,{"inputs":[{"Node":{"node_id":8887924609778270360,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3410481056630111806,{"inputs":[{"Node":{"node_id":1097494158696050491,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2834866505092039323,{"inputs":[{"Node":{"node_id":18003287685830153881,"output_index":0}},{"Node":{"node_id":14139765080256493579,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5014806436727666175,{"inputs":[{"Node":{"node_id":7855094781869605606,"output_index":0}},{"Node":{"node_id":8863346544623578893,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14139765080256493579,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[3507505346656189771,2904729023031858224,854708012647259796,4175610638601362388,7821224334582795476,2195807584570698921],"remove":[16332448509429125699,1009888023123207923],"delta":[[854708012647259796,[740.0,298.0]],[3507505346656189771,[552.0,768.0000000000001]],[2195807584570698921,[993.0,767.9999999999999]],[7821224334582795476,[1093.0,600.0]],[2904729023031858224,[491.3420376907663,506.7530051313737]],[4175610638601362388,[957.0,324.0]]]},"segments":{"add":[4553965744616493549,13993263006398686359,6577640955869157325,17304574948462342226,8570276641842028192,17183285389582020412],"remove":[5710832026764395735,546565283439891712],"start_point":[[17183285389582020412,7821224334582795476],[13993263006398686359,2904729023031858224],[17304574948462342226,4175610638601362388],[4553965744616493549,3507505346656189771],[6577640955869157325,854708012647259796],[8570276641842028192,2195807584570698921]],"end_point":[[6577640955869157325,4175610638601362388],[17183285389582020412,2195807584570698921],[8570276641842028192,3507505346656189771],[13993263006398686359,854708012647259796],[4553965744616493549,2904729023031858224],[17304574948462342226,7821224334582795476]],"handle_primary":[[4553965744616493549,[0.0,0.0]],[17183285389582020412,[-24.08196064282073,82.4624712920831]],[13993263006398686359,[0.0,-84.7537417270637]],[6577640955869157325,[102.0,-45.0]],[17304574948462342226,[50.35246044959922,33.38607084805801]],[8570276641842028192,[0.0,0.0]]],"handle_end":[[17183285389582020412,[0.0,0.0]],[4553965744616493549,[0.0,135.2464055295568]],[8570276641842028192,[0.0,0.0]],[17304574948462342226,[33.0,-113.0]],[6577640955869157325,[-50.35246044959922,-33.38607084805801]],[13993263006398686359,[-102.0,45.0]]],"stroke":[[6577640955869157325,0],[8570276641842028192,0],[17183285389582020412,0],[13993263006398686359,0],[17304574948462342226,0],[4553965744616493549,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":17304574948462342226},{"ty":"Primary","segment":17183285389582020412}],[{"ty":"End","segment":6577640955869157325},{"ty":"Primary","segment":17304574948462342226}],[{"ty":"End","segment":4553965744616493549},{"ty":"Primary","segment":13993263006398686359}],[{"ty":"Primary","segment":8570276641842028192},{"ty":"End","segment":17183285389582020412}],[{"ty":"End","segment":13993263006398686359},{"ty":"Primary","segment":6577640955869157325}]],"remove_g1_continuous":[[{"ty":"End","segment":5710832026764395735},{"ty":"Primary","segment":8570276641842028192}],[{"ty":"End","segment":17183285389582020412},{"ty":"Primary","segment":546565283439891712}],[{"ty":"End","segment":546565283439891712},{"ty":"Primary","segment":5710832026764395735}],[{"ty":"Primary","segment":8570276641842028192},{"ty":"End","segment":546565283439891712}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10080296672372912698,{"inputs":[{"Node":{"node_id":12867379765049504290,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12353675714904258944,{"inputs":[{"Node":{"node_id":13203761224559198689,"output_index":0}},{"Node":{"node_id":17271572793812678706,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17271572793812678706,{"inputs":[{"Node":{"node_id":15900830679378240619,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14228923746783465609,{"inputs":[{"Node":{"node_id":16304636129468583592,"output_index":0}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[2003133867055127539,13758328146055368475],"remove":[],"delta":[[2003133867055127539,[1011.111083984375,786.3993530273438]],[4648964341912884959,[324.66666666666646,0.0]],[16569120368910754547,[-43.0,0.0]],[13758328146055368475,[1299.3064572949788,786.3993743175897]]]},"segments":{"add":[8214025514312603513,7334532063810723038,13431612844608018700],"remove":[6602880736207868665,3433930674303663828],"start_point":[[8214025514312603513,2003133867055127539],[7334532063810723038,16569120368910754547],[13431612844608018700,13758328146055368475]],"end_point":[[7334532063810723038,13758328146055368475],[8214025514312603513,4648964341912884959],[13431612844608018700,2003133867055127539]],"handle_primary":[[7334532063810723038,null],[8214025514312603513,null],[13431612844608018700,null],[9030015329489789075,[69.08057198853999,-80.19415805947563]]],"handle_end":[[8214025514312603513,null],[13431612844608018700,null],[2197140374690997530,[-24.333333333333485,-86.99999999999977]],[9030015329489789075,[0.0,0.0]],[7334532063810723038,null]],"stroke":[[8214025514312603513,0],[13431612844608018700,0],[7334532063810723038,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[[{"ty":"Primary","segment":9030015329489789075},{"ty":"End","segment":3433930674303663828}],[{"ty":"End","segment":9030015329489789075},{"ty":"Primary","segment":2197140374690997530}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11210964267417873667,{"inputs":[{"Node":{"node_id":4261249487994076490,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[91.7203910728,-99.9607940061]},"exposed":false}},{"Value":{"tagged_value":{"F64":23.318559511400004},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1097494158696050491,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":15.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8887924609778270360,{"inputs":[{"Node":{"node_id":5014806436727666175,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17036604842139972912,{"inputs":[{"Node":{"node_id":1491840484128555837,"output_index":0}},{"Node":{"node_id":11210964267417873667,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12145355397916841389,{"inputs":[{"Node":{"node_id":16759836951269190891,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4470272391975492611,{"inputs":[{"Node":{"node_id":7018444885869143173,"output_index":0}},{"Node":{"node_id":12145355397916841389,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7962101329808960965,{"inputs":[{"Node":{"node_id":16322546010403524636,"output_index":0}},{"Value":{"tagged_value":{"F64":-1.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::MultiplyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5556372312033787775,{"inputs":[{"Node":{"node_id":6484183251661832039,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::BoundingBoxNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[294265135510952894,{"inputs":[{"Node":{"node_id":11264395591110193456,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2025899804080897524,{"inputs":[{"Node":{"node_id":17740496701763775226,"output_index":0}},{"Node":{"node_id":3214181946162459584,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[990192925663920333,{"inputs":[{"Node":{"node_id":3410481056630111806,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[466.8,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":-7.9},"exposed":false}},{"Value":{"tagged_value":{"U32":5},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::RepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11264395591110193456,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":10.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13027689870767713939,{"inputs":[{"Node":{"node_id":7201841978411396053,"output_index":0}},{"Node":{"node_id":13340751444307201866,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9338394475379815879,{"inputs":[{"Node":{"node_id":7977952035097419157,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[1327.0278641242007,11.102707365920756]},"exposed":false}},{"Value":{"tagged_value":{"F64":13.64801326231709},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[230.36030209674013,67.6958526826066]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[2.2090991564182537e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14496934933990319842,{"inputs":[{"Node":{"node_id":12709602171929957216,"output_index":0}},{"Node":{"node_id":12185047359007423618,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13739729101529293427,{"inputs":[{"Node":{"node_id":18003287685830153881,"output_index":0}},{"Node":{"node_id":14139765080256493579,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3214181946162459584,{"inputs":[{"Node":{"node_id":5449860184735415958,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16322546010403524636,{"inputs":[{"Node":{"node_id":5556372312033787775,"output_index":0}},{"Value":{"tagged_value":{"CentroidType":"Area"},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CentroidNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[804622576568168609,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[13654185056786459919,6952183320761642858,2802617302192982616,7639287212006638253,15117515618866904690,15750781936547583892,7025422618543191491,3831533579307185652,16937470333767479918,10412162547161259027,5269777039739103358],"remove":[],"delta":[[7639287212006638253,[862.8888888888888,349.3333333333333]],[10412162547161259027,[887.3333333333333,376.0]],[13654185056786459919,[946.1728395061732,330.8641975308642]],[5269777039739103358,[902.2222222222222,394.66666666666663]],[7025422618543191491,[911.5555555555554,345.3333333333333]],[15117515618866904690,[819.1111111111109,354.44444444444434]],[2802617302192982616,[911.7777777777776,334.88888888888886]],[3831533579307185652,[880.4444444444443,357.3333333333333]],[15750781936547583892,[840.6666666666665,368.66666666666663]],[16937470333767479918,[876.6666666666665,359.55555555555554]],[6952183320761642858,[933.9259259259262,324.3456790123457]]]},"segments":{"add":[10498175376126066982,10426255560432238561,11214998966879437330,1241631398419524272,15286139376878919277,15838384105575178137,12854270992100552972,379744301215040936,4069217348643062888,10438163357339042361,9330486019469919863],"remove":[],"start_point":[[4069217348643062888,16937470333767479918],[1241631398419524272,7639287212006638253],[10426255560432238561,6952183320761642858],[379744301215040936,3831533579307185652],[10498175376126066982,13654185056786459919],[15838384105575178137,15750781936547583892],[9330486019469919863,5269777039739103358],[11214998966879437330,2802617302192982616],[10438163357339042361,10412162547161259027],[12854270992100552972,7025422618543191491],[15286139376878919277,15117515618866904690]],"end_point":[[1241631398419524272,15117515618866904690],[11214998966879437330,7639287212006638253],[10426255560432238561,2802617302192982616],[10498175376126066982,6952183320761642858],[10438163357339042361,5269777039739103358],[15286139376878919277,15750781936547583892],[12854270992100552972,3831533579307185652],[4069217348643062888,10412162547161259027],[379744301215040936,16937470333767479918],[15838384105575178137,7025422618543191491],[9330486019469919863,13654185056786459919]],"handle_primary":[[10426255560432238561,[-0.39506172839503506,-0.19753086419757435]],[11214998966879437330,[-16.666666666666515,-3.777777777777771]],[10438163357339042361,[1.3333333333332575,10.888888888888856]],[4069217348643062888,[0.0,0.0]],[12854270992100552972,[-0.4444444444443434,0.0]],[15286139376878919277,[-0.5188510642573192,0.6084707935380038]],[379744301215040936,[-0.2222222222221717,0.0]],[10498175376126066982,[0.0,0.0]],[9330486019469919863,[5.555555555555429,-0.2222222222221717]],[1241631398419524272,[-17.111111111111086,12.888888888888856]],[15838384105575178137,[22.222222222222285,5.555555555555543]]],"handle_end":[[379744301215040936,[0.0,0.0]],[15838384105575178137,[-20.0,2.0]],[4069217348643062888,[-1.3333333333332575,-10.888888888888856]],[15286139376878919277,[-22.222222222222285,-5.555555555555543]],[12854270992100552972,[33.77777777777783,2.2222222222222285]],[9330486019469919863,[0.0,0.0]],[1241631398419524272,[0.5951379226228255,-0.6979344728938486]],[11214998966879437330,[17.111111111111086,-12.888888888888856]],[10438163357339042361,[-5.555555555555429,0.2222222222221717]],[10426255560432238561,[16.666666666666515,3.777777777777771]],[10498175376126066982,[4.9382716049382225,0.19753086419757435]]],"stroke":[[10438163357339042361,0],[15286139376878919277,0],[1241631398419524272,0],[379744301215040936,0],[4069217348643062888,0],[9330486019469919863,0],[11214998966879437330,0],[15838384105575178137,0],[12854270992100552972,0],[10498175376126066982,0],[10426255560432238561,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":15286139376878919277},{"ty":"Primary","segment":15838384105575178137}],[{"ty":"End","segment":4069217348643062888},{"ty":"Primary","segment":10438163357339042361}],[{"ty":"End","segment":10426255560432238561},{"ty":"Primary","segment":11214998966879437330}],[{"ty":"End","segment":1241631398419524272},{"ty":"Primary","segment":15286139376878919277}],[{"ty":"End","segment":10438163357339042361},{"ty":"Primary","segment":9330486019469919863}],[{"ty":"End","segment":379744301215040936},{"ty":"Primary","segment":4069217348643062888}],[{"ty":"End","segment":11214998966879437330},{"ty":"Primary","segment":1241631398419524272}]],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17753909951719808506,{"inputs":[{"Node":{"node_id":2185437945364824599,"output_index":0}},{"Node":{"node_id":9563008199132558110,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8566844905246185636,{"inputs":[{"Node":{"node_id":6852799892628327372,"output_index":0}},{"Node":{"node_id":17131529656312051452,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18095952297474762348,{"inputs":[{"Node":{"node_id":5954536408321808728,"output_index":0}},{"Node":{"node_id":5449860184735415958,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4261249487994076490,{"inputs":[{"Node":{"node_id":14516211820212764316,"output_index":0}},{"Node":{"node_id":5534800796196967885,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8426490990601560741,{"inputs":[{"Node":{"node_id":10760002922115563021,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13795432594059356320,{"inputs":[{"Node":{"node_id":2871608309888343463,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FlattenPathNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7651693425519490419,{"inputs":[{"Node":{"node_id":4771789845668099116,"output_index":0}},{"Node":{"node_id":15817956847588799375,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6616450276140292763,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[14760110820354327749,9465415708990918986,13517856880347849115,12398030966924498647,2930103517622848405,9496337687212684441],"remove":[],"delta":[[9496337687212684441,[732.148148148148,57.18518518518518]],[14760110820354327749,[614.8148148148148,129.1851851851852]],[12398030966924498647,[823.4074074074074,97.4814814814815]],[9465415708990918986,[706.3703703703703,86.51851851851853]],[13517856880347849115,[777.1851851851851,92.44444444444446]],[2930103517622848405,[819.2592592592591,69.33333333333334]]]},"segments":{"add":[18226408581696793441,16628058317667581864,3809009367670994230,13496648265229692336,10686631697241750410,11696351847604335156],"remove":[],"start_point":[[16628058317667581864,9465415708990918986],[11696351847604335156,9496337687212684441],[3809009367670994230,13517856880347849115],[13496648265229692336,12398030966924498647],[18226408581696793441,14760110820354327749],[10686631697241750410,2930103517622848405]],"end_point":[[18226408581696793441,9465415708990918986],[11696351847604335156,14760110820354327749],[16628058317667581864,13517856880347849115],[13496648265229692336,2930103517622848405],[3809009367670994230,12398030966924498647],[10686631697241750410,9496337687212684441]],"handle_primary":[[16628058317667581864,[41.185185185185105,-9.7777777777778]],[18226408581696793441,[0.0,0.0]],[11696351847604335156,[-29.333333333333258,11.55555555555555]],[13496648265229692336,[14.222222222222172,-0.8888888888888857]],[3809009367670994230,[21.33333333333337,4.740740740740733]],[10686631697241750410,[-13.037037037036953,-4.444444444444457]]],"handle_end":[[10686631697241750410,[29.333333333333258,-11.55555555555555]],[11696351847604335156,[54.81481481481478,-42.37037037037035]],[3809009367670994230,[-14.222222222222172,0.8888888888888857]],[18226408581696793441,[-41.185185185185105,9.7777777777778]],[13496648265229692336,[13.037037037036953,4.444444444444457]],[16628058317667581864,[-21.33333333333337,-4.740740740740733]]],"stroke":[[10686631697241750410,0],[16628058317667581864,0],[13496648265229692336,0],[3809009367670994230,0],[18226408581696793441,0],[11696351847604335156,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":13496648265229692336},{"ty":"Primary","segment":10686631697241750410}],[{"ty":"End","segment":18226408581696793441},{"ty":"Primary","segment":16628058317667581864}],[{"ty":"End","segment":16628058317667581864},{"ty":"Primary","segment":3809009367670994230}],[{"ty":"End","segment":10686631697241750410},{"ty":"Primary","segment":11696351847604335156}],[{"ty":"End","segment":3809009367670994230},{"ty":"Primary","segment":13496648265229692336}]],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4560146526699152877,{"inputs":[{"Node":{"node_id":5486211022469996717,"output_index":0}},{"Node":{"node_id":13646498613066619660,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[57390435731316553,{"inputs":[{"Node":{"node_id":8460565235419043665,"output_index":0}},{"Node":{"node_id":13838011362258067867,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16785043320296790229,{"inputs":[{"Node":{"node_id":1009114585722052052,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":20.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9808637865669223270,{"inputs":[{"Node":{"node_id":140396870212231820,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16177422101884031678,{"inputs":[{"Node":{"node_id":13353438235848911576,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11201759760883367635,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[5173348374891662425,12314285668680405002,7388288026322342161,12796056970187696453],"remove":[],"delta":[[5173348374891662425,[969.0,0.0]],[12796056970187696453,[1418.0,0.0]],[12314285668680405002,[1085.0,181.0]],[7388288026322342161,[1277.0,319.0]]]},"segments":{"add":[10860608091363771974,9177623211202289793,18091265337503274797,9065140293539496953],"remove":[],"start_point":[[10860608091363771974,5173348374891662425],[9177623211202289793,12314285668680405002],[18091265337503274797,7388288026322342161],[9065140293539496953,12796056970187696453]],"end_point":[[9065140293539496953,5173348374891662425],[18091265337503274797,12796056970187696453],[10860608091363771974,12314285668680405002],[9177623211202289793,7388288026322342161]],"handle_primary":[[18091265337503274797,[178.0,-35.0]],[9177623211202289793,[-33.0,137.0]],[9065140293539496953,[0.0,0.0]],[10860608091363771974,[0.0,0.0]]],"handle_end":[[10860608091363771974,[25.066898104916696,-104.0656072840481]],[9065140293539496953,[0.0,0.0]],[9177623211202289793,[-77.81941867085992,15.301571086966838]],[18091265337503274797,[168.99998492988766,81.0]]],"stroke":[[9177623211202289793,0],[9065140293539496953,0],[10860608091363771974,0],[18091265337503274797,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":9177623211202289793},{"ty":"Primary","segment":18091265337503274797}],[{"ty":"End","segment":10860608091363771974},{"ty":"Primary","segment":9177623211202289793}]],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10760002922115563021,{"inputs":[{"Node":{"node_id":14257963317028524134,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13588160462734303101,{"inputs":[{"Node":{"node_id":17036604842139972912,"output_index":0}},{"Node":{"node_id":4301099429811409147,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11373527190663101881,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[12058665768506126331,6802441093413090533,4854280308383915721,17729943149159368459,7436032950540776377,2189722519288419244,15817054697695831753,15744271344233846756,13877679667762731651,13567509413382199058,5664077098702810122,14178520291283306679,15575201098426093294],"remove":[],"delta":[[15817054697695831753,[806.716049382716,206.22222222222223]],[17729943149159368459,[801.1851851851852,199.90123456790124]],[2189722519288419244,[796.0493827160494,202.2716049382716]],[15575201098426093294,[636.7407407407406,173.33333333333331]],[15744271344233846756,[785.7777777777777,205.62962962962965]],[4854280308383915721,[813.9259259259259,200.2962962962963]],[14178520291283306679,[668.4444444444443,183.1111111111111]],[13567509413382199058,[702.6831275720166,195.95061728395063]],[12058665768506126331,[693.7283950617283,174.35390946502056]],[6802441093413090533,[783.4074074074074,172.74074074074073]],[7436032950540776377,[815.4074074074074,203.25925925925927]],[13877679667762731651,[743.4074074074074,234.66666666666669]],[5664077098702810122,[686.5185185185185,191.1111111111111]]]},"segments":{"add":[2336956120616260883,1639796012074210121,3918280827204321712,13932755083907220179,14941832641240060361,94092576912261794,18299135553255571870,3109091330258982137,11037018395008586448,16261506098907231989,8279051592565434787,2367379450383978497,5102625335252315850],"remove":[],"start_point":[[14941832641240060361,7436032950540776377],[11037018395008586448,13877679667762731651],[2367379450383978497,14178520291283306679],[2336956120616260883,12058665768506126331],[3109091330258982137,15744271344233846756],[1639796012074210121,6802441093413090533],[94092576912261794,2189722519288419244],[5102625335252315850,15575201098426093294],[16261506098907231989,13567509413382199058],[8279051592565434787,5664077098702810122],[13932755083907220179,17729943149159368459],[18299135553255571870,15817054697695831753],[3918280827204321712,4854280308383915721]],"end_point":[[3109091330258982137,13877679667762731651],[11037018395008586448,13567509413382199058],[1639796012074210121,4854280308383915721],[13932755083907220179,7436032950540776377],[94092576912261794,15817054697695831753],[16261506098907231989,5664077098702810122],[2367379450383978497,15575201098426093294],[2336956120616260883,6802441093413090533],[5102625335252315850,12058665768506126331],[14941832641240060361,2189722519288419244],[18299135553255571870,15744271344233846756],[8279051592565434787,14178520291283306679],[3918280827204321712,17729943149159368459]],"handle_primary":[[11037018395008586448,[0.0,0.0]],[5102625335252315850,[0.0,0.0]],[3918280827204321712,[0.0,0.0]],[18299135553255571870,[0.0,0.0]],[2367379450383978497,[-5.037037037036953,-1.7777777777777717]],[8279051592565434787,[-16.75720164609038,-2.1399176954732297]],[2336956120616260883,[0.0,0.0]],[94092576912261794,[0.0,0.0]],[3109091330258982137,[0.0,0.0]],[14941832641240060361,[0.0,0.0]],[13932755083907220179,[0.0,0.0]],[1639796012074210121,[0.0,0.0]],[16261506098907231989,[0.0,0.0]]],"handle_end":[[2336956120616260883,[-65.77777777777783,13.333333333333314]],[94092576912261794,[0.0,0.0]],[2367379450383978497,[12.740740740740648,5.037037037037038]],[13932755083907220179,[0.0,0.0]],[16261506098907231989,[12.1395654462896,1.5502392023748983]],[3918280827204321712,[0.0,0.0]],[11037018395008586448,[13.168724279835374,22.12345679012344]],[5102625335252315850,[-27.12757201646093,2.633744855967052]],[14941832641240060361,[7.1111111111111995,1.7777777777778]],[8279051592565434787,[5.037037037036953,1.7777777777777717]],[1639796012074210121,[-19.259259259259352,-3.259259259259238]],[18299135553255571870,[10.07407407407402,2.7654320987654444]],[3109091330258982137,[18.962962962963047,2.074074074074048]]],"stroke":[[13932755083907220179,0],[11037018395008586448,0],[5102625335252315850,0],[2367379450383978497,0],[3918280827204321712,0],[8279051592565434787,0],[1639796012074210121,0],[16261506098907231989,0],[18299135553255571870,0],[94092576912261794,0],[3109091330258982137,0],[2336956120616260883,0],[14941832641240060361,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":8279051592565434787},{"ty":"Primary","segment":2367379450383978497}],[{"ty":"End","segment":16261506098907231989},{"ty":"Primary","segment":8279051592565434787}],[{"ty":"End","segment":3918280827204321712},{"ty":"Primary","segment":13932755083907220179}],[{"ty":"End","segment":13932755083907220179},{"ty":"Primary","segment":14941832641240060361}],[{"ty":"End","segment":94092576912261794},{"ty":"Primary","segment":18299135553255571870}]],"remove_g1_continuous":[[{"ty":"Primary","segment":16261506098907231989},{"ty":"End","segment":11037018395008586448}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9563008199132558110,{"inputs":[{"Node":{"node_id":7855094781869605606,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18081743490344004315,{"inputs":[{"Node":{"node_id":13588160462734303101,"output_index":0}},{"Node":{"node_id":18068340617333437755,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6852799892628327372,{"inputs":[{"Node":{"node_id":2025899804080897524,"output_index":0}},{"Node":{"node_id":16671141883125519098,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17952673493105230490,{"inputs":[{"Node":{"node_id":14228923746783465609,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":20.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8863346544623578893,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[5480246971175127548,949359986970918930,6461719056721357962,6265491311473200676],"remove":[947514826240006203],"delta":[[949359986970918930,[0.0,608.0]],[6461719056721357962,[173.33333333333331,506.66666666666674]],[5480246971175127548,[364.0,767.9999999999999]],[6265491311473200676,[-2.273736754432321e-13,768.0000000000001]]]},"segments":{"add":[8951068186878308228,9717584104793611782,15710828508798332384,12480300844056666979],"remove":[11231973846952426191,15926511461198813522,6561081452252813685],"start_point":[[9717584104793611782,949359986970918930],[15710828508798332384,5480246971175127548],[8951068186878308228,6461719056721357962],[12480300844056666979,6265491311473200676]],"end_point":[[9717584104793611782,6461719056721357962],[12480300844056666979,949359986970918930],[8951068186878308228,5480246971175127548],[15710828508798332384,6265491311473200676]],"handle_primary":[[12480300844056666979,null],[9717584104793611782,[0.0,0.0]],[15710828508798332384,null],[8951068186878308228,[121.00000000000006,-37.99999999999994]]],"handle_end":[[8951068186878308228,[-92.0,-81.99999999999989]],[12480300844056666979,null],[15710828508798332384,null],[9717584104793611782,[-63.1770926995265,19.84073985604961]]],"stroke":[[12480300844056666979,0],[15710828508798332384,0],[8951068186878308228,0],[9717584104793611782,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"Primary","segment":9717584104793611782},{"ty":"End","segment":12480300844056666979}],[{"ty":"Primary","segment":8951068186878308228},{"ty":"End","segment":9717584104793611782}],[{"ty":"End","segment":6561081452252813685},{"ty":"Primary","segment":9717584104793611782}]],"remove_g1_continuous":[[{"ty":"End","segment":15926511461198813522},{"ty":"Primary","segment":8951068186878308228}],[{"ty":"Primary","segment":11231973846952426191},{"ty":"End","segment":9717584104793611782}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15692102598187739001,{"inputs":[{"Node":{"node_id":14950060858756810933,"output_index":0}},{"Node":{"node_id":11201759760883367635,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4421418468606442725,{"inputs":[{"Node":{"node_id":8863346544623578893,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4807760870555738383,{"inputs":[{"Node":{"node_id":876963243827503916,"output_index":0}},{"Node":{"node_id":8269257328703012432,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4102754869474520966,{"inputs":[{"Node":{"node_id":2723198387862533596,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2880630606834119505,{"inputs":[{"Node":{"node_id":8297015715799006244,"output_index":0}},{"Node":{"node_id":16322546010403524636,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10265035897167064154,{"inputs":[{"Node":{"node_id":14698962747138962125,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17131529656312051452,{"inputs":[{"Node":{"node_id":13646498613066619660,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7104088139635280554,{"inputs":[{"Node":{"node_id":16785043320296790229,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SolidifyStrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18068340617333437755,{"inputs":[{"Node":{"node_id":2880630606834119505,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[73.0306419396,-200.8521460039]},"exposed":false}},{"Value":{"tagged_value":{"F64":24.404620143799995},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9999999999999998,0.9999999999999998]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2185437945364824599,{"inputs":[{"Node":{"node_id":18081743490344004315,"output_index":0}},{"Node":{"node_id":4421418468606442725,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1627123781166851142,{"inputs":[{"Node":{"node_id":4807760870555738383,"output_index":0}},{"Node":{"node_id":15354358358546908017,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14141479077115894852,{"inputs":[{"Node":{"node_id":15433707377961038695,"output_index":0}},{"Node":{"node_id":17285637344898461972,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17397123104674848450,{"inputs":[{"Node":{"node_id":1662641269094032596,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15877481873925059044,{"inputs":[{"Node":{"node_id":17299978721726771610,"output_index":0}},{"Node":{"node_id":7252918969430566594,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13340751444307201866,{"inputs":[{"Node":{"node_id":9135110142507605216,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.93333334,"green":0.8627451,"blue":0.7254902,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12741076678082295759,{"inputs":[{"Node":{"node_id":14139765080256493579,"output_index":0}},{"Node":{"node_id":5449860184735415958,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13916027199283115943,{"inputs":[{"Node":{"node_id":6194305264313730032,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.101960786,"green":0.13333334,"blue":0.13725491,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15930698052919171086,{"inputs":[{"Node":{"node_id":13739729101529293427,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4631655038168471552,{"inputs":[{"Node":{"node_id":990192925663920333,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::BoundingBoxNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17223836790030950966,{"inputs":[{"Node":{"node_id":14030142873804552388,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17056531964793634106,{"inputs":[{"Node":{"node_id":990192925663920333,"output_index":0}},{"Node":{"node_id":10063704933309776584,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13446205009526451196,{"inputs":[{"Node":{"node_id":14139765080256493579,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.92156863,"green":0.6039216,"blue":0.18039216,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15433707377961038695,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[16723991032614525258,1623125309784127684,7209807874503344461,3123395482103162919,2668496811386192321],"remove":[12344391980636687302],"delta":[[3123395482103162919,[-2.273736754432321e-13,689.0]],[1623125309784127684,[643.9258958566198,633.6997633965701]],[2668496811386192321,[0.0,768.0]],[7209807874503344461,[188.0,694.6666666666669]],[16723991032614525258,[553.0000000000001,768.0]]]},"segments":{"add":[3656277643115996070,6789459806904610761,16287649713110748258,16456150086799119359,1652964032977338610],"remove":[1848051273241122771],"start_point":[[16456150086799119359,2668496811386192321],[16287649713110748258,3123395482103162919],[3656277643115996070,16723991032614525258],[1652964032977338610,7209807874503344461],[6789459806904610761,1623125309784127684]],"end_point":[[6789459806904610761,7209807874503344461],[1652964032977338610,3123395482103162919],[3656277643115996070,1623125309784127684],[16456150086799119359,16723991032614525258],[16287649713110748258,2668496811386192321]],"handle_primary":[[1652964032977338610,[-81.48609837852206,84.6759456460087]],[16287649713110748258,[0.0,0.0]],[16456150086799119359,[0.0,0.0]],[3656277643115996070,[0.0,0.0]],[6789459806904610761,[-213.92589585661983,-68.82675604113183]]],"handle_end":[[1652964032977338610,[56.00000000000023,11.0]],[16287649713110748258,[0.0,0.0]],[6789459806904610761,[187.33333333333343,-194.6666666666667]],[16456150086799119359,[0.0,0.0]],[3656277643115996070,[0.0,0.0]]],"stroke":[[6789459806904610761,0],[16456150086799119359,0],[1652964032977338610,0],[16287649713110748258,0],[3656277643115996070,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":16287649713110748258},{"ty":"Primary","segment":16456150086799119359}],[{"ty":"End","segment":6789459806904610761},{"ty":"Primary","segment":1652964032977338610}]],"remove_g1_continuous":[[{"ty":"End","segment":1652964032977338610},{"ty":"Primary","segment":1848051273241122771}],[{"ty":"End","segment":3656277643115996070},{"ty":"Primary","segment":6789459806904610761}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5877930116725120460,{"inputs":[{"Node":{"node_id":4470272391975492611,"output_index":0}},{"Node":{"node_id":1258994191538244490,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14516211820212764316,{"inputs":[{"Node":{"node_id":2124231869409556689,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,416.7]},"exposed":false}},{"Value":{"tagged_value":{"F64":31.0},"exposed":false}},{"Value":{"tagged_value":{"U32":8},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::RepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3997031659711823213,{"inputs":[{"Node":{"node_id":6484183251661832039,"output_index":0}},{"Node":{"node_id":7962101329808960965,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3471746866096043087,{"inputs":[{"Node":{"node_id":5486211022469996717,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7480253252288032958,{"inputs":[{"Node":{"node_id":7104261880154687267,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8509804,"green":0.24313726,"blue":0.18431373,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3079923906392020295,{"inputs":[{"Node":{"node_id":17056531964793634106,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4809200889774783438,{"inputs":[{"Node":{"node_id":3109716240255919254,"output_index":0}},{"Node":{"node_id":14139129879376457893,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16304636129468583592,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[4648964341912884959,10156053545530752213,16569120368910754547],"remove":[],"delta":[[16569120368910754547,[1361.0,768.0]],[4648964341912884959,[665.0000000000001,768.0]],[10156053545530752213,[1094.162353515625,594.2965698242188]]]},"segments":{"add":[9030015329489789075,2197140374690997530,3433930674303663828],"remove":[],"start_point":[[2197140374690997530,10156053545530752213],[9030015329489789075,4648964341912884959],[3433930674303663828,16569120368910754547]],"end_point":[[2197140374690997530,16569120368910754547],[9030015329489789075,10156053545530752213],[3433930674303663828,4648964341912884959]],"handle_primary":[[3433930674303663828,[0.0,0.0]],[2197140374690997530,[79.20069951994813,30.807024746222492]],[9030015329489789075,[32.66666666666663,-95.99999999999989]]],"handle_end":[[9030015329489789075,[-238.88331323750492,-92.9194336284096]],[2197140374690997530,[-24.333333333333485,-86.99999999999977]],[3433930674303663828,[0.0,0.0]]],"stroke":[[3433930674303663828,0],[2197140374690997530,0],[9030015329489789075,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":9030015329489789075},{"ty":"Primary","segment":2197140374690997530}]],"remove_g1_continuous":[[{"ty":"End","segment":2197140374690997530},{"ty":"Primary","segment":3433930674303663828}],[{"ty":"Primary","segment":9030015329489789075},{"ty":"End","segment":3433930674303663828}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2871608309888343463,{"inputs":[{"Node":{"node_id":12494428953087324640,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,200.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":8},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::RepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5488285068107445023,{"inputs":[{"Node":{"node_id":7667878689218439065,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"SubtractFront"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3050731459444225191,{"inputs":[{"Node":{"node_id":682567808439406093,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,200.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":12},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::RepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16306737306999003555,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[6082833770141706533,7903705226822768120,17147466439590042359,13341364271767916194],"remove":[],"delta":[[13341364271767916194,[262.22222222222223,364.1481481481481]],[17147466439590042359,[526.0109927536641,282.1042175292969]],[6082833770141706533,[504.0987654320987,184.6255144032922]],[7903705226822768120,[497.3827160493826,248.88888888888889]]]},"segments":{"add":[14649965831690031908,801877719748058643,9659144961849433642,2255088856072565305],"remove":[],"start_point":[[801877719748058643,7903705226822768120],[14649965831690031908,6082833770141706533],[2255088856072565305,13341364271767916194],[9659144961849433642,17147466439590042359]],"end_point":[[2255088856072565305,6082833770141706533],[9659144961849433642,13341364271767916194],[14649965831690031908,7903705226822768120],[801877719748058643,17147466439590042359]],"handle_primary":[[801877719748058643,[13.173601585124231,23.615912208504938]],[2255088856072565305,[0.0,0.0]],[14649965831690031908,[0.0,0.0]],[9659144961849433642,[0.0,0.0]]],"handle_end":[[801877719748058643,[0.0,0.0]],[14649965831690031908,[-17.920501046401128,-32.12553353079403]],[9659144961849433642,[195.55555555555569,-16.14814814814804]],[2255088856072565305,[-112.09876543209862,43.81893004115227]]],"stroke":[[14649965831690031908,0],[2255088856072565305,0],[9659144961849433642,0],[801877719748058643,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":801877719748058643},{"ty":"Primary","segment":9659144961849433642}],[{"ty":"End","segment":14649965831690031908},{"ty":"Primary","segment":801877719748058643}]],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8297015715799006244,{"inputs":[{"Node":{"node_id":17569892869974995307,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,407.5]},"exposed":false}},{"Value":{"tagged_value":{"F64":24.2},"exposed":false}},{"Value":{"tagged_value":{"U32":8},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::RepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12867379765049504290,{"inputs":[{"Node":{"node_id":6445954214067437701,"output_index":0}},{"Node":{"node_id":8863346544623578893,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17740496701763775226,{"inputs":[{"Node":{"node_id":13027689870767713939,"output_index":0}},{"Node":{"node_id":16609137733952262762,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14808063168960305551,{"inputs":[{"Node":{"node_id":14496934933990319842,"output_index":0}},{"Node":{"node_id":3471746866096043087,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12494428953087324640,{"inputs":[{"Node":{"node_id":8511737864852441844,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[300.0,50.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":12},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::RepeatNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15817956847588799375,{"inputs":[{"Node":{"node_id":11201759760883367635,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3137255,"green":0.44705883,"blue":0.45490196,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2287485748649359627,{"inputs":[{"Node":{"node_id":804622576568168609,"output_index":0}},{"Node":{"node_id":5449860184735415958,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13646498613066619660,{"inputs":[{"Node":{"node_id":12741076678082295759,"output_index":0}},{"Value":{"tagged_value":{"BooleanOperation":"Intersect"},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::style::Fill","alias":null}},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"path_bool_nodes::BooleanOperationNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1809704172129195322,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":20.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2124231869409556689,{"inputs":[{"Node":{"node_id":15877481873925059044,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[876963243827503916,{"inputs":[{"Node":{"node_id":7651693425519490419,"output_index":0}},{"Node":{"node_id":17223836790030950966,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13838011362258067867,{"inputs":[{"Node":{"node_id":4631655038168471552,"output_index":0}},{"Value":{"tagged_value":{"CentroidType":"Area"},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CentroidNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7376049709233607419,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[16958489363675356032,7347160684180114694,4322398537034510509,3438797896265725901,16005438712872589849,1674257131044231065,10491326691824745018,9374180853656949931,13358295350421759755,15245407364463454564],"remove":[],"delta":[[3438797896265725901,[795.4567901234569,94.41975308641976]],[10491326691824745018,[811.851851851852,148.54320987654322]],[16958489363675356032,[658.172839506173,169.08641975308643]],[7347160684180114694,[772.1481481481483,138.66666666666669]],[15245407364463454564,[773.530864197531,141.4320987654321]],[13358295350421759755,[778.4691358024693,177.1851851851852]],[16005438712872589849,[817.1851851851852,94.61728395061728]],[4322398537034510509,[776.888888888889,117.53086419753087]],[1674257131044231065,[829.4320987654323,121.67901234567904]],[9374180853656949931,[784.0000000000002,176.98765432098767]]]},"segments":{"add":[11663644781855838202,198953627342130434,8327087349631976772,13015157349146777770,8528911024810728168,3235570761188242773,16847383896493391194,16846650637386857857,3784798568712268630,12873317883441611394],"remove":[],"start_point":[[13015157349146777770,3438797896265725901],[16847383896493391194,10491326691824745018],[3784798568712268630,13358295350421759755],[198953627342130434,7347160684180114694],[8327087349631976772,4322398537034510509],[8528911024810728168,16005438712872589849],[16846650637386857857,9374180853656949931],[12873317883441611394,15245407364463454564],[11663644781855838202,16958489363675356032],[3235570761188242773,1674257131044231065]],"end_point":[[8327087349631976772,3438797896265725901],[8528911024810728168,1674257131044231065],[16847383896493391194,9374180853656949931],[16846650637386857857,13358295350421759755],[11663644781855838202,7347160684180114694],[3784798568712268630,15245407364463454564],[3235570761188242773,10491326691824745018],[13015157349146777770,16005438712872589849],[198953627342130434,4322398537034510509],[12873317883441611394,16958489363675356032]],"handle_primary":[[8327087349631976772,[-0.19753086419757435,-13.82716049382715]],[3235570761188242773,[0.1975308641974607,7.703703703703709]],[8528911024810728168,[5.530864197530946,5.925925925925924]],[16846650637386857857,[0.0,0.0]],[13015157349146777770,[0.0,0.0]],[11663644781855838202,[0.0,0.0]],[3784798568712268630,[-2.962962962963161,-10.864197530864232]],[198953627342130434,[0.0,0.3950617283950635]],[12873317883441611394,[-19.75308641975323,2.172839506172835]],[16847383896493391194,[-17.185185185185105,13.234567901234584]]],"handle_end":[[13015157349146777770,[-5.530864197530946,-5.925925925925924]],[8327087349631976772,[0.0,0.0]],[16846650637386857857,[0.0,0.0]],[8528911024810728168,[-0.1975308641974607,-7.703703703703709]],[11663644781855838202,[-74.27160493827171,29.03703703703698]],[3235570761188242773,[17.185185185185105,-13.234567901234584]],[198953627342130434,[0.19753086419757435,13.82716049382715]],[12873317883441611394,[33.382716049382566,14.222222222222172]],[3784798568712268630,[2.9629629629629335,5.135802469135797]],[16847383896493391194,[0.0,0.0]]],"stroke":[[3235570761188242773,0],[16846650637386857857,0],[11663644781855838202,0],[198953627342130434,0],[13015157349146777770,0],[3784798568712268630,0],[8528911024810728168,0],[8327087349631976772,0],[16847383896493391194,0],[12873317883441611394,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":8528911024810728168},{"ty":"Primary","segment":3235570761188242773}],[{"ty":"End","segment":16847383896493391194},{"ty":"Primary","segment":16846650637386857857}],[{"ty":"End","segment":3235570761188242773},{"ty":"Primary","segment":16847383896493391194}],[{"ty":"End","segment":13015157349146777770},{"ty":"Primary","segment":8528911024810728168}],[{"ty":"End","segment":198953627342130434},{"ty":"Primary","segment":8327087349631976772}],[{"ty":"End","segment":8327087349631976772},{"ty":"Primary","segment":13015157349146777770}]],"remove_g1_continuous":[[{"ty":"End","segment":16846650637386857857},{"ty":"Primary","segment":3784798568712268630}],[{"ty":"End","segment":3784798568712268630},{"ty":"Primary","segment":12873317883441611394}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7977952035097419157,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::EllipseNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7667878689218439065,{"inputs":[{"Node":{"node_id":18271512507682813443,"output_index":0}},{"Node":{"node_id":5449860184735415958,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14030142873804552388,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[11163144542703672167,7233902871991446034,9403888920678312544,5714042674660607880,9912917483675332510],"remove":[],"delta":[[11163144542703672167,[763.0,0.0]],[9912917483675332510,[1536.0,254.00000000000009]],[9403888920678312544,[1271.0,199.0]],[7233902871991446034,[908.0,134.0]],[5714042674660607880,[1536.0,0.0]]]},"segments":{"add":[7099980686025805826,11879054056208937348,7804540624589615499,3118709054343469746,12085471811343146506],"remove":[8174738144062904321],"start_point":[[3118709054343469746,9403888920678312544],[11879054056208937348,7233902871991446034],[12085471811343146506,9912917483675332510],[7099980686025805826,11163144542703672167],[7804540624589615499,5714042674660607880]],"end_point":[[3118709054343469746,9912917483675332510],[12085471811343146506,5714042674660607880],[7099980686025805826,7233902871991446034],[7804540624589615499,11163144542703672167],[11879054056208937348,9403888920678312544]],"handle_primary":[[7804540624589615499,[0.0,0.0]],[11879054056208937348,[68.41365603453937,54.51084151791355]],[12085471811343146506,[0.0,0.0]],[7099980686025805826,[0.0,0.0]],[3118709054343469746,[191.0,-106.0]]],"handle_end":[[11879054056208937348,[-121.83694366711715,67.61631428646292]],[3118709054343469746,[0.0,0.0]],[7804540624589615499,[0.0,0.0]],[12085471811343146506,[0.0,0.0]],[7099980686025805826,[-68.41365603453914,-54.51084151791349]]],"stroke":[[11879054056208937348,0],[7804540624589615499,0],[3118709054343469746,0],[12085471811343146506,0],[7099980686025805826,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[[{"ty":"End","segment":11879054056208937348},{"ty":"Primary","segment":8174738144062904321}],[{"ty":"End","segment":7099980686025805826},{"ty":"Primary","segment":11879054056208937348}],[{"ty":"End","segment":11879054056208937348},{"ty":"Primary","segment":3118709054343469746}]],"remove_g1_continuous":[[{"ty":"End","segment":3118709054343469746},{"ty":"Primary","segment":12085471811343146506}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[16759836951269190891,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14516211820212764316,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1491840484128555837,{"persistent_metadata":{"reference":"Merge","display_name":"Face Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":3}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12145355397916841389,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13670206802546093234,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6728362629909402903,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6726954210929537972,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7252918969430566594,{"persistent_metadata":{"reference":"Multiply","display_name":"Multiply","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplier","input_description":"The left-hand side of the multiplication operation.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplicand","input_description":"The right-hand side of the multiplication operation.\n"}}],"output_names":["f64"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,107]}}},"network_metadata":null}}],[4631655038168471552,{"persistent_metadata":{"reference":"Bounding Box","display_name":"Bounding Box","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,103]}}},"network_metadata":null}}],[804622576568168609,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3109716240255919254,{"persistent_metadata":{"reference":"Merge","display_name":"Front Eyebrow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16322546010403524636,{"persistent_metadata":{"reference":"Centroid","display_name":"Centroid","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Centroid Type","input_description":""}}],"output_names":["DVec2"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,96]}}},"network_metadata":null}}],[11264395591110193456,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-78,93]}}},"network_metadata":null}}],[15692102598187739001,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,57]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18095952297474762348,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5888633415105234509,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1662641269094032596,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4301099429811409147,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9071802450034150503,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14257963317028524134,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7667878689218439065,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11373527190663101881,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13446205009526451196,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18081743490344004315,{"persistent_metadata":{"reference":"Merge","display_name":"Hair Dots Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2834866505092039323,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18031616785650843168,{"persistent_metadata":{"reference":"Solidify Stroke","display_name":"Solidify Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-35,133]}}},"network_metadata":null}}],[14228923746783465609,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-49,135]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13340751444307201866,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1001728975241745659,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12770183061753030023,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8863346544623578893,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,90]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11201759760883367635,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,64]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[392274448837115448,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","is_integer":true,"unit":" px"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":true,"y":"H","x":"W"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-4,9]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13588160462734303101,{"persistent_metadata":{"reference":"Merge","display_name":"Hair Dots Red","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":3}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11095670964487764044,{"persistent_metadata":{"reference":"Merge","display_name":"Hair Strand 2","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8566844905246185636,{"persistent_metadata":{"reference":"Merge","display_name":"Mouth Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5534800796196967885,{"persistent_metadata":{"reference":"Centroid","display_name":"Centroid","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Centroid Type","input_description":""}}],"output_names":["DVec2"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,109]}}},"network_metadata":null}}],[17735408893002232096,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2185437945364824599,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Left White","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7962101329808960965,{"persistent_metadata":{"reference":"Multiply","display_name":"Multiply","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplier","input_description":"The left-hand side of the multiplication operation.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplicand","input_description":"The right-hand side of the multiplication operation.\n"}}],"output_names":["f64"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,94]}}},"network_metadata":null}}],[9808637865669223270,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14141479077115894852,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,87]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4560146526699152877,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12353675714904258944,{"persistent_metadata":{"reference":"Merge","display_name":"Nose Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11196821089257149774,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12234961922142600898,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Black","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":12}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5954536408321808728,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17740496701763775226,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Blue","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2871608309888343463,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4328376070224119511,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4102754869474520966,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4809200889774783438,{"persistent_metadata":{"reference":"Merge","display_name":"Front Eye","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14496934933990319842,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Left Blue","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[140396870212231820,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17952673493105230490,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-42,133]}}},"network_metadata":null}}],[9135110142507605216,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2723198387862533596,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15301503532602557206,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3997031659711823213,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2287485748649359627,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12922148192688274227,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16671141883125519098,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18188505856445531484,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12494428953087324640,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15900830679378240619,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3410481056630111806,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-71,99]}}},"network_metadata":null}}],[8297015715799006244,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15930698052919171086,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7480253252288032958,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17351444026127625357,{"persistent_metadata":{"reference":"Merge","display_name":"Face Black","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11210964267417873667,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15817956847588799375,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10265035897167064154,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17562801632450633291,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3050731459444225191,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7755499790391969923,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7376049709233607419,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4261249487994076490,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8460565235419043665,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6616450276140292763,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15433707377961038695,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,87]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4807760870555738383,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Main Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7977952035097419157,{"persistent_metadata":{"reference":"Ellipse","display_name":"Ellipse","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius Y","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6194305264313730032,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17397123104674848450,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13353438235848911576,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4470272391975492611,{"persistent_metadata":{"reference":"Merge","display_name":"Rose Sliver Silhouette","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14139765080256493579,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,138]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8511737864852441844,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15354358358546908017,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13027689870767713939,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Black - Dots","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7855094781869605606,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,87]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13795432594059356320,{"persistent_metadata":{"reference":"Flatten Path","display_name":"Flatten Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3608604157153838227,{"persistent_metadata":{"reference":"Bounding Box","display_name":"Bounding Box","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,109]}}},"network_metadata":null}}],[2025899804080897524,{"persistent_metadata":{"reference":"Merge","display_name":"Face White","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13646498613066619660,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-35,118]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16785043320296790229,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14950060858756810933,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,60]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14698962747138962125,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12867379765049504290,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18068340617333437755,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2880630606834119505,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18053728639616073084,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1627123781166851142,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Corner Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1809704172129195322,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-78,106]}}},"network_metadata":null}}],[15877481873925059044,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4421418468606442725,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3471746866096043087,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9563008199132558110,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17285637344898461972,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,81]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16177422101884031678,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13739729101529293427,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[990192925663920333,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,99]}}},"network_metadata":null}}],[876963243827503916,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Red","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10063704933309776584,{"persistent_metadata":{"reference":"Multiply","display_name":"Multiply","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplier","input_description":"The left-hand side of the multiplication operation.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Multiplicand","input_description":"The right-hand side of the multiplication operation.\n"}}],"output_names":["f64"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,101]}}},"network_metadata":null}}],[10080296672372912698,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14684142559936015947,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2124231869409556689,{"persistent_metadata":{"reference":"To Graphic","display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Element","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17696051535511578981,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-41,47]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17056531964793634106,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5488285068107445023,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17036604842139972912,{"persistent_metadata":{"reference":"Merge","display_name":"Hair Dots Blue","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":4}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5449860184735415958,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,124]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3750439930725791025,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5556372312033787775,{"persistent_metadata":{"reference":"Bounding Box","display_name":"Bounding Box","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,96]}}},"network_metadata":null}}],[14690269209726153565,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14808063168960305551,{"persistent_metadata":{"reference":"Merge","display_name":"Face Blue","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10760002922115563021,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7029437790788498388,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-71,106]}}},"network_metadata":null}}],[9338394475379815879,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17603523494627491590,{"persistent_metadata":{"reference":"Merge","display_name":"Lip Top","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16609137733952262762,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17495267820524300686,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7651693425519490419,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Blue","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7104261880154687267,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13916027199283115943,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12276520439585231336,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8426490990601560741,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8887924609778270360,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1009114585722052052,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,57]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6503655938154160104,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-35,44]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16304636129468583592,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-57,135]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17131529656312051452,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12741076678082295759,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-42,118]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13616602029989984195,{"persistent_metadata":{"reference":"Flatten Path","display_name":"Flatten Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[682567808439406093,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6445954214067437701,{"persistent_metadata":{"reference":"Boolean Operation","display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Operation","input_description":"TODO"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Boolean Operation","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1097494158696050491,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-78,99]}}},"network_metadata":null}}],[17753909951719808506,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Left Red","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8269257328703012432,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4771789845668099116,{"persistent_metadata":{"reference":"Merge","display_name":"Cheek Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1508440849951861669,{"persistent_metadata":{"reference":"Merge","display_name":"Face Red","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14030142873804552388,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-36,66]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10286817149456341619,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[57390435731316553,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12185047359007423618,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5486211022469996717,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,75]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8359580532088731394,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6484183251661832039,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,93]}}},"network_metadata":null}}],[7201841978411396053,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Black","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":2}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3214181946162459584,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13203761224559198689,{"persistent_metadata":{"reference":"Merge","display_name":"Front Eye Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17223836790030950966,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7104088139635280554,{"persistent_metadata":{"reference":"Solidify Stroke","display_name":"Solidify Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18351415092709164412,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5877930116725120460,{"persistent_metadata":{"reference":"Merge","display_name":"Rear Eyelash","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17271572793812678706,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14139129879376457893,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10995640810984321903,{"persistent_metadata":{"reference":"Merge","display_name":"Lip Bottom","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7018444885869143173,{"persistent_metadata":{"reference":"Merge","display_name":"Top Right Black - Dots","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5856350938151339368,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17740294143355019755,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18271512507682813443,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3079923906392020295,{"persistent_metadata":{"reference":"To Graphic","display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Element","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17299978721726771610,{"persistent_metadata":{"reference":"Repeat","display_name":"Repeat","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Direction","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Angle","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instances","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-64,106]}}},"network_metadata":null}}],[12709602171929957216,{"persistent_metadata":{"reference":"Merge","display_name":"Bottom Left Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16780039553038473906,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17569892869974995307,{"persistent_metadata":{"reference":"To Graphic","display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Element","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16306737306999003555,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11429506195623419966,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11301831865756336526,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1258994191538244490,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[294265135510952894,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-71,93]}}},"network_metadata":null}}],[13838011362258067867,{"persistent_metadata":{"reference":"Centroid","display_name":"Centroid","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Centroid Type","input_description":""}}],"output_names":["DVec2"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,103]}}},"network_metadata":null}}],[18003287685830153881,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,72]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6852799892628327372,{"persistent_metadata":{"reference":"Merge","display_name":"Head Orange","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6787585796949551500,{"persistent_metadata":{"reference":"Merge","display_name":"Hair Strand 1","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-8,12]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5014806436727666175,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[866.5700198973645,-929.4579096366516],"tilt":0.0,"zoom":0.6666666666666666,"flip":false},"node_graph_to_viewport":[0.6666666666666666,0.0,0.0,0.6666666666666666,1568.0,-39.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[3410481056630111806],[1097494158696050491],[3410481056630111806],[11684705487012407227],[],[294265135510952894],[],[],[],[13340751444307201866],[3765280235392282097],[3765280235392282097],[],[13795432594059356320],[],[2871608309888343463],[2871608309888343463,12494428953087324640],[3765280235392282097,12494428953087324640,2871608309888343463],[8511737864852441844,2871608309888343463,12494428953087324640,3765280235392282097],[],[13795432594059356320],[],[12494428953087324640,2871608309888343463],[2871608309888343463,3765280235392282097,12494428953087324640],[12494428953087324640,2871608309888343463,3765280235392282097,8511737864852441844],[],[3765280235392282097],[],[],[13616602029989984195],[],[],[],[16780039553038473906],[7104088139635280554],[],[],[7104088139635280554],[],[7104088139635280554],[],[],[16785043320296790229],[6503655938154160104],[17696051535511578981],[6503655938154160104],[17696051535511578981],[9071802450034150503],[],[17696051535511578981],[6503655938154160104],[],[18031616785650843168],[17952673493105230490],[],[4328376070224119511],[18031616785650843168,3750439930725791025,13446205009526451196,7201841978411396053,17735408893002232096,11196821089257149774,13027689870767713939,17952673493105230490,14228923746783465609,4328376070224119511],[13027689870767713939,16609137733952262762,12276520439585231336,13795432594059356320,7201841978411396053,17740496701763775226,13340751444307201866,5888633415105234509,17735408893002232096,9135110142507605216,3750439930725791025,11196821089257149774,17397123104674848450,13446205009526451196,4328376070224119511,14228923746783465609,1662641269094032596,18031616785650843168,17952673493105230490],[5888633415105234509,17740496701763775226,14228923746783465609,12276520439585231336,18031616785650843168,16306737306999003555,6852799892628327372,17952673493105230490,3750439930725791025,16671141883125519098,13446205009526451196,11196821089257149774,1662641269094032596,9135110142507605216,17397123104674848450,3214181946162459584,13027689870767713939,16609137733952262762,7201841978411396053,13795432594059356320,17735408893002232096,2871608309888343463,4328376070224119511,2025899804080897524,13340751444307201866],[17952673493105230490,13027689870767713939,13646498613066619660,14139765080256493579,3214181946162459584,13795432594059356320,1662641269094032596,16671141883125519098,17740496701763775226,16306737306999003555,17735408893002232096,14228923746783465609,4328376070224119511,12276520439585231336,9135110142507605216,11196821089257149774,2025899804080897524,17397123104674848450,5888633415105234509,7201841978411396053,16609137733952262762,2871608309888343463,16304636129468583592,13446205009526451196,17131529656312051452,8566844905246185636,5449860184735415958,3750439930725791025,18031616785650843168,12494428953087324640,12741076678082295759,6852799892628327372,13340751444307201866],[3750439930725791025,5888633415105234509,18031616785650843168,12494428953087324640,13340751444307201866,16306737306999003555,17952673493105230490,17397123104674848450,13795432594059356320,12741076678082295759,7201841978411396053,9135110142507605216,3214181946162459584,2871608309888343463,6852799892628327372,13646498613066619660,17740496701763775226,17131529656312051452,16671141883125519098,13446205009526451196,12276520439585231336,14139765080256493579,14228923746783465609,5449860184735415958,4328376070224119511,16609137733952262762,17735408893002232096,16304636129468583592,8566844905246185636,1662641269094032596,2025899804080897524,11196821089257149774,13027689870767713939,8511737864852441844],[13340751444307201866,5888633415105234509,14139765080256493579,8566844905246185636,13795432594059356320,16609137733952262762,5449860184735415958,13027689870767713939,6852799892628327372,3750439930725791025,8511737864852441844,11196821089257149774,12494428953087324640,17131529656312051452,16306737306999003555,2834866505092039323,17735408893002232096,13646498613066619660,18031616785650843168,12276520439585231336,17740496701763775226,3214181946162459584,12741076678082295759,16671141883125519098,9135110142507605216,14228923746783465609,2871608309888343463,16304636129468583592,2025899804080897524,17397123104674848450,17952673493105230490,1662641269094032596,7201841978411396053,13446205009526451196,4328376070224119511],[9135110142507605216,12276520439585231336,2871608309888343463,1508440849951861669,2025899804080897524,7201841978411396053,11196821089257149774,17740496701763775226,13446205009526451196,6852799892628327372,3214181946162459584,1662641269094032596,4328376070224119511,12741076678082295759,13340751444307201866,13795432594059356320,16671141883125519098,14139765080256493579,5888633415105234509,17735408893002232096,18031616785650843168,17131529656312051452,13027689870767713939,8566844905246185636,17952673493105230490,2834866505092039323,5449860184735415958,16304636129468583592,16609137733952262762,16306737306999003555,17397123104674848450,13646498613066619660,14228923746783465609,3750439930725791025,12494428953087324640,8511737864852441844],[17397123104674848450,13340751444307201866,12494428953087324640,13446205009526451196,3214181946162459584,17131529656312051452,16609137733952262762,16306737306999003555,12276520439585231336,2871608309888343463,4328376070224119511,16304636129468583592,17740496701763775226,7201841978411396053,2834866505092039323,9135110142507605216,8511737864852441844,5888633415105234509,13795432594059356320,17952673493105230490,7480253252288032958,11196821089257149774,5449860184735415958,14228923746783465609,3750439930725791025,13027689870767713939,17735408893002232096,1508440849951861669,8566844905246185636,18031616785650843168,13646498613066619660,14139765080256493579,7104261880154687267,2025899804080897524,12741076678082295759,1662641269094032596,6852799892628327372,16671141883125519098],[17952673493105230490,7104261880154687267,18031616785650843168,8566844905246185636,17735408893002232096,7201841978411396053,12741076678082295759,5449860184735415958,16609137733952262762,1662641269094032596,3214181946162459584,11196821089257149774,1508440849951861669,13340751444307201866,13446205009526451196,8511737864852441844,9135110142507605216,6852799892628327372,3750439930725791025,13795432594059356320,4328376070224119511,17131529656312051452,16304636129468583592,16306737306999003555,17740496701763775226,12494428953087324640,17397123104674848450,16671141883125519098,5888633415105234509,12276520439585231336,2834866505092039323,7480253252288032958,18095952297474762348,13646498613066619660,2871608309888343463,2025899804080897524,14228923746783465609,14139765080256493579,13027689870767713939],[1491840484128555837,7104261880154687267,17397123104674848450,8511737864852441844,13446205009526451196,13795432594059356320,14228923746783465609,7480253252288032958,2025899804080897524,17735408893002232096,16306737306999003555,17740496701763775226,12741076678082295759,13646498613066619660,4328376070224119511,12276520439585231336,18031616785650843168,3750439930725791025,3214181946162459584,2871608309888343463,5888633415105234509,16304636129468583592,13340751444307201866,1662641269094032596,11196821089257149774,5449860184735415958,16671141883125519098,13027689870767713939,17952673493105230490,6852799892628327372,17131529656312051452,14139765080256493579,1508440849951861669,18095952297474762348,8566844905246185636,12494428953087324640,16609137733952262762,2834866505092039323,9135110142507605216,7201841978411396053],[13027689870767713939,8511737864852441844,2871608309888343463,3214181946162459584,14228923746783465609,9808637865669223270,1508440849951861669,12494428953087324640,7201841978411396053,16671141883125519098,13340751444307201866,140396870212231820,1491840484128555837,13446205009526451196,14139765080256493579,5888633415105234509,2834866505092039323,7480253252288032958,17397123104674848450,17740496701763775226,1662641269094032596,18095952297474762348,16306737306999003555,16304636129468583592,17735408893002232096,12276520439585231336,16609137733952262762,4328376070224119511,13795432594059356320,7104261880154687267,5449860184735415958,17131529656312051452,13646498613066619660,6852799892628327372,3750439930725791025,2025899804080897524,9135110142507605216,5954536408321808728,11196821089257149774,12741076678082295759,8566844905246185636,17952673493105230490,18031616785650843168],[7252918969430566594,15877481873925059044,4261249487994076490,5534800796196967885,17036604842139972912],[5534800796196967885,11210964267417873667,4261249487994076490,17036604842139972912,2124231869409556689,7252918969430566594,14516211820212764316,15877481873925059044],[17036604842139972912,4261249487994076490,11210964267417873667,3608604157153838227,15877481873925059044,5534800796196967885,2124231869409556689,14516211820212764316,7252918969430566594],[14516211820212764316,4261249487994076490,11210964267417873667,7252918969430566594,15877481873925059044,17036604842139972912,5534800796196967885,3608604157153838227,2124231869409556689,17299978721726771610],[7252918969430566594,11210964267417873667,15877481873925059044,3608604157153838227,4261249487994076490,2124231869409556689,17299978721726771610,7029437790788498388,5534800796196967885,14516211820212764316,17036604842139972912],[4261249487994076490,17036604842139972912,5534800796196967885,17299978721726771610,7252918969430566594,3608604157153838227,14516211820212764316,11210964267417873667,1809704172129195322,2124231869409556689,15877481873925059044,7029437790788498388],[57390435731316553,13838011362258067867,17056531964793634106,4631655038168471552,13588160462734303101,10063704933309776584],[3410481056630111806,13838011362258067867,990192925663920333,57390435731316553,4631655038168471552,8460565235419043665,10063704933309776584,3079923906392020295,13588160462734303101,4301099429811409147,17056531964793634106],[57390435731316553,1097494158696050491,3410481056630111806,990192925663920333,8460565235419043665,13588160462734303101,13838011362258067867,17056531964793634106,4631655038168471552,3079923906392020295,4301099429811409147,10063704933309776584],[13588160462734303101],[4301099429811409147,8460565235419043665,13588160462734303101,57390435731316553],[3079923906392020295,17056531964793634106,4301099429811409147,8460565235419043665,57390435731316553,13588160462734303101],[57390435731316553,13588160462734303101,4301099429811409147,10063704933309776584,3079923906392020295,8460565235419043665,17056531964793634106],[4301099429811409147,990192925663920333,10063704933309776584,57390435731316553,17056531964793634106,3079923906392020295,8460565235419043665,13588160462734303101],[3410481056630111806,57390435731316553,990192925663920333,13588160462734303101,10063704933309776584,8460565235419043665,3079923906392020295,4301099429811409147,17056531964793634106],[3410481056630111806,13588160462734303101,57390435731316553,3079923906392020295,17056531964793634106,10063704933309776584,4301099429811409147,1097494158696050491,990192925663920333,8460565235419043665],[17056531964793634106,4631655038168471552,10063704933309776584,3410481056630111806,8460565235419043665,3079923906392020295,990192925663920333,1097494158696050491,13838011362258067867,13588160462734303101,4301099429811409147,57390435731316553],[11210964267417873667,4261249487994076490,14516211820212764316,17036604842139972912],[14516211820212764316,7252918969430566594,4261249487994076490,15877481873925059044,17036604842139972912,2124231869409556689,11210964267417873667],[7252918969430566594,17299978721726771610,15877481873925059044,4261249487994076490,17036604842139972912,11210964267417873667,14516211820212764316,2124231869409556689],[4261249487994076490,15877481873925059044,14516211820212764316,7252918969430566594,17299978721726771610,11210964267417873667,17036604842139972912,7029437790788498388,2124231869409556689],[15877481873925059044,7252918969430566594,4261249487994076490,17036604842139972912,17299978721726771610,1809704172129195322,7029437790788498388,2124231869409556689,11210964267417873667,14516211820212764316],[2124231869409556689,5534800796196967885,7029437790788498388,7252918969430566594,14516211820212764316,4261249487994076490,11210964267417873667,15877481873925059044,17299978721726771610,3608604157153838227,1809704172129195322,17036604842139972912],[17299978721726771610,4261249487994076490,1809704172129195322,7029437790788498388,14516211820212764316,11210964267417873667,15877481873925059044,17036604842139972912,7252918969430566594,2124231869409556689],[14516211820212764316,15877481873925059044,17299978721726771610,7252918969430566594,17036604842139972912,1809704172129195322,5534800796196967885,7029437790788498388,4261249487994076490,11210964267417873667,2124231869409556689,3608604157153838227],[4328376070224119511],[13340751444307201866,6852799892628327372,14228923746783465609,2871608309888343463,11196821089257149774,9135110142507605216,17740496701763775226,12276520439585231336,2025899804080897524,3750439930725791025,1662641269094032596,5888633415105234509,4328376070224119511,17735408893002232096,7201841978411396053,17397123104674848450,13795432594059356320,18031616785650843168,16609137733952262762,13027689870767713939,17952673493105230490,3214181946162459584,16671141883125519098,16306737306999003555,13446205009526451196],[3750439930725791025,12741076678082295759,7201841978411396053,7480253252288032958,13446205009526451196,3214181946162459584,13340751444307201866,13646498613066619660,14139765080256493579,6852799892628327372,16306737306999003555,4328376070224119511,8566844905246185636,7104261880154687267,12494428953087324640,5449860184735415958,1662641269094032596,17740496701763775226,17952673493105230490,16304636129468583592,2025899804080897524,9135110142507605216,2871608309888343463,18031616785650843168,2834866505092039323,13027689870767713939,13795432594059356320,12276520439585231336,11196821089257149774,17397123104674848450,16609137733952262762,17131529656312051452,14228923746783465609,16671141883125519098,5888633415105234509,8511737864852441844,17735408893002232096,1508440849951861669],[17131529656312051452,16306737306999003555,12276520439585231336,17735408893002232096,18095952297474762348,7201841978411396053,17740496701763775226,14139765080256493579,13795432594059356320,8511737864852441844,4328376070224119511,6852799892628327372,5449860184735415958,140396870212231820,14228923746783465609,13446205009526451196,11196821089257149774,9808637865669223270,1508440849951861669,13027689870767713939,1491840484128555837,5954536408321808728,17397123104674848450,9135110142507605216,2871608309888343463,18031616785650843168,2834866505092039323,3214181946162459584,3750439930725791025,1662641269094032596,13646498613066619660,16304636129468583592,8566844905246185636,7480253252288032958,5888633415105234509,2025899804080897524,12741076678082295759,16671141883125519098,12494428953087324640,17952673493105230490,16609137733952262762,7104261880154687267,13340751444307201866],[17036604842139972912],[13588160462734303101],[18081743490344004315],[]],"selection_redo_history":[]}}},"collapsed":[],"commit_hash":"3a591dac6a53454813c8df6ceed5b44b91d1e816","document_ptz":{"pan":[-768.2748744089959,-384.56142660725646],"tilt":0.0,"zoom":1.0,"flip":false},"document_mode":"DesignMode","render_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file diff --git a/demo-artwork/parametric-dunescape.graphite b/demo-artwork/parametric-dunescape.graphite index d35e50d64..98ac20110 100644 --- a/demo-artwork/parametric-dunescape.graphite +++ b/demo-artwork/parametric-dunescape.graphite @@ -1 +1 @@ -{"network_interface":{"network":{"exports":[{"Node":{"node_id":4445985685181725042,"output_index":0,"lambda":false}}],"nodes":[[17154757625902243313,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.23529412,"green":0.23529412,"blue":0.24313726,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1670.79570439},"exposed":false}},{"Value":{"tagged_value":{"F64":24.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[11731553664207576737,{"inputs":[{"Node":{"node_id":757876048866560520,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":1357621220363171879,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[1357621220363171879,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[757876048866560520,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3683309254695891012,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.68235296,"green":0.5372549,"blue":0.4627451,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1485.34393334},"exposed":false}},{"Value":{"tagged_value":{"F64":225.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[3916070947050514908,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11731553664207576737,{"inputs":[{"Node":{"node_id":3916070947050514908,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":10720574559271598132,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[10720574559271598132,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13644002059194136823,{"inputs":[{"Node":{"node_id":17437077810654043142,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":5.599999999999968},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[4037968351431607570,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8666667,"green":0.69803923,"blue":0.56078434,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1442.36628417},"exposed":false}},{"Value":{"tagged_value":{"F64":318.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[11874141024063691837,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11731553664207576737,{"inputs":[{"Node":{"node_id":11874141024063691837,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":7807438675023750219,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[7807438675023750219,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13323241418027154136,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.18039216,"green":0.19215687,"blue":0.21960784,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1733.30579952},"exposed":false}},{"Value":{"tagged_value":{"F64":77.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[11731553664207576737,{"inputs":[{"Node":{"node_id":16504069171520924548,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[3434804841107735149,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":3434804841107735149,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[16504069171520924548,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12110920487474373676,{"inputs":[{"Node":{"node_id":12639486733043466090,"output_index":0,"lambda":false}},{"Node":{"node_id":13323241418027154136,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10806978668166337270,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.21176471,"green":0.21568628,"blue":0.23137255,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1579.30304164},"exposed":false}},{"Value":{"tagged_value":{"F64":142.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[9133354469966676056,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11731553664207576737,{"inputs":[{"Node":{"node_id":3765311973789472189,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":9133354469966676056,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[3765311973789472189,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4390668436091073484,{"inputs":[{"Node":{"node_id":13676600738025998635,"output_index":0,"lambda":false}},{"Node":{"node_id":12122314434656187176,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5883606306991910210,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.4862745,"green":0.43137255,"blue":0.39607844,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1524.31304726},"exposed":false}},{"Value":{"tagged_value":{"F64":175.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[16598825029377599083,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11731553664207576737,{"inputs":[{"Node":{"node_id":16598825029377599083,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[6686718746443793247,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":6686718746443793247,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13132104524813958174,{"inputs":[{"Node":{"node_id":4390668436091073484,"output_index":0,"lambda":false}},{"Node":{"node_id":2163528024003768644,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12416569579970107543,{"inputs":[{"Node":{"node_id":13644002059194136823,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[9069881382900058607,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":4037968351431607570,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12639486733043466090,{"inputs":[{"Node":{"node_id":8804763001225416124,"output_index":0,"lambda":false}},{"Node":{"node_id":1801066723091712434,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7128559142392931896,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.15686275,"green":0.16862746,"blue":0.1882353,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1803.43646796},"exposed":false}},{"Value":{"tagged_value":{"F64":35.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[11731553664207576737,{"inputs":[{"Node":{"node_id":10094915787292727725,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[18443039976647938912,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[10094915787292727725,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":18443039976647938912,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17327221498641745184,{"inputs":[{"Node":{"node_id":12317719117993811200,"output_index":0,"lambda":false}},{"Node":{"node_id":3683309254695891012,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7711570794020903773,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8784314,"green":0.49019608,"blue":0.36862746,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1513.3360814},"exposed":false}},{"Value":{"tagged_value":{"F64":22.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[3025883099767376126,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11731553664207576737,{"inputs":[{"Node":{"node_id":3025883099767376126,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[1126802566044359983,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":1126802566044359983,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10686861494573327243,{"inputs":[{"Node":{"node_id":11386926595254122633,"output_index":0,"lambda":false}},{"Node":{"node_id":10806978668166337270,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17589660903986237301,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9529412,"green":0.6431373,"blue":0.42352942,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1614.38741737},"exposed":false}},{"Value":{"tagged_value":{"F64":17.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[3289411516263327806,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11731553664207576737,{"inputs":[{"Node":{"node_id":3289411516263327806,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":12029121808718862100,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[12029121808718862100,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2163528024003768644,{"inputs":[{"Node":{"node_id":12110920487474373676,"output_index":0,"lambda":false}},{"Node":{"node_id":7128559142392931896,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6523786079462141312,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.85882354,"green":0.57254905,"blue":0.43529412,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1491.01593158},"exposed":false}},{"Value":{"tagged_value":{"F64":173.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[7783268010546120518,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11731553664207576737,{"inputs":[{"Node":{"node_id":16009834030113172488,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":7783268010546120518,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[16009834030113172488,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11386926595254122633,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":6523786079462141312,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15002088321732485705,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1343.63187023},"exposed":false}},{"Value":{"tagged_value":{"F64":349.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[11731553664207576737,{"inputs":[{"Node":{"node_id":15212962088799153943,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":8591396027454826376,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[15212962088799153943,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8591396027454826376,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3934928477288442109,{"inputs":[{"Node":{"node_id":239716716021064150,"output_index":0,"lambda":false}},{"Node":{"node_id":17589660903986237301,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16611856724057842399,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.23529412,"green":0.23529412,"blue":0.24313726,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1554.40785539},"exposed":false}},{"Value":{"tagged_value":{"F64":50.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[17232801702996970986,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9065988052616974602,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11731553664207576737,{"inputs":[{"Node":{"node_id":17232801702996970986,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":9065988052616974602,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3726756269632080543,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5254902,"green":0.45882353,"blue":0.41568628,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1465.6573046},"exposed":false}},{"Value":{"tagged_value":{"F64":230.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[5294703684886212416,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7419291594083587754,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11731553664207576737,{"inputs":[{"Node":{"node_id":5294703684886212416,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":7419291594083587754,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1801066723091712434,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.21176471,"green":0.21568628,"blue":0.23137255,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1744.31393592},"exposed":false}},{"Value":{"tagged_value":{"F64":63.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[11731553664207576737,{"inputs":[{"Node":{"node_id":14514477720912258595,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":18341697272814101120,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[18341697272814101120,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14514477720912258595,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12317719117993811200,{"inputs":[{"Node":{"node_id":9069881382900058607,"output_index":0,"lambda":false}},{"Node":{"node_id":17239043462037837834,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8804763001225416124,{"inputs":[{"Node":{"node_id":3934928477288442109,"output_index":0,"lambda":false}},{"Node":{"node_id":17154757625902243313,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17239043462037837834,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8039216,"green":0.6627451,"blue":0.52156866,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":1447.11050605},"exposed":false}},{"Value":{"tagged_value":{"F64":309.0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0,"lambda":false}}],"nodes":[[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0,"lambda":false}},{"Node":{"node_id":14577956936089455769,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.4855225354961647,0.31002285853371414]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15937218612227302315,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7260397085903590160,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7828034197076821310,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":3}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false}],[11731553664207576737,{"inputs":[{"Node":{"node_id":7260397085903590160,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Network":{"import_type":{"Generic":"T"},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false}],[16943732999059587742,{"inputs":[{"Node":{"node_id":15937218612227302315,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2128810469968776913,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":12416569579970107543,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[239716716021064150,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7711570794020903773,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15385259560644295534,{"inputs":[{"Node":{"node_id":17327221498641745184,"output_index":0,"lambda":false}},{"Node":{"node_id":3726756269632080543,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4445985685181725042,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":13132104524813958174,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[2000.0,1000.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"red":0.99607843,"green":0.8745098,"blue":0.7019608,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Network":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12122314434656187176,{"inputs":[{"Node":{"node_id":10686861494573327243,"output_index":0,"lambda":false}},{"Node":{"node_id":16611856724057842399,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13676600738025998635,{"inputs":[{"Node":{"node_id":2128810469968776913,"output_index":0,"lambda":false}},{"Node":{"node_id":6097807941755042226,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6097807941755042226,{"inputs":[{"Node":{"node_id":15385259560644295534,"output_index":0,"lambda":false}},{"Node":{"node_id":5883606306991910210,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17437077810654043142,{"inputs":[{"Node":{"node_id":15002088321732485705,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":40.0},"exposed":false}},{"Value":{"tagged_value":{"U32":40},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[1801066723091712434,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[14514477720912258595,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":0.0,"is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":2.0,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","unit":" px","min":0.0,"blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","blank_assist":true,"is_integer":false,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[18341697272814101120,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"blank_assist":true,"mode":"Increment","min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","blank_assist":true,"unit":" px","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"unit":" px","mode":"Increment","min":0.0,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[17.0,-79.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1008.0,502.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[17239043462037837834,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[7260397085903590160,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"unit":" px","blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"blank_assist":true,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[15937218612227302315,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","unit":" px","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"blank_assist":true,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"unit":" px","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[3726756269632080543,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[5294703684886212416,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"unit":" px","min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[7419291594083587754,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"min":2.0,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"unit":" px","mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[3934928477288442109,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 1","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12416569579970107543,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2128810469968776913,{"persistent_metadata":{"reference":"Merge","display_name":"Far Mountains","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":16}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8804763001225416124,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 4","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13644002059194136823,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13132104524813958174,{"persistent_metadata":{"reference":"Merge","display_name":"Foreground","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-4,3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13676600738025998635,{"persistent_metadata":{"reference":"Merge","display_name":"Background","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":10}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10686861494573327243,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 2","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6523786079462141312,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[7783268010546120518,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"is_integer":false,"blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"blank_assist":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16009834030113172488,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","blank_assist":true,"min":0.0,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"blank_assist":true,"mode":"Increment","is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"blank_assist":true,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"is_integer":false,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[3683309254695891012,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3916070947050514908,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","unit":" px","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[10720574559271598132,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"min":2.0,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"unit":" px","mode":"Increment","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","blank_assist":true,"is_integer":false,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[12317719117993811200,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 4","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[239716716021064150,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 2","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9069881382900058607,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 5","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13323241418027154136,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[16504069171520924548,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"mode":"Increment","min":0.0,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","blank_assist":true,"is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3434804841107735149,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"unit":" px","min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":2.0,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"blank_assist":true,"is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[26.0,-82.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1017.0,499.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[16611856724057842399,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[17232801702996970986,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","is_integer":false,"min":0.0,"blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"blank_assist":true,"min":0.0,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[9065988052616974602,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"min":2.0,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"is_integer":false,"unit":" px","mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"unit":" px","mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[11386926595254122633,{"persistent_metadata":{"reference":"Merge","display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17327221498641745184,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 3","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6097807941755042226,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 1","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-14,40]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15385259560644295534,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 2","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15002088321732485705,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[8591396027454826376,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"mode":"Increment","blank_assist":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","unit":" px","is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[15212962088799153943,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"blank_assist":true,"unit":" px","mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"unit":" px","min":0.0,"is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[2163528024003768644,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 1","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-14,6]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17437077810654043142,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","min":0.0,"blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":2.0,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"unit":" px","min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7711570794020903773,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[1126802566044359983,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"is_integer":false,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","blank_assist":true,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[3025883099767376126,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","is_integer":false,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"blank_assist":true,"mode":"Increment","min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"min":0.0,"is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[12122314434656187176,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 1","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-14,27]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4445985685181725042,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":true,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"H","x":"W","is_integer":true},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[3,0]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12639486733043466090,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 3","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10806978668166337270,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[9133354469966676056,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","unit":" px","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":2.0,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"mode":"Increment","unit":" px","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"mode":"Increment","min":0.0,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[3765311973789472189,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","blank_assist":true,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"blank_assist":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","unit":" px","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","min":0.0,"blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[17589660903986237301,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[12029121808718862100,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","unit":" px","min":0.0,"blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"unit":" px","is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"blank_assist":true,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3289411516263327806,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"unit":" px","blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"blank_assist":true,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[5883606306991910210,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[6686718746443793247,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","is_integer":false,"blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"mode":"Increment","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16598825029377599083,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":false,"min":0.0,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[7128559142392931896,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[18443039976647938912,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"unit":" px","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","min":0.0,"blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10094915787292727725,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","blank_assist":true,"min":0.0,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","blank_assist":true,"is_integer":false,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"min":0.0,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.33333333333328596,-0.3333333333333428],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,580.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[10094915787292727725]],"selection_redo_history":[]}}}}],[4390668436091073484,{"persistent_metadata":{"reference":"Merge","display_name":"Midground in Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":18}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4037968351431607570,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[7807438675023750219,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"blank_assist":true,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"blank_assist":true,"unit":" px","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","blank_assist":true,"is_integer":false,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[11874141024063691837,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","mode":"Increment","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"mode":"Increment","min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","is_integer":false,"blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[12110920487474373676,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 2","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17154757625902243313,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[757876048866560520,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","min":0.0,"blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"blank_assist":true,"unit":" px","mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"blank_assist":true,"is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[1357621220363171879,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":2.0,"blank_assist":true,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"unit":" px","mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"unit":" px","min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[393.8840949272409,-703.048313613491],"tilt":0.0,"zoom":0.7533811475409836,"flip":false},"node_graph_to_viewport":[0.7533811475409836,0.0,0.0,0.7533811475409836,1287.0,51.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[17327221498641745184],[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[6097807941755042226,5883606306991910210,2128810469968776913,12416569579970107543,13644002059194136823,17437077810654043142,15002088321732485705],[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[2128810469968776913],[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[15385259560644295534],[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[2128810469968776913,12416569579970107543,13644002059194136823,17437077810654043142,15002088321732485705],[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[13676600738025998635],[2128810469968776913],[11435147660766496741],[15726496377243608372],[4390668436091073484],[11386926595254122633],[11435147660766496741],[15726496377243608372],[15726496377243608372,11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[11435147660766496741],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[11435147660766496741,15726496377243608372,4390668436091073484,11386926595254122633,13676600738025998635,2128810469968776913],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[11435147660766496741],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[4390668436091073484,11386926595254122633,13676600738025998635,2128810469968776913],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[11435147660766496741,2163528024003768644,7128559142392931896,12110920487474373676,13323241418027154136,12639486733043466090,1801066723091712434,8804763001225416124,17154757625902243313,4390668436091073484,12122314434656187176,16611856724057842399,10686861494573327243,10806978668166337270,11386926595254122633,6523786079462141312,13676600738025998635,6097807941755042226,5883606306991910210,15385259560644295534,3726756269632080543,17327221498641745184,3683309254695891012,12317719117993811200,17239043462037837834,9069881382900058607,4037968351431607570,2128810469968776913,12416569579970107543,13644002059194136823,17437077810654043142,15002088321732485705],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[4390668436091073484,11386926595254122633,13676600738025998635,2128810469968776913],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[15726496377243608372],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[4390668436091073484,12122314434656187176,16611856724057842399,10686861494573327243,10806978668166337270,11386926595254122633,6523786079462141312,13676600738025998635,6097807941755042226,5883606306991910210,15385259560644295534,3726756269632080543,17327221498641745184,3683309254695891012,12317719117993811200,17239043462037837834,9069881382900058607,4037968351431607570,2128810469968776913,12416569579970107543,13644002059194136823,17437077810654043142,15002088321732485705],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[13132104524813958174],[11435147660766496741],[2163528024003768644],[12110920487474373676],[12639486733043466090],[8804763001225416124],[11435147660766496741],[15726496377243608372],[3934928477288442109],[239716716021064150],[15726496377243608372],[15726496377243608372,11435147660766496741],[239716716021064150],[239716716021064150,7711570794020903773],[239716716021064150,3934928477288442109],[4390668436091073484],[12122314434656187176],[10686861494573327243],[11386926595254122633],[4390668436091073484],[13676600738025998635,2128810469968776913],[13676600738025998635,6097807941755042226,5883606306991910210,15385259560644295534,3726756269632080543,17327221498641745184,3683309254695891012,12317719117993811200,17239043462037837834,9069881382900058607,4037968351431607570,2128810469968776913,12416569579970107543,13644002059194136823,17437077810654043142,15002088321732485705],[11386926595254122633],[13676600738025998635],[6097807941755042226],[15385259560644295534],[17327221498641745184],[12317719117993811200],[9069881382900058607],[2128810469968776913],[13132104524813958174],[2128810469968776913],[13132104524813958174],[2163528024003768644],[239716716021064150],[3934928477288442109],[8804763001225416124],[12639486733043466090],[12110920487474373676],[2163528024003768644],[4390668436091073484],[13676600738025998635],[2128810469968776913],[2163528024003768644],[9069881382900058607],[12317719117993811200,9069881382900058607],[17327221498641745184,12317719117993811200,9069881382900058607],[15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[12317719117993811200,15385259560644295534,9069881382900058607,17327221498641745184,6097807941755042226],[17327221498641745184,12317719117993811200,11386926595254122633,6097807941755042226,9069881382900058607,15385259560644295534],[9069881382900058607,6097807941755042226,10686861494573327243,15385259560644295534,11386926595254122633,12317719117993811200,17327221498641745184],[10686861494573327243,15385259560644295534,12122314434656187176,11386926595254122633,9069881382900058607,6097807941755042226,12317719117993811200,17327221498641745184],[12122314434656187176,6097807941755042226,11386926595254122633,12317719117993811200,17327221498641745184,10686861494573327243,239716716021064150,15385259560644295534,9069881382900058607],[9069881382900058607,239716716021064150,6097807941755042226,12122314434656187176,12317719117993811200,10686861494573327243,15385259560644295534,17327221498641745184,11386926595254122633,3934928477288442109],[9069881382900058607,13676600738025998635,3934928477288442109,12122314434656187176,6097807941755042226,15385259560644295534,4390668436091073484,10686861494573327243,17327221498641745184,11386926595254122633,12317719117993811200,239716716021064150],[6097807941755042226,3934928477288442109,4390668436091073484,9069881382900058607,13676600738025998635,11386926595254122633,15385259560644295534,12122314434656187176,8804763001225416124,10686861494573327243,239716716021064150,12317719117993811200,17327221498641745184],[9069881382900058607,12122314434656187176,13676600738025998635,10686861494573327243,12317719117993811200,6097807941755042226,15385259560644295534,239716716021064150,17327221498641745184,11386926595254122633,3934928477288442109,8804763001225416124,12639486733043466090,4390668436091073484],[10686861494573327243,15385259560644295534,17327221498641745184,239716716021064150,8804763001225416124,6097807941755042226,11386926595254122633,12317719117993811200,12122314434656187176,9069881382900058607,3934928477288442109,12639486733043466090],[10686861494573327243,17327221498641745184,12317719117993811200,11386926595254122633,12639486733043466090,12122314434656187176,9069881382900058607,6097807941755042226,12110920487474373676,3934928477288442109,15385259560644295534,8804763001225416124,239716716021064150],[12110920487474373676,10686861494573327243,11386926595254122633,12317719117993811200,8804763001225416124,3934928477288442109,9069881382900058607,15385259560644295534,2163528024003768644,17327221498641745184,239716716021064150,12639486733043466090,12122314434656187176,6097807941755042226],[2128810469968776913],[17327221498641745184],[]],"selection_redo_history":[]}}},"collapsed":[4390668436091073485,13676600738025998636,13132104524813958175],"name":"parametric-dunescape.graphite","commit_hash":"c4e16e1aac642bbcde72f41f86deed79e6e38006","document_ptz":{"pan":[-999.515765085624,-500.18277881031514],"tilt":0.0,"zoom":0.940975,"flip":false},"document_mode":"DesignMode","view_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":false,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file +{"network_interface":{"network":{"exports":[{"Node":{"node_id":4445985685181725042,"output_index":0}}],"nodes":[[17154757625902243313,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.23529412,"green":0.23529412,"blue":0.24313726,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1670.79570439},"exposed":false}},{"Value":{"tagged_value":{"F64":24.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":757876048866560520,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":1357621220363171879,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1357621220363171879,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[757876048866560520,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3683309254695891012,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.68235296,"green":0.5372549,"blue":0.4627451,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1485.34393334},"exposed":false}},{"Value":{"tagged_value":{"F64":225.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[3916070947050514908,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":3916070947050514908,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":10720574559271598132,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10720574559271598132,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13644002059194136823,{"inputs":[{"Node":{"node_id":17437077810654043142,"output_index":0}},{"Value":{"tagged_value":{"F64":5.599999999999968},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4037968351431607570,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8666667,"green":0.69803923,"blue":0.56078434,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1442.36628417},"exposed":false}},{"Value":{"tagged_value":{"F64":318.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[11874141024063691837,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":11874141024063691837,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":7807438675023750219,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7807438675023750219,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13323241418027154136,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.18039216,"green":0.19215687,"blue":0.21960784,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1733.30579952},"exposed":false}},{"Value":{"tagged_value":{"F64":77.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":16504069171520924548,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3434804841107735149,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":3434804841107735149,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16504069171520924548,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12110920487474373676,{"inputs":[{"Node":{"node_id":12639486733043466090,"output_index":0}},{"Node":{"node_id":13323241418027154136,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4390668436091073484,{"inputs":[{"Node":{"node_id":13676600738025998635,"output_index":0}},{"Node":{"node_id":12122314434656187176,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10806978668166337270,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.21176471,"green":0.21568628,"blue":0.23137255,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1579.30304164},"exposed":false}},{"Value":{"tagged_value":{"F64":142.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[9133354469966676056,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":3765311973789472189,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":9133354469966676056,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3765311973789472189,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5883606306991910210,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.4862745,"green":0.43137255,"blue":0.39607844,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1524.31304726},"exposed":false}},{"Value":{"tagged_value":{"F64":175.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[16598825029377599083,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":16598825029377599083,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6686718746443793247,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":6686718746443793247,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13132104524813958174,{"inputs":[{"Node":{"node_id":4390668436091073484,"output_index":0}},{"Node":{"node_id":2163528024003768644,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12416569579970107543,{"inputs":[{"Node":{"node_id":13644002059194136823,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9069881382900058607,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":4037968351431607570,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12639486733043466090,{"inputs":[{"Node":{"node_id":8804763001225416124,"output_index":0}},{"Node":{"node_id":1801066723091712434,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7128559142392931896,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.15686275,"green":0.16862746,"blue":0.1882353,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1803.43646796},"exposed":false}},{"Value":{"tagged_value":{"F64":35.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":10094915787292727725,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18443039976647938912,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10094915787292727725,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":18443039976647938912,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17327221498641745184,{"inputs":[{"Node":{"node_id":12317719117993811200,"output_index":0}},{"Node":{"node_id":3683309254695891012,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7711570794020903773,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8784314,"green":0.49019608,"blue":0.36862746,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1513.3360814},"exposed":false}},{"Value":{"tagged_value":{"F64":22.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[3025883099767376126,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":3025883099767376126,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1126802566044359983,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":1126802566044359983,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10686861494573327243,{"inputs":[{"Node":{"node_id":11386926595254122633,"output_index":0}},{"Node":{"node_id":10806978668166337270,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17589660903986237301,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9529412,"green":0.6431373,"blue":0.42352942,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1614.38741737},"exposed":false}},{"Value":{"tagged_value":{"F64":17.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[3289411516263327806,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":3289411516263327806,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":12029121808718862100,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12029121808718862100,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2163528024003768644,{"inputs":[{"Node":{"node_id":12110920487474373676,"output_index":0}},{"Node":{"node_id":7128559142392931896,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6523786079462141312,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.85882354,"green":0.57254905,"blue":0.43529412,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1491.01593158},"exposed":false}},{"Value":{"tagged_value":{"F64":173.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[7783268010546120518,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":16009834030113172488,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":7783268010546120518,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16009834030113172488,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11386926595254122633,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":6523786079462141312,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15002088321732485705,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1343.63187023},"exposed":false}},{"Value":{"tagged_value":{"F64":349.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":15212962088799153943,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":8591396027454826376,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15212962088799153943,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8591396027454826376,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3934928477288442109,{"inputs":[{"Node":{"node_id":239716716021064150,"output_index":0}},{"Node":{"node_id":17589660903986237301,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16611856724057842399,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.23529412,"green":0.23529412,"blue":0.24313726,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1554.40785539},"exposed":false}},{"Value":{"tagged_value":{"F64":50.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[17232801702996970986,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9065988052616974602,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":17232801702996970986,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":9065988052616974602,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3726756269632080543,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5254902,"green":0.45882353,"blue":0.41568628,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1465.6573046},"exposed":false}},{"Value":{"tagged_value":{"F64":230.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[5294703684886212416,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7419291594083587754,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":5294703684886212416,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":7419291594083587754,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1801066723091712434,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.21176471,"green":0.21568628,"blue":0.23137255,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1744.31393592},"exposed":false}},{"Value":{"tagged_value":{"F64":63.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":14514477720912258595,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":18341697272814101120,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18341697272814101120,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14514477720912258595,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12317719117993811200,{"inputs":[{"Node":{"node_id":9069881382900058607,"output_index":0}},{"Node":{"node_id":17239043462037837834,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8804763001225416124,{"inputs":[{"Node":{"node_id":3934928477288442109,"output_index":0}},{"Node":{"node_id":17154757625902243313,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17239043462037837834,{"inputs":[{"Value":{"tagged_value":"None","exposed":true}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8039216,"green":0.6627451,"blue":0.52156866,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":1447.11050605},"exposed":false}},{"Value":{"tagged_value":{"F64":309.0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2288754089236120499,"output_index":0}}],"nodes":[[2288754089236120499,{"inputs":[{"Node":{"node_id":14158287945315818946,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14158287945315818946,{"inputs":[{"Node":{"node_id":16943732999059587742,"output_index":0}},{"Node":{"node_id":14577956936089455769,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.6181095265062186,3.496297826945966]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7260397085903590160,{"inputs":[{"Node":{"node_id":1791308547102433540,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":800.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11731553664207576737,{"inputs":[{"Node":{"node_id":7260397085903590160,"output_index":0}},{"Value":{"tagged_value":{"F64":48.900000000000006},"exposed":false}},{"Node":{"node_id":7828034197076821310,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15937218612227302315,{"inputs":[{"Node":{"node_id":11731553664207576737,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":172.9},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7828034197076821310,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":3}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::ToU32Node"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[640915213983348287,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":4000.0},"exposed":false}},{"Value":{"tagged_value":{"F64":500.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::RectangleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1791308547102433540,{"inputs":[{"Node":{"node_id":640915213983348287,"output_index":0}},{"Import":{"import_type":{"Generic":"T"},"import_index":1}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.827451,"blue":0.65882355,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14577956936089455769,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1050.10498991},"exposed":false}},{"Import":{"import_type":{"Generic":"T"},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"math_nodes::Vec2ValueNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16943732999059587742,{"inputs":[{"Node":{"node_id":15937218612227302315,"output_index":0}},{"Value":{"tagged_value":{"F64":1.399999999999956},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::JitterPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2128810469968776913,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":12416569579970107543,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[239716716021064150,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7711570794020903773,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15385259560644295534,{"inputs":[{"Node":{"node_id":17327221498641745184,"output_index":0}},{"Node":{"node_id":3726756269632080543,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4445985685181725042,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":13132104524813958174,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[2000.0,1000.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.99607843,"green":0.8745098,"blue":0.7019608,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Import":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12122314434656187176,{"inputs":[{"Node":{"node_id":10686861494573327243,"output_index":0}},{"Node":{"node_id":16611856724057842399,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13676600738025998635,{"inputs":[{"Node":{"node_id":2128810469968776913,"output_index":0}},{"Node":{"node_id":6097807941755042226,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6097807941755042226,{"inputs":[{"Node":{"node_id":15385259560644295534,"output_index":0}},{"Node":{"node_id":5883606306991910210,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17437077810654043142,{"inputs":[{"Node":{"node_id":15002088321732485705,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":40.0},"exposed":false}},{"Value":{"tagged_value":{"U32":40},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[8804763001225416124,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 4","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12416569579970107543,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13132104524813958174,{"persistent_metadata":{"reference":"Merge","display_name":"Foreground","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-4,3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6097807941755042226,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 1","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-14,40]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17154757625902243313,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[757876048866560520,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":2.0,"is_integer":true,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"blank_assist":true,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[1357621220363171879,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"unit":" px","min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"mode":"Increment","min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"is_integer":false,"unit":" px","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[12122314434656187176,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 1","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-14,27]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2128810469968776913,{"persistent_metadata":{"reference":"Merge","display_name":"Far Mountains","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":16}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16611856724057842399,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[17232801702996970986,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"blank_assist":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[9065988052616974602,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[13644002059194136823,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15385259560644295534,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 2","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15002088321732485705,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[8591396027454826376,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"mode":"Increment","min":2.0,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","blank_assist":true,"is_integer":false,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[15212962088799153943,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","blank_assist":true,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"mode":"Increment","min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","unit":" px","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"blank_assist":true,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[17239043462037837834,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[15937218612227302315,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"unit":" px","blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"is_integer":false,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","unit":" px","blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7260397085903590160,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","min":0.0,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"unit":" px","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","blank_assist":true,"min":0.0,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[3726756269632080543,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7419291594083587754,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"mode":"Increment","unit":" px","min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"blank_assist":true,"unit":" px","mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5294703684886212416,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"blank_assist":true,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[3683309254695891012,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[3916070947050514908,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"is_integer":false,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","min":0.0,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"blank_assist":true,"unit":" px","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[10720574559271598132,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"blank_assist":true,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"blank_assist":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"min":0.0,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"is_integer":false,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[12317719117993811200,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 4","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12110920487474373676,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 2","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7711570794020903773,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[1126802566044359983,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"is_integer":false,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"blank_assist":true,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","blank_assist":true,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[3025883099767376126,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"blank_assist":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"blank_assist":true,"unit":" px","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","blank_assist":true,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[4037968351431607570,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[7807438675023750219,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"unit":" px","min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":2.0,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","unit":" px","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"mode":"Increment","min":0.0,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11874141024063691837,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"min":2.0,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","min":0.0,"is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"unit":" px","min":0.0,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[4390668436091073484,{"persistent_metadata":{"reference":"Merge","display_name":"Midground in Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":18}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17327221498641745184,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 3","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5883606306991910210,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[16598825029377599083,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","unit":" px","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"blank_assist":true,"mode":"Increment","min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","is_integer":false,"blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"unit":" px","is_integer":false,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6686718746443793247,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"is_integer":false,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":false,"unit":" px","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[6523786079462141312,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16009834030113172488,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"blank_assist":true,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"is_integer":false,"unit":" px","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"blank_assist":true,"is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[7783268010546120518,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"mode":"Increment","unit":" px","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"mode":"Increment","min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","min":0.0,"blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","is_integer":false,"min":0.0,"blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[17589660903986237301,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3289411516263327806,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"unit":" px","mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"is_integer":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12029121808718862100,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"unit":" px","min":0.0,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"blank_assist":true,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","blank_assist":true,"is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[13323241418027154136,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[16504069171520924548,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","blank_assist":true,"min":0.0,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"blank_assist":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"blank_assist":true,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[3434804841107735149,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","mode":"Increment","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","unit":" px","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"blank_assist":true,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[26.0,-82.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1017.0,499.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[4445985685181725042,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"x":"X","y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"unit":" px","x":"W","y":"H"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[3,0]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[239716716021064150,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 2","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9069881382900058607,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 5","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13676600738025998635,{"persistent_metadata":{"reference":"Merge","display_name":"Background","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":10}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12639486733043466090,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 3","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10686861494573327243,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 2","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3934928477288442109,{"persistent_metadata":{"reference":"Merge","display_name":"Dune 1","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1801066723091712434,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[14514477720912258595,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","blank_assist":true,"min":0.0,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":2.0,"blank_assist":true,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","is_integer":false,"blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"unit":" px","mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18341697272814101120,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"is_integer":false,"unit":" px","min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"mode":"Increment","blank_assist":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[17.0,-79.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1008.0,502.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[10806978668166337270,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[9133354469966676056,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","min":0.0,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"blank_assist":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"blank_assist":true,"is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"unit":" px","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[3765311973789472189,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","is_integer":false,"blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"unit":" px","blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,581.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[7128559142392931896,{"persistent_metadata":{"reference":null,"display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2288754089236120499,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[22,-3]}}},"network_metadata":null}}],[640915213983348287,{"persistent_metadata":{"reference":"Rectangle","display_name":"Rectangle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Width","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Height","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Individual Corner Radii","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Corner Radius","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clamped","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-27,-3]}}},"network_metadata":null}}],[10094915787292727725,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"unit":" px","is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","unit":" px","min":0.0,"blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18443039976647938912,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"unit":" px","is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"mode":"Increment","blank_assist":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"unit":" px","mode":"Increment","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"blank_assist":true,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[1,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11731553664207576737,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-6,-3]}}},"network_metadata":null}}],[14577956936089455769,{"persistent_metadata":{"reference":"Vec2 Value","display_name":"Vec2 Value","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"X","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Y","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-1]}}},"network_metadata":null}}],[1791308547102433540,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-20,-3]}}},"network_metadata":null}}],[14158287945315818946,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[15,-3]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16943732999059587742,{"persistent_metadata":{"reference":"Jitter Points","display_name":"Jitter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Amount","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Seed","input_description":""}}],"output_names":["Future>"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[8,-3]}}},"network_metadata":null}}],[7828034197076821310,{"persistent_metadata":{"reference":"To u32","display_name":"To u32","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}}],"output_names":["Future"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-13,1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.33333333333328596,-0.3333333333333428],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,991.0,580.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[10094915787292727725]],"selection_redo_history":[]}}}}],[11386926595254122633,{"persistent_metadata":{"reference":"Merge","display_name":"Dune","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2163528024003768644,{"persistent_metadata":{"reference":"Merge","display_name":"Dune in Shadow 1","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":["Out"],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-14,6]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17437077810654043142,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"unit":" px","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"mode":"Increment","unit":" px","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[393.8840949272409,-703.048313613491],"tilt":0.0,"zoom":0.7533811475409836,"flip":false},"node_graph_to_viewport":[0.7533811475409836,0.0,0.0,0.7533811475409836,1287.0,51.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[17327221498641745184],[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[6097807941755042226,5883606306991910210,2128810469968776913,12416569579970107543,13644002059194136823,17437077810654043142,15002088321732485705],[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[2128810469968776913],[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[15385259560644295534],[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[2128810469968776913,12416569579970107543,13644002059194136823,17437077810654043142,15002088321732485705],[6097807941755042226,15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[13676600738025998635],[2128810469968776913],[11435147660766496741],[15726496377243608372],[4390668436091073484],[11386926595254122633],[11435147660766496741],[15726496377243608372],[15726496377243608372,11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[11435147660766496741],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[11435147660766496741,15726496377243608372,4390668436091073484,11386926595254122633,13676600738025998635,2128810469968776913],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[11435147660766496741],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[4390668436091073484,11386926595254122633,13676600738025998635,2128810469968776913],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[11435147660766496741,2163528024003768644,7128559142392931896,12110920487474373676,13323241418027154136,12639486733043466090,1801066723091712434,8804763001225416124,17154757625902243313,4390668436091073484,12122314434656187176,16611856724057842399,10686861494573327243,10806978668166337270,11386926595254122633,6523786079462141312,13676600738025998635,6097807941755042226,5883606306991910210,15385259560644295534,3726756269632080543,17327221498641745184,3683309254695891012,12317719117993811200,17239043462037837834,9069881382900058607,4037968351431607570,2128810469968776913,12416569579970107543,13644002059194136823,17437077810654043142,15002088321732485705],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[4390668436091073484,11386926595254122633,13676600738025998635,2128810469968776913],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[15726496377243608372],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[4390668436091073484,12122314434656187176,16611856724057842399,10686861494573327243,10806978668166337270,11386926595254122633,6523786079462141312,13676600738025998635,6097807941755042226,5883606306991910210,15385259560644295534,3726756269632080543,17327221498641745184,3683309254695891012,12317719117993811200,17239043462037837834,9069881382900058607,4037968351431607570,2128810469968776913,12416569579970107543,13644002059194136823,17437077810654043142,15002088321732485705],[11435147660766496741,2163528024003768644,12110920487474373676,12639486733043466090,8804763001225416124,15726496377243608372],[13132104524813958174],[11435147660766496741],[2163528024003768644],[12110920487474373676],[12639486733043466090],[8804763001225416124],[11435147660766496741],[15726496377243608372],[3934928477288442109],[239716716021064150],[15726496377243608372],[15726496377243608372,11435147660766496741],[239716716021064150],[239716716021064150,7711570794020903773],[239716716021064150,3934928477288442109],[4390668436091073484],[12122314434656187176],[10686861494573327243],[11386926595254122633],[4390668436091073484],[13676600738025998635,2128810469968776913],[13676600738025998635,6097807941755042226,5883606306991910210,15385259560644295534,3726756269632080543,17327221498641745184,3683309254695891012,12317719117993811200,17239043462037837834,9069881382900058607,4037968351431607570,2128810469968776913,12416569579970107543,13644002059194136823,17437077810654043142,15002088321732485705],[11386926595254122633],[13676600738025998635],[6097807941755042226],[15385259560644295534],[17327221498641745184],[12317719117993811200],[9069881382900058607],[2128810469968776913],[13132104524813958174],[2128810469968776913],[13132104524813958174],[2163528024003768644],[239716716021064150],[3934928477288442109],[8804763001225416124],[12639486733043466090],[12110920487474373676],[2163528024003768644],[4390668436091073484],[13676600738025998635],[2128810469968776913],[2163528024003768644],[9069881382900058607],[12317719117993811200,9069881382900058607],[17327221498641745184,12317719117993811200,9069881382900058607],[15385259560644295534,17327221498641745184,12317719117993811200,9069881382900058607],[12317719117993811200,15385259560644295534,9069881382900058607,17327221498641745184,6097807941755042226],[17327221498641745184,12317719117993811200,11386926595254122633,6097807941755042226,9069881382900058607,15385259560644295534],[9069881382900058607,6097807941755042226,10686861494573327243,15385259560644295534,11386926595254122633,12317719117993811200,17327221498641745184],[10686861494573327243,15385259560644295534,12122314434656187176,11386926595254122633,9069881382900058607,6097807941755042226,12317719117993811200,17327221498641745184],[12122314434656187176,6097807941755042226,11386926595254122633,12317719117993811200,17327221498641745184,10686861494573327243,239716716021064150,15385259560644295534,9069881382900058607],[9069881382900058607,239716716021064150,6097807941755042226,12122314434656187176,12317719117993811200,10686861494573327243,15385259560644295534,17327221498641745184,11386926595254122633,3934928477288442109],[9069881382900058607,13676600738025998635,3934928477288442109,12122314434656187176,6097807941755042226,15385259560644295534,4390668436091073484,10686861494573327243,17327221498641745184,11386926595254122633,12317719117993811200,239716716021064150],[6097807941755042226,3934928477288442109,4390668436091073484,9069881382900058607,13676600738025998635,11386926595254122633,15385259560644295534,12122314434656187176,8804763001225416124,10686861494573327243,239716716021064150,12317719117993811200,17327221498641745184],[9069881382900058607,12122314434656187176,13676600738025998635,10686861494573327243,12317719117993811200,6097807941755042226,15385259560644295534,239716716021064150,17327221498641745184,11386926595254122633,3934928477288442109,8804763001225416124,12639486733043466090,4390668436091073484],[10686861494573327243,15385259560644295534,17327221498641745184,239716716021064150,8804763001225416124,6097807941755042226,11386926595254122633,12317719117993811200,12122314434656187176,9069881382900058607,3934928477288442109,12639486733043466090],[10686861494573327243,17327221498641745184,12317719117993811200,11386926595254122633,12639486733043466090,12122314434656187176,9069881382900058607,6097807941755042226,12110920487474373676,3934928477288442109,15385259560644295534,8804763001225416124,239716716021064150],[12110920487474373676,10686861494573327243,11386926595254122633,12317719117993811200,8804763001225416124,3934928477288442109,9069881382900058607,15385259560644295534,2163528024003768644,17327221498641745184,239716716021064150,12639486733043466090,12122314434656187176,6097807941755042226],[2128810469968776913],[17327221498641745184],[]],"selection_redo_history":[]}}},"collapsed":[4390668436091073485,13676600738025998636,13132104524813958175],"commit_hash":"c4e16e1aac642bbcde72f41f86deed79e6e38006","document_ptz":{"pan":[-999.515765085624,-500.18277881031514],"tilt":0.0,"zoom":0.940975,"flip":false},"document_mode":"DesignMode","render_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":false,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file diff --git a/demo-artwork/procedural-string-lights.graphite b/demo-artwork/procedural-string-lights.graphite index 6ac47b5a9..529074f8f 100644 --- a/demo-artwork/procedural-string-lights.graphite +++ b/demo-artwork/procedural-string-lights.graphite @@ -1 +1 @@ -{"network_interface":{"network":{"exports":[{"Node":{"node_id":14972365039974885000,"output_index":0,"lambda":false}}],"nodes":[[183562335973647870,{"inputs":[{"Node":{"node_id":4248875763694880300,"output_index":0,"lambda":false}},{"Node":{"node_id":2181148486404191200,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[665049002420596400,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"remove":[],"delta":[[7,[229.33333333333331,152.4444444444444]],[19,[90.66666666666664,-129.33333333333334]],[12,[199.5555555555555,10.666666666666629]],[14,[183.11111111111103,-19.111111111111143]],[17,[123.99999999999994,-84.00000000000003]],[26,[22.66666666666663,-81.33333333333337]],[10,[216.4444444444444,72.4444444444444]],[13,[153.77777777777777,-1.3333333333333712]],[1,[-103.55555555555554,126.66666666666664]],[24,[57.77777777777777,-129.33333333333334]],[21,[76.0,-202.22222222222223]],[29,[-32.888888888888914,-14.666666666666686]],[32,[9.333333333333314,38.66666666666663]],[20,[128.4444444444444,-142.22222222222223]],[22,[71.11111111111109,-201.7777777777778]],[30,[-9.333333333333371,0.0]],[9,[156.4444444444444,97.33333333333331]],[6,[123.99999999999994,148.4444444444444]],[5,[66.22222222222223,152.88888888888886]],[8,[252.4444444444444,124.88888888888886]],[34,[-5.333333333333371,99.11111111111109]],[2,[-67.55555555555554,158.22222222222217]],[16,[159.5555555555555,-75.55555555555557]],[31,[-53.33333333333337,13.777777777777771]],[23,[19.555555555555543,-139.55555555555557]],[28,[39.111111111111086,-58.22222222222226]],[27,[-11.111111111111144,-72.00000000000003]],[3,[45.77777777777777,145.33333333333331]],[25,[0.8888888888888573,-94.66666666666669]],[15,[111.11111111111114,-60.888888888888914]],[4,[18.66666666666663,157.77777777777771]],[33,[-78.22222222222223,75.55555555555554]],[11,[136.88888888888886,39.111111111111086]],[18,[145.77777777777777,-97.7777777777778]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"remove":[],"start_point":[[16,16],[12,12],[13,13],[27,27],[19,19],[7,7],[22,22],[30,30],[15,15],[26,26],[33,33],[28,28],[17,17],[9,9],[29,29],[21,21],[8,8],[11,11],[5,5],[2,2],[23,23],[31,31],[4,4],[34,34],[32,32],[18,18],[6,6],[25,25],[24,24],[20,20],[10,10],[14,14],[1,1],[3,3]],"end_point":[[27,28],[31,32],[34,1],[30,31],[22,23],[1,2],[6,7],[25,26],[14,15],[33,34],[20,21],[4,5],[10,11],[3,4],[7,8],[29,30],[17,18],[16,17],[11,12],[24,25],[13,14],[21,22],[5,6],[26,27],[2,3],[9,10],[19,20],[12,13],[15,16],[28,29],[8,9],[18,19],[23,24],[32,33]],"handle_primary":[[23,[0.0,0.0]],[22,[0.0,0.0]],[16,[0.0,0.0]],[20,[0.0,0.0]],[24,[0.0,0.0]],[15,[0.0,0.0]],[4,[0.0,0.0]],[34,[0.0,0.0]],[9,[0.0,0.0]],[32,[0.0,0.0]],[7,[24.88888888888891,-15.111111111111086]],[33,[0.0,0.0]],[6,[0.0,0.0]],[14,[0.0,0.0]],[10,[0.0,0.0]],[21,[0.0,0.0]],[31,[0.0,0.0]],[17,[0.0,0.0]],[28,[0.0,0.0]],[1,[0.0,0.0]],[8,[0.0,0.0]],[19,[0.0,0.0]],[29,[0.0,0.0]],[26,[0.0,0.0]],[12,[0.0,0.0]],[11,[0.0,0.0]],[27,[0.0,0.0]],[2,[30.66666666666663,2.6666666666666856]],[30,[0.0,0.0]],[3,[0.0,0.0]],[13,[0.0,0.0]],[5,[0.0,0.0]],[18,[0.0,0.0]],[25,[0.0,0.0]]],"handle_end":[[26,[26.22222222222223,2.666666666666657]],[10,[26.66666666666663,44.44444444444446]],[4,[-31.555555555555543,18.22222222222223]],[23,[-35.55555555555554,11.1111111111111]],[18,[13.3333333333333,41.33333333333334]],[17,[-10.222222222222172,12.444444444444455]],[9,[-34.222222222222285,36.0]],[13,[-13.333333333333371,14.222222222222229]],[34,[65.7777777777778,12.444444444444445]],[21,[0.0,0.0]],[5,[-13.333333333333384,14.222222222222229]],[16,[6.666666666666629,13.333333333333314]],[12,[18.66666666666663,16.0]],[2,[-51.111111111111086,14.666666666666686]],[11,[-24.0,31.555555555555543]],[8,[36.0,41.77777777777777]],[27,[-39.55555555555554,12.444444444444429]],[6,[-24.88888888888891,15.111111111111086]],[22,[38.22222222222223,4.888888888888886]],[32,[55.111111111111086,9.777777777777771]],[29,[-17.77777777777777,-3.555555555555543]],[1,[-30.666666666666615,-2.6666666666666856]],[25,[-11.111111111111144,-1.7777777777778]],[3,[8.4444444444444,-0.8888888888889142]],[28,[54.66666666666663,6.666666666666686]],[30,[35.111111111111086,1.333333333333373]],[24,[47.55555555555554,4.888888888888886]],[15,[-12.444444444444455,28.444444444444457]],[33,[-64.44444444444446,3.111111111111157]],[20,[13.333333333333371,70.22222222222223]],[31,[-42.22222222222223,5.333333333333314]],[14,[29.33333333333337,57.77777777777777]],[19,[-9.777777777777844,23.55555555555557]],[7,[0.0,0.0]]],"stroke":[[20,0],[19,0],[10,0],[17,0],[1,0],[25,0],[34,0],[14,0],[11,0],[2,0],[26,0],[32,0],[9,0],[21,0],[24,0],[31,0],[16,0],[27,0],[15,0],[8,0],[5,0],[23,0],[6,0],[30,0],[18,0],[22,0],[33,0],[13,0],[7,0],[3,0],[29,0],[28,0],[12,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":34}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14972365039974885000,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":3471929742275053000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1000.0,1000.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Network":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13394621587544123000,{"inputs":[{"Node":{"node_id":13907401402762847509,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.6484375,"green":0.6484375,"blue":0.6484375,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.6484375,"green":0.6484375,"blue":0.6484375,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.91796875,"green":0.68489075,"blue":0.68489075,"alpha":1.0}],[1.0,{"red":0.8862745,"green":0.16470589,"blue":0.16470589,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4915209831246563,0.36613756613756576],"end":[0.49551110871305326,0.9947089947089944],"transform":[250.61867799546343,0.0,0.0,472.4999999999999,809.8156610022683,336.0000000000002]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11411423299989983000,{"inputs":[{"Node":{"node_id":16877573495957869000,"output_index":0,"lambda":false}},{"Node":{"node_id":3958246774416220000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14631609508767818000,{"inputs":[{"Node":{"node_id":15889416971203222000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[487.1243076693745,127.7443401649906]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[25.393705016577044,25.003032631706716]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2908374490615384600,{"inputs":[{"Node":{"node_id":17339085479159577000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.078431375,"green":0.14901961,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.078431375,"green":0.14901961,"blue":0.20784314,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16765094648901306000,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":8147814087664910471,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[655907162126315400,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[8,[475.0,671.9999999999999]],[11,[186.0,824.9999999999999]],[4,[484.0,446.9999999999999]],[10,[455.0,824.9999999999999]],[2,[587.0,291.9999999999999]],[3,[373.0,372.9999999999999]],[1,[416.0,270.9999999999999]],[6,[495.0,533.9999999999999]],[5,[639.0,438.9999999999999]],[9,[750.0,703.9999999999999]],[7,[304.0,611.9999999999999]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[7,7],[4,4],[3,3],[9,9],[8,8],[10,10],[1,1],[5,5],[6,6],[2,2]],"end_point":[[5,6],[4,5],[2,3],[6,7],[3,4],[9,10],[7,8],[1,2],[10,11],[8,9]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[10,[0.0,0.0]],[7,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]],[9,[0.0,0.0]],[3,[0.0,0.0]],[8,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[8,[0.0,0.0]],[7,[0.0,0.0]],[5,[0.0,0.0]],[3,[0.0,0.0]],[9,[0.0,0.0]],[10,[0.0,0.0]],[6,[0.0,0.0]]],"stroke":[[4,0],[10,0],[9,0],[6,0],[7,0],[1,0],[2,0],[5,0],[3,0],[8,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16877573495957869000,{"inputs":[{"Node":{"node_id":4534782777857480700,"output_index":0,"lambda":false}},{"Node":{"node_id":5737014828407011000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5737014828407011000,{"inputs":[{"Node":{"node_id":10504222558938851000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[499.21344163872624,106.32837674079803]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.141592653589793},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[55.110312549931045,55.110312549931045]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-1.921525468856923e-16,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10504222558938851000,{"inputs":[{"Node":{"node_id":13571989088655643000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":0.94460994,"blue":0.79296875,"alpha":1.0}],[1.0,{"red":0.89411765,"green":0.654902,"blue":0.0,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4703098217208352,0.4995258072961386],"end":[0.9924395932459462,0.5005395053456176],"transform":[237.34320332463173,-71.34811668265112,75.01984946235177,249.55741247555255,995.9008094918244,343.8953521035491]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":0.94460994,"blue":0.79296875,"alpha":1.0}],[1.0,{"red":0.89411765,"green":0.654902,"blue":0.0,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4703098217208352,0.4995258072961386],"end":[0.9924395932459462,0.5005395053456176],"transform":[237.34320332463173,-71.34811668265112,75.01984946235177,249.55741247555255,995.9008094918244,343.8953521035491]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4248875763694880300,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7297408968096180000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3471929742275053000,{"inputs":[{"Node":{"node_id":11411423299989983000,"output_index":0,"lambda":false}},{"Node":{"node_id":4217566479741824000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[169695252050218443,{"inputs":[{"Node":{"node_id":6559102076450693000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.75}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.01}]],"gradient_type":"Radial","start":[0.4915209831246563,0.36613756613756576],"end":[0.49551110871305326,0.9947089947089944],"transform":[250.61867799546343,0.0,0.0,472.4999999999999,809.8156610022683,336.0000000000002]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.7734375}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.01}]],"gradient_type":"Radial","start":[0.4915209831246563,0.36613756613756576],"end":[0.49551110871305326,0.9947089947089944],"transform":[250.61867799546343,0.0,0.0,472.4999999999999,809.8156610022683,336.0000000000002]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5250960114142560178,{"inputs":[{"Node":{"node_id":655907162126315400,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.18629456,"green":0.18054199,"blue":0.2265625,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":8.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[17339085479159577000,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[5,[28.296296296296305,197.33333333333331]],[4,[28.296296296296305,198.96296296296293]],[1,[88.4444444444444,151.55555555555554]],[3,[123.55555555555554,199.1111111111111]],[2,[122.22222222222224,196.4444444444444]],[7,[66.51851851851853,147.1111111111111]],[6,[58.962962962962976,152.74074074074073]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[3,3],[7,7],[5,5],[1,1],[6,6],[4,4],[2,2]],"end_point":[[7,1],[2,3],[6,7],[3,4],[1,2],[5,6],[4,5]],"handle_primary":[[6,[0.0,0.0]],[5,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[7,[0.0,0.0]]],"handle_end":[[7,[0.0,0.0]],[6,[0.0,0.0]],[4,[0.0,0.0]],[1,[-32.0,-3.5555555555555145]],[2,[0.0,0.0]],[3,[0.0,0.0]],[5,[5.92592592592591,45.77777777777786]]],"stroke":[[7,0],[3,0],[1,0],[2,0],[6,0],[5,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13571989088655643000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"U32":5},"exposed":false}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::StarNode"}},"visible":true,"skip_deduplication":false}],[8147814087664910471,{"inputs":[{"Node":{"node_id":2866788868013687300,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3372549,"green":0.33333334,"blue":0.40784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3372549,"green":0.33333334,"blue":0.40784314,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13907401402762847509,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[10666000720855117911,12291367210538906710,11079673538758176715,9852417284720842144,13528392218319754720],"position":[[0.0,16.600000381469727],[13.314000129699709,30.4060001373291],[0.0,66.8030014038086],[-13.314000129699709,30.4060001373291],[0.0,16.600000381469727]]},"segment_domain":{"id":[1,2,3,4,5],"start_point":[0,1,2,3,4],"end_point":[1,2,3,4,0],"handles":[{"Cubic":{"handle_start":[7.347000122070312,16.600000381469727],"handle_end":[13.314000129699709,22.788000106811523]}},{"Cubic":{"handle_start":[13.314000129699709,38.02399826049805],"handle_end":[4.480999946594238,66.8030014038086]}},{"Cubic":{"handle_start":[-4.480999946594238,66.8030014038086],"handle_end":[-13.314000129699709,38.02299880981445]}},{"Cubic":{"handle_start":[-13.314000129699709,22.788000106811523],"handle_end":[-7.347000122070312,16.600000381469727]}},{"Cubic":{"handle_start":[0.0,16.600000381469727],"handle_end":[0.0,16.600000381469727]}}],"stroke":[0,0,0,0,0]},"region_domain":{"id":[0],"segment_range":[{"start":1,"end":5}],"fill":[0]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[],"remove":[13528392218319754720],"delta":[]},"segments":{"add":[4],"remove":[5],"start_point":[[4,9852417284720842144]],"end_point":[[4,10666000720855117911]],"handle_primary":[[4,[0.0,-7.618000030517578]]],"handle_end":[[4,[-7.34700012207,-3.552713678800501e-15]]],"stroke":[[4,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[[{"ty":"End","segment":4},{"ty":"Primary","segment":1}],[{"ty":"End","segment":4},{"ty":"Primary","segment":5}]]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6559102076450693000,{"inputs":[{"Node":{"node_id":13907401402762847509,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[2866788868013687300,{"inputs":[{"Node":{"node_id":8496292024993914696,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4331062027851128000,{"inputs":[{"Node":{"node_id":665049002420596400,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.1764706,"green":0.25882354,"blue":0.32156864,"alpha":1.0}],[1.0,{"red":0.16577148,"green":0.37890625,"blue":0.36788198,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3769992978075994,0.1888891278143931],"end":[0.9861902161192166,0.9200728483862376],"transform":[801.0625,0.0,0.0,820.5871973335948,698.0,185.0]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.1764706,"green":0.25882354,"blue":0.32156864,"alpha":1.0}],[1.0,{"red":0.16577148,"green":0.37890625,"blue":0.36788198,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3769992978075994,0.1888891278143931],"end":[0.9861902161192166,0.9200728483862376],"transform":[801.0625,0.0,0.0,820.5871973335948,698.0,185.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11815560782623298000,{"inputs":[{"Node":{"node_id":16765094648901306000,"output_index":0,"lambda":false}},{"Node":{"node_id":13394621587544123000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13371003476981866000,{"inputs":[{"Node":{"node_id":11815560782623298000,"output_index":0,"lambda":false}},{"Node":{"node_id":169695252050218443,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4534782777857480700,{"inputs":[{"Node":{"node_id":183562335973647870,"output_index":0,"lambda":false}},{"Node":{"node_id":14631609508767818000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17790961655412892000,{"inputs":[{"Node":{"node_id":12728151724950013388,"output_index":0,"lambda":false}},{"Node":{"node_id":13371003476981866000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":10.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[2181148486404191200,{"inputs":[{"Node":{"node_id":4331062027851128000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[353.5143520436918,551.6238777493922]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.9777789484064812,1.9777789484064812]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4217566479741824000,{"inputs":[{"Node":{"node_id":17790961655412892000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":0.16470589,"green":0.8862745,"blue":0.4117647,"alpha":1.0}],[0.5,{"red":0.8862745,"green":0.16470589,"blue":0.16470589,"alpha":1.0}],[1.0,{"red":0.16470589,"green":0.54901963,"blue":0.8862745,"alpha":1.0}]]},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"U32":3},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::AssignColorsNode"}},"visible":true,"skip_deduplication":false}],[3958246774416220000,{"inputs":[{"Node":{"node_id":5250960114142560178,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SplineNode"}},"visible":true,"skip_deduplication":false}],[7297408968096180000,{"inputs":[{"Node":{"node_id":2908374490615384600,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[353.5143520436944,551.6238777493922]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.9777789484064812,1.9777789484064812]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8309013977031955000,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1.0,1.0]],[2,[1.0,0.0]],[4,[0.0,1.0]],[1,[0.0,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[3,3],[1,1]],"end_point":[[1,2],[2,3],[4,1],[3,4]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8496292024993914696,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[8579252446942557840,5702904670777106146,6914816536199142761,17771770146045579307,4317718082554655671],"position":[[-5.75,-0.4000000059604645],[5.75,-0.4000000059604645],[10.0,21.600000381469727],[-10.0,21.600000381469727],[-5.75,-0.4000000059604645]]},"segment_domain":{"id":[1,2,3,4,5],"start_point":[0,1,2,3,4],"end_point":[1,2,3,4,0],"handles":[{"Cubic":{"handle_start":[-5.75,-0.4000000059604645],"handle_end":[5.75,-0.4000000059604645]}},{"Cubic":{"handle_start":[5.75,-0.4000000059604645],"handle_end":[10.0,21.600000381469727]}},{"Cubic":{"handle_start":[10.0,21.600000381469727],"handle_end":[-10.0,21.600000381469727]}},{"Cubic":{"handle_start":[-10.0,21.600000381469727],"handle_end":[-5.75,-0.4000000059604645]}},{"Cubic":{"handle_start":[-5.75,-0.4000000059604645],"handle_end":[-5.75,-0.4000000059604645]}}],"stroke":[0,0,0,0,0]},"region_domain":{"id":[0],"segment_range":[{"start":1,"end":5}],"fill":[0]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[],"remove":[4317718082554655671],"delta":[]},"segments":{"add":[4],"remove":[5],"start_point":[[4,17771770146045579307]],"end_point":[[4,8579252446942557840]],"handle_primary":[[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]]],"stroke":[[4,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15889416971203222000,{"inputs":[{"Node":{"node_id":8309013977031955000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.89411765,"green":0.654902,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.89411765,"green":0.654902,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12728151724950013388,{"inputs":[{"Node":{"node_id":3958246774416220000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":105.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[13571989088655643000,{"persistent_metadata":{"reference":"Star","display_name":"Star","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Sides","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius 1","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius 2","input_description":""}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8309013977031955000,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14631609508767818000,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15889416971203222000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4217566479741824000,{"persistent_metadata":{"reference":"Assign Colors","display_name":"Assign Colors","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Content","input_description":"The content with vector paths to apply the fill and/or stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"Whether to style the fill.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Stroke","input_description":"Whether to style the stroke.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_gradient","input_name":"Gradient","input_description":"The range of colors to select from.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Reverse","input_description":"Whether to reverse the gradient.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Randomize","input_description":"Whether to randomize the color selection for each element from throughout the gradient.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_seed","input_name":"Seed","input_description":"The seed used for randomization.\nSeed to determine unique variations on the randomized color selection.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_repeat_every","input_name":"Repeat Every","input_description":"The number of elements to span across the gradient before repeating. A 0 value will span the entire gradient once.\n"}}],"output_names":["Content"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7297408968096180000,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13371003476981866000,{"persistent_metadata":{"reference":"Merge","display_name":"Bulb Glow Gradient","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-29,18]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4331062027851128000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17790961655412892000,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8496292024993914696,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":["Modification"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2181148486404191200,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10504222558938851000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11411423299989983000,{"persistent_metadata":{"reference":"Merge","display_name":"Wire (Use Path Tool to Reshape This!)","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2866788868013687300,{"persistent_metadata":{"reference":"To Graphic","display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Element","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[169695252050218443,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4248875763694880300,{"persistent_metadata":{"reference":"Merge","display_name":"Tree Stump","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16877573495957869000,{"persistent_metadata":{"reference":"Merge","display_name":"Star","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":10}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14972365039974885000,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":true},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"W","is_integer":true,"y":"H"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-4,9]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11815560782623298000,{"persistent_metadata":{"reference":"Merge","display_name":"Bulb Shape","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8147814087664910471,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5737014828407011000,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13907401402762847509,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":["Modification"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,21]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[665049002420596400,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6559102076450693000,{"persistent_metadata":{"reference":"To Graphic","display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Element","input_description":""}}],"output_names":["Table"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12728151724950013388,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"mode":"Increment","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":2.0,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16765094648901306000,{"persistent_metadata":{"reference":"Merge","display_name":"Bulb Housing","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3958246774416220000,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-36,15]}}},"network_metadata":null}}],[4534782777857480700,{"persistent_metadata":{"reference":"Merge","display_name":"Star Base","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3471929742275053000,{"persistent_metadata":{"reference":"Merge","display_name":"Lights","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-8,12]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5250960114142560178,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,15]}}},"network_metadata":null}}],[2908374490615384600,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[655907162126315400,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,15]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13394621587544123000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17339085479159577000,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[183562335973647870,{"persistent_metadata":{"reference":"Merge","display_name":"Tree","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[527.9166666666665,-576.1833333333332],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1518.0,4.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[],[2866788868013687300],[],[4352028121261571600],[],[2866788868013687300],[6559102076450693000],[6559102076450693000],[10775791528628074000],[],[6559102076450693000],[],[],[],[],[],[15084833709935380000],[],[16765094648901306000],[16765094648901306000,11815560782623298000],[16765094648901306000,13371003476981866000,11815560782623298000],[6559102076450693000,16765094648901306000,13394621587544123000,11815560782623298000,2866788868013687300,13371003476981866000],[3958246774416220000],[],[],[3958246774416220000],[3958246774416220000,655907162126315400],[],[3958246774416220000],[],[3958246774416220000],[655907162126315400,3958246774416220000],[],[],[3958246774416220000],[655907162126315400,3958246774416220000],[],[14631609508767818000],[],[5737014828407011000],[],[10118219203151733000],[],[],[],[],[],[],[655907162126315400],[],[],[655907162126315400,3958246774416220000],[],[],[16877573495957869000],[11411423299989983000],[16877573495957869000],[3471929742275053000],[11411423299989983000],[11411423299989983000,15209576944107258000],[15209576944107258000,3287844738046380000,11411423299989983000],[15209576944107258000,3287844738046380000,11411423299989983000,3958246774416220000],[3958246774416220000,655907162126315400,15209576944107258000,11411423299989983000,3287844738046380000],[4248875763694880300],[11411423299989983000],[3471929742275053000],[11411423299989983000],[15223368326030279287],[11815560782623298000],[11815560782623298000,16765094648901306000],[11815560782623298000],[13371003476981866000],[16765094648901306000],[15223368326030279287],[13371003476981866000],[13371003476981866000,16765094648901306000,11815560782623298000],[13371003476981866000],[11815560782623298000],[16765094648901306000],[13371003476981866000],[16765094648901306000],[11815560782623298000],[13371003476981866000],[11815560782623298000],[13371003476981866000],[16765094648901306000],[13371003476981866000],[16877573495957869000],[16765094648901306000],[13371003476981866000],[16765094648901306000],[11411423299989983000],[]],"selection_redo_history":[]}}},"collapsed":[],"name":"procedural-string-lights.graphite","commit_hash":"95bbc95606ba40ed7441fdf4e1b954d80b72e3dc","document_ptz":{"pan":[-500.157717622685,-499.8045823704831],"tilt":0.0,"zoom":1.0,"flip":false},"document_mode":"DesignMode","view_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file +{"network_interface":{"network":{"exports":[{"Node":{"node_id":14972365039974885000,"output_index":0}}],"nodes":[[183562335973647870,{"inputs":[{"Node":{"node_id":4248875763694880300,"output_index":0}},{"Node":{"node_id":2181148486404191200,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[665049002420596400,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"remove":[],"delta":[[32,[9.333333333333314,38.66666666666663]],[1,[-103.55555555555554,126.66666666666664]],[24,[57.77777777777777,-129.33333333333334]],[4,[18.66666666666663,157.77777777777771]],[14,[183.11111111111103,-19.111111111111143]],[26,[22.66666666666663,-81.33333333333337]],[22,[71.11111111111109,-201.7777777777778]],[3,[45.77777777777777,145.33333333333331]],[27,[-11.111111111111144,-72.00000000000003]],[28,[39.111111111111086,-58.22222222222226]],[33,[-78.22222222222223,75.55555555555554]],[15,[111.11111111111114,-60.888888888888914]],[2,[-67.55555555555554,158.22222222222217]],[17,[123.99999999999994,-84.00000000000003]],[19,[90.66666666666664,-129.33333333333334]],[20,[128.4444444444444,-142.22222222222223]],[12,[199.5555555555555,10.666666666666629]],[7,[229.33333333333331,152.4444444444444]],[29,[-32.888888888888914,-14.666666666666686]],[34,[-5.333333333333371,99.11111111111109]],[5,[66.22222222222223,152.88888888888886]],[10,[216.4444444444444,72.4444444444444]],[31,[-53.33333333333337,13.777777777777771]],[11,[136.88888888888886,39.111111111111086]],[16,[159.5555555555555,-75.55555555555557]],[13,[153.77777777777777,-1.3333333333333712]],[18,[145.77777777777777,-97.7777777777778]],[23,[19.555555555555543,-139.55555555555557]],[30,[-9.333333333333371,0.0]],[25,[0.8888888888888573,-94.66666666666669]],[6,[123.99999999999994,148.4444444444444]],[21,[76.0,-202.22222222222223]],[9,[156.4444444444444,97.33333333333331]],[8,[252.4444444444444,124.88888888888886]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"remove":[],"start_point":[[19,19],[2,2],[33,33],[20,20],[31,31],[23,23],[5,5],[8,8],[12,12],[17,17],[16,16],[9,9],[21,21],[32,32],[28,28],[10,10],[11,11],[24,24],[22,22],[34,34],[30,30],[14,14],[18,18],[3,3],[6,6],[25,25],[29,29],[7,7],[13,13],[1,1],[26,26],[27,27],[15,15],[4,4]],"end_point":[[11,12],[5,6],[7,8],[28,29],[2,3],[18,19],[16,17],[8,9],[20,21],[29,30],[10,11],[26,27],[3,4],[31,32],[6,7],[22,23],[33,34],[14,15],[32,33],[4,5],[25,26],[9,10],[30,31],[12,13],[23,24],[19,20],[1,2],[21,22],[27,28],[34,1],[24,25],[13,14],[17,18],[15,16]],"handle_primary":[[28,[0.0,0.0]],[33,[0.0,0.0]],[12,[0.0,0.0]],[21,[0.0,0.0]],[8,[0.0,0.0]],[18,[0.0,0.0]],[13,[0.0,0.0]],[22,[0.0,0.0]],[26,[0.0,0.0]],[2,[30.66666666666663,2.6666666666666856]],[25,[0.0,0.0]],[14,[0.0,0.0]],[5,[0.0,0.0]],[9,[0.0,0.0]],[10,[0.0,0.0]],[6,[0.0,0.0]],[19,[0.0,0.0]],[1,[0.0,0.0]],[27,[0.0,0.0]],[20,[0.0,0.0]],[3,[0.0,0.0]],[31,[0.0,0.0]],[7,[24.88888888888891,-15.111111111111086]],[16,[0.0,0.0]],[34,[0.0,0.0]],[11,[0.0,0.0]],[32,[0.0,0.0]],[17,[0.0,0.0]],[30,[0.0,0.0]],[15,[0.0,0.0]],[4,[0.0,0.0]],[23,[0.0,0.0]],[29,[0.0,0.0]],[24,[0.0,0.0]]],"handle_end":[[1,[-30.666666666666615,-2.6666666666666856]],[28,[54.66666666666663,6.666666666666686]],[12,[18.66666666666663,16.0]],[22,[38.22222222222223,4.888888888888886]],[9,[-34.222222222222285,36.0]],[31,[-42.22222222222223,5.333333333333314]],[15,[-12.444444444444455,28.444444444444457]],[2,[-51.111111111111086,14.666666666666686]],[11,[-24.0,31.555555555555543]],[20,[13.333333333333371,70.22222222222223]],[3,[8.4444444444444,-0.8888888888889142]],[13,[-13.333333333333371,14.222222222222229]],[7,[0.0,0.0]],[21,[0.0,0.0]],[17,[-10.222222222222172,12.444444444444455]],[19,[-9.777777777777844,23.55555555555557]],[6,[-24.88888888888891,15.111111111111086]],[24,[47.55555555555554,4.888888888888886]],[8,[36.0,41.77777777777777]],[30,[35.111111111111086,1.333333333333373]],[27,[-39.55555555555554,12.444444444444429]],[29,[-17.77777777777777,-3.555555555555543]],[34,[65.7777777777778,12.444444444444445]],[10,[26.66666666666663,44.44444444444446]],[18,[13.3333333333333,41.33333333333334]],[16,[6.666666666666629,13.333333333333314]],[25,[-11.111111111111144,-1.7777777777778]],[4,[-31.555555555555543,18.22222222222223]],[32,[55.111111111111086,9.777777777777771]],[5,[-13.333333333333384,14.222222222222229]],[23,[-35.55555555555554,11.1111111111111]],[33,[-64.44444444444446,3.111111111111157]],[14,[29.33333333333337,57.77777777777777]],[26,[26.22222222222223,2.666666666666657]]],"stroke":[[3,0],[16,0],[28,0],[24,0],[29,0],[32,0],[22,0],[4,0],[25,0],[1,0],[12,0],[23,0],[18,0],[31,0],[17,0],[19,0],[2,0],[14,0],[8,0],[34,0],[33,0],[30,0],[13,0],[27,0],[9,0],[21,0],[26,0],[5,0],[10,0],[15,0],[11,0],[6,0],[7,0],[20,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":34}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14972365039974885000,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":3471929742275053000,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1000.0,1000.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Import":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13394621587544123000,{"inputs":[{"Node":{"node_id":13907401402762847509,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.6484375,"green":0.6484375,"blue":0.6484375,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.6484375,"green":0.6484375,"blue":0.6484375,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.91796875,"green":0.68489075,"blue":0.68489075,"alpha":1.0}],[1.0,{"red":0.8862745,"green":0.16470589,"blue":0.16470589,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4915209831246563,0.36613756613756576],"end":[0.49551110871305326,0.9947089947089944]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11411423299989983000,{"inputs":[{"Node":{"node_id":16877573495957869000,"output_index":0}},{"Node":{"node_id":3958246774416220000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14631609508767818000,{"inputs":[{"Node":{"node_id":15889416971203222000,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[487.1243076693745,127.7443401649906]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[25.393705016577044,25.003032631706716]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2908374490615384600,{"inputs":[{"Node":{"node_id":17339085479159577000,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.078431375,"green":0.14901961,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.078431375,"green":0.14901961,"blue":0.20784314,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16765094648901306000,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":8147814087664910471,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[655907162126315400,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[10,[455.0,824.9999999999999]],[5,[639.0,438.9999999999999]],[2,[587.0,291.9999999999999]],[1,[416.0,270.9999999999999]],[7,[304.0,611.9999999999999]],[6,[495.0,533.9999999999999]],[4,[484.0,446.9999999999999]],[8,[475.0,671.9999999999999]],[11,[186.0,824.9999999999999]],[9,[750.0,703.9999999999999]],[3,[373.0,372.9999999999999]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[4,4],[1,1],[2,2],[10,10],[6,6],[7,7],[5,5],[3,3],[9,9],[8,8]],"end_point":[[6,7],[1,2],[5,6],[10,11],[2,3],[8,9],[9,10],[7,8],[4,5],[3,4]],"handle_primary":[[5,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[6,[0.0,0.0]],[4,[0.0,0.0]],[8,[0.0,0.0]],[9,[0.0,0.0]],[10,[0.0,0.0]],[7,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[10,[0.0,0.0]],[7,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[8,[0.0,0.0]],[9,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[9,0],[1,0],[5,0],[2,0],[8,0],[6,0],[3,0],[4,0],[10,0],[7,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16877573495957869000,{"inputs":[{"Node":{"node_id":4534782777857480700,"output_index":0}},{"Node":{"node_id":5737014828407011000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5737014828407011000,{"inputs":[{"Node":{"node_id":10504222558938851000,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[499.21344163872624,106.32837674079803]},"exposed":false}},{"Value":{"tagged_value":{"F64":180.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[55.110312549931045,55.110312549931045]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-1.1009529959239839e-14,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10504222558938851000,{"inputs":[{"Node":{"node_id":13571989088655643000,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":0.94460994,"blue":0.79296875,"alpha":1.0}],[1.0,{"red":0.89411765,"green":0.654902,"blue":0.0,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4703098217208352,0.4995258072961386],"end":[0.9924395932459462,0.5005395053456176]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":0.94460994,"blue":0.79296875,"alpha":1.0}],[1.0,{"red":0.89411765,"green":0.654902,"blue":0.0,"alpha":1.0}]],"gradient_type":"Radial","start":[0.4703098217208352,0.4995258072961386],"end":[0.9924395932459462,0.5005395053456176]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4248875763694880300,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7297408968096180000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3471929742275053000,{"inputs":[{"Node":{"node_id":11411423299989983000,"output_index":0}},{"Node":{"node_id":4217566479741824000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[169695252050218443,{"inputs":[{"Node":{"node_id":6559102076450693000,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.75}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.01}]],"gradient_type":"Radial","start":[0.4915209831246563,0.36613756613756576],"end":[0.49551110871305326,0.9947089947089944]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.7734375}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":0.01}]],"gradient_type":"Radial","start":[0.4915209831246563,0.36613756613756576],"end":[0.49551110871305326,0.9947089947089944]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5250960114142560178,{"inputs":[{"Node":{"node_id":655907162126315400,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.18629456,"green":0.18054199,"blue":0.2265625,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":8.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Round"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17339085479159577000,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[2,[122.22222222222224,196.4444444444444]],[6,[58.962962962962976,152.74074074074073]],[1,[88.4444444444444,151.55555555555554]],[3,[123.55555555555554,199.1111111111111]],[4,[28.296296296296305,198.96296296296293]],[7,[66.51851851851853,147.1111111111111]],[5,[28.296296296296305,197.33333333333331]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[7,7],[5,5],[2,2],[3,3],[4,4],[1,1],[6,6]],"end_point":[[3,4],[1,2],[6,7],[5,6],[4,5],[7,1],[2,3]],"handle_primary":[[1,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]],[6,[0.0,0.0]],[7,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[7,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[6,[0.0,0.0]],[5,[5.92592592592591,45.77777777777786]],[3,[0.0,0.0]],[1,[-32.0,-3.5555555555555145]]],"stroke":[[2,0],[1,0],[7,0],[3,0],[5,0],[4,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13571989088655643000,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"U32":5},"exposed":false}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::StarNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8147814087664910471,{"inputs":[{"Node":{"node_id":2866788868013687300,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3372549,"green":0.33333334,"blue":0.40784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3372549,"green":0.33333334,"blue":0.40784314,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13907401402762847509,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[10666000720855117911,12291367210538906710,11079673538758176715,9852417284720842144,13528392218319754720],"position":[[0.0,16.600000381469727],[13.314000129699709,30.4060001373291],[0.0,66.8030014038086],[-13.314000129699709,30.4060001373291],[0.0,16.600000381469727]]},"segment_domain":{"id":[1,2,3,4,5],"start_point":[0,1,2,3,4],"end_point":[1,2,3,4,0],"handles":[{"Cubic":{"handle_start":[7.347000122070312,16.600000381469727],"handle_end":[13.314000129699709,22.788000106811523]}},{"Cubic":{"handle_start":[13.314000129699709,38.02399826049805],"handle_end":[4.480999946594238,66.8030014038086]}},{"Cubic":{"handle_start":[-4.480999946594238,66.8030014038086],"handle_end":[-13.314000129699709,38.02299880981445]}},{"Cubic":{"handle_start":[-13.314000129699709,22.788000106811523],"handle_end":[-7.347000122070312,16.600000381469727]}},{"Cubic":{"handle_start":[0.0,16.600000381469727],"handle_end":[0.0,16.600000381469727]}}],"stroke":[0,0,0,0,0]},"region_domain":{"id":[0],"segment_range":[{"start":1,"end":5}],"fill":[0]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[],"remove":[13528392218319754720],"delta":[]},"segments":{"add":[4],"remove":[5],"start_point":[[4,9852417284720842144]],"end_point":[[4,10666000720855117911]],"handle_primary":[[4,[0.0,-7.618000030517578]]],"handle_end":[[4,[-7.34700012207,-3.552713678800501e-15]]],"stroke":[[4,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[[{"ty":"End","segment":4},{"ty":"Primary","segment":5}],[{"ty":"End","segment":4},{"ty":"Primary","segment":1}]]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6559102076450693000,{"inputs":[{"Node":{"node_id":13907401402762847509,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2866788868013687300,{"inputs":[{"Node":{"node_id":8496292024993914696,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4331062027851128000,{"inputs":[{"Node":{"node_id":665049002420596400,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.1764706,"green":0.25882354,"blue":0.32156864,"alpha":1.0}],[1.0,{"red":0.16577148,"green":0.37890625,"blue":0.36788198,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3769992978075994,0.1888891278143931],"end":[0.9861902161192166,0.9200728483862376]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.1764706,"green":0.25882354,"blue":0.32156864,"alpha":1.0}],[1.0,{"red":0.16577148,"green":0.37890625,"blue":0.36788198,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3769992978075994,0.1888891278143931],"end":[0.9861902161192166,0.9200728483862376]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11815560782623298000,{"inputs":[{"Node":{"node_id":16765094648901306000,"output_index":0}},{"Node":{"node_id":13394621587544123000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13371003476981866000,{"inputs":[{"Node":{"node_id":11815560782623298000,"output_index":0}},{"Node":{"node_id":169695252050218443,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4534782777857480700,{"inputs":[{"Node":{"node_id":183562335973647870,"output_index":0}},{"Node":{"node_id":14631609508767818000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17790961655412892000,{"inputs":[{"Node":{"node_id":12728151724950013388,"output_index":0}},{"Node":{"node_id":13371003476981866000,"output_index":0}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":10.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2181148486404191200,{"inputs":[{"Node":{"node_id":4331062027851128000,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[353.5143520436918,551.6238777493922]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.9777789484064812,1.9777789484064812]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4217566479741824000,{"inputs":[{"Node":{"node_id":17790961655412892000,"output_index":0}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"GradientStops":[[0.0,{"red":0.16470589,"green":0.8862745,"blue":0.4117647,"alpha":1.0}],[0.5,{"red":0.8862745,"green":0.16470589,"blue":0.16470589,"alpha":1.0}],[1.0,{"red":0.16470589,"green":0.54901963,"blue":0.8862745,"alpha":1.0}]]},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"U32":3},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::AssignColorsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3958246774416220000,{"inputs":[{"Node":{"node_id":5250960114142560178,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SplineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7297408968096180000,{"inputs":[{"Node":{"node_id":2908374490615384600,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[353.5143520436944,551.6238777493922]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.9777789484064812,1.9777789484064812]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8309013977031955000,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.0,0.0]],[3,[1.0,1.0]],[2,[1.0,0.0]],[4,[0.0,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[1,1],[2,2]],"end_point":[[4,1],[1,2],[2,3],[3,4]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[1,0],[3,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8496292024993914696,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[8579252446942557840,5702904670777106146,6914816536199142761,17771770146045579307,4317718082554655671],"position":[[-5.75,-0.4000000059604645],[5.75,-0.4000000059604645],[10.0,21.600000381469727],[-10.0,21.600000381469727],[-5.75,-0.4000000059604645]]},"segment_domain":{"id":[1,2,3,4,5],"start_point":[0,1,2,3,4],"end_point":[1,2,3,4,0],"handles":[{"Cubic":{"handle_start":[-5.75,-0.4000000059604645],"handle_end":[5.75,-0.4000000059604645]}},{"Cubic":{"handle_start":[5.75,-0.4000000059604645],"handle_end":[10.0,21.600000381469727]}},{"Cubic":{"handle_start":[10.0,21.600000381469727],"handle_end":[-10.0,21.600000381469727]}},{"Cubic":{"handle_start":[-10.0,21.600000381469727],"handle_end":[-5.75,-0.4000000059604645]}},{"Cubic":{"handle_start":[-5.75,-0.4000000059604645],"handle_end":[-5.75,-0.4000000059604645]}}],"stroke":[0,0,0,0,0]},"region_domain":{"id":[0],"segment_range":[{"start":1,"end":5}],"fill":[0]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[],"remove":[4317718082554655671],"delta":[]},"segments":{"add":[4],"remove":[5],"start_point":[[4,17771770146045579307]],"end_point":[[4,8579252446942557840]],"handle_primary":[[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]]],"stroke":[[4,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15889416971203222000,{"inputs":[{"Node":{"node_id":8309013977031955000,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.89411765,"green":0.654902,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.89411765,"green":0.654902,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12728151724950013388,{"inputs":[{"Node":{"node_id":3958246774416220000,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":105.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[169695252050218443,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3471929742275053000,{"persistent_metadata":{"reference":"Merge","display_name":"Lights","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-8,12]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17790961655412892000,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13907401402762847509,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":["Modification"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,21]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13571989088655643000,{"persistent_metadata":{"reference":"Star","display_name":"Star","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Sides","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius 1","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius 2","input_description":""}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[665049002420596400,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10504222558938851000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[655907162126315400,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-50,15]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14631609508767818000,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11815560782623298000,{"persistent_metadata":{"reference":"Merge","display_name":"Bulb Shape","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16877573495957869000,{"persistent_metadata":{"reference":"Merge","display_name":"Star","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":10}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4534782777857480700,{"persistent_metadata":{"reference":"Merge","display_name":"Star Base","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8147814087664910471,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5250960114142560178,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,15]}}},"network_metadata":null}}],[6559102076450693000,{"persistent_metadata":{"reference":"To Graphic","display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Element","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5737014828407011000,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7297408968096180000,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8496292024993914696,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":["Modification"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12728151724950013388,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"blank_assist":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"mode":"Increment","is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4331062027851128000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4248875763694880300,{"persistent_metadata":{"reference":"Merge","display_name":"Tree Stump","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3958246774416220000,{"persistent_metadata":{"reference":"Spline","display_name":"Spline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-36,15]}}},"network_metadata":null}}],[14972365039974885000,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":true,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"x":"W","unit":" px","y":"H"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-4,9]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2908374490615384600,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13394621587544123000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2181148486404191200,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16765094648901306000,{"persistent_metadata":{"reference":"Merge","display_name":"Bulb Housing","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15889416971203222000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17339085479159577000,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2866788868013687300,{"persistent_metadata":{"reference":"To Graphic","display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Element","input_description":""}}],"output_names":["Table"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[183562335973647870,{"persistent_metadata":{"reference":"Merge","display_name":"Tree","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8309013977031955000,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13371003476981866000,{"persistent_metadata":{"reference":"Merge","display_name":"Bulb Glow Gradient","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-29,18]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11411423299989983000,{"persistent_metadata":{"reference":"Merge","display_name":"Wire (Use Path Tool to Reshape This!)","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4217566479741824000,{"persistent_metadata":{"reference":"Assign Colors","display_name":"Assign Colors","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Content","input_description":"The content with vector paths to apply the fill and/or stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"Whether to style the fill.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Stroke","input_description":"Whether to style the stroke.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_gradient","input_name":"Gradient","input_description":"The range of colors to select from.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Reverse","input_description":"Whether to reverse the gradient.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Randomize","input_description":"Whether to randomize the color selection for each element from throughout the gradient.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_seed","input_name":"Seed","input_description":"The seed used for randomization.\nSeed to determine unique variations on the randomized color selection.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":"assign_colors_repeat_every","input_name":"Repeat Every","input_description":"The number of elements to span across the gradient before repeating. A 0 value will span the entire gradient once.\n"}}],"output_names":["Content"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[527.9166666666665,-576.1833333333332],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1518.0,4.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[],[2866788868013687300],[],[4352028121261571600],[],[2866788868013687300],[6559102076450693000],[6559102076450693000],[10775791528628074000],[],[6559102076450693000],[],[],[],[],[],[15084833709935380000],[],[16765094648901306000],[16765094648901306000,11815560782623298000],[16765094648901306000,13371003476981866000,11815560782623298000],[6559102076450693000,16765094648901306000,13394621587544123000,11815560782623298000,2866788868013687300,13371003476981866000],[3958246774416220000],[],[],[3958246774416220000],[3958246774416220000,655907162126315400],[],[3958246774416220000],[],[3958246774416220000],[655907162126315400,3958246774416220000],[],[],[3958246774416220000],[655907162126315400,3958246774416220000],[],[14631609508767818000],[],[5737014828407011000],[],[10118219203151733000],[],[],[],[],[],[],[655907162126315400],[],[],[655907162126315400,3958246774416220000],[],[],[16877573495957869000],[11411423299989983000],[16877573495957869000],[3471929742275053000],[11411423299989983000],[11411423299989983000,15209576944107258000],[15209576944107258000,3287844738046380000,11411423299989983000],[15209576944107258000,3287844738046380000,11411423299989983000,3958246774416220000],[3958246774416220000,655907162126315400,15209576944107258000,11411423299989983000,3287844738046380000],[4248875763694880300],[11411423299989983000],[3471929742275053000],[11411423299989983000],[15223368326030279287],[11815560782623298000],[11815560782623298000,16765094648901306000],[11815560782623298000],[13371003476981866000],[16765094648901306000],[15223368326030279287],[13371003476981866000],[13371003476981866000,16765094648901306000,11815560782623298000],[13371003476981866000],[11815560782623298000],[16765094648901306000],[13371003476981866000],[16765094648901306000],[11815560782623298000],[13371003476981866000],[11815560782623298000],[13371003476981866000],[16765094648901306000],[13371003476981866000],[16877573495957869000],[16765094648901306000],[13371003476981866000],[16765094648901306000],[11411423299989983000],[]],"selection_redo_history":[]}}},"collapsed":[],"commit_hash":"95bbc95606ba40ed7441fdf4e1b954d80b72e3dc","document_ptz":{"pan":[-500.157717622685,-499.8045823704831],"tilt":0.0,"zoom":1.0,"flip":false},"document_mode":"DesignMode","render_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file diff --git a/demo-artwork/red-dress.graphite b/demo-artwork/red-dress.graphite index a5c4c243a..e2b36878f 100644 --- a/demo-artwork/red-dress.graphite +++ b/demo-artwork/red-dress.graphite @@ -1 +1 @@ -{"network_interface":{"network":{"exports":[{"Node":{"node_id":2394762731964337494,"output_index":0,"lambda":false}}],"nodes":[[10127467043900015225,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[644.0,726.6666666666666]],[1,[258.00000000000006,994.6666666666664]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-328.66666666666674,129.33333333333337]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15961046538654083626,{"inputs":[{"Node":{"node_id":1889157037801767612,"output_index":0,"lambda":false}},{"Node":{"node_id":4332145463108161926,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}},{"Value":{"tagged_value":{"F64":10.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[17378885078543074499,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[8,[746.0000000000001,842.9999999999999]],[2,[745.5,826.0]],[7,[727.5555555555554,1026.6666666666663]],[6,[725.7777777777779,1026.370370370371]],[5,[740.4444444444443,857.1111111111111]],[3,[707.5,1026.5]],[1,[823.2222222222221,660.4444444444445]],[4,[709.5555555555554,1026.6666666666667]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[7,7],[5,5],[6,6],[4,4],[2,2],[1,1],[3,3],[8,8]],"end_point":[[3,4],[5,6],[6,7],[4,5],[7,8],[1,2],[8,1],[2,3]],"handle_primary":[[6,[0.0,0.0]],[5,[0.0,0.0]],[8,[17.33333333333337,-84.99999999999989]],[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[-24.5,85.0]],[7,[0.0,0.0]]],"handle_end":[[1,[24.5,-85.0]],[3,[0.0,0.0]],[4,[-23.11111111111109,90.44444444444456]],[2,[0.0,0.0]],[6,[0.0,0.0]],[8,[1.772016460905547,0.9591220850479658]],[7,[-26.8034437596026,131.4399645903585]],[5,[-7.555555555555884,-59.25925925925992]]],"stroke":[[8,0],[5,0],[6,0],[4,0],[3,0],[1,0],[2,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14537754528543289381,{"inputs":[{"Node":{"node_id":1689789805659535712,"output_index":0,"lambda":false}},{"Node":{"node_id":17364155187784942740,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11656581020969095354,{"inputs":[{"Node":{"node_id":8413863870096329943,"output_index":0,"lambda":false}},{"Node":{"node_id":9698363115186534174,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4350324834849900949,{"inputs":[{"Node":{"node_id":6672826052605647592,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15857077552290328068,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[820.8888888888889,395.55555555555554]],[3,[740.0,516.0]],[4,[702.2222222222222,621.3333333333333]],[1,[848.8888888888889,330.66666666666663]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[2,2],[1,1]],"end_point":[[1,2],[3,4],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[-15.111111111111086,22.66666666666663]],[3,[-17.77777777777783,35.55555555555554]]],"handle_end":[[3,[6.222222222222172,-38.66666666666674]],[2,[17.77777777777783,-35.55555555555554]],[1,[15.111111111111086,-22.66666666666663]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15735375935164094402,{"inputs":[{"Node":{"node_id":3414873131936208778,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15239301303367148581,{"inputs":[{"Node":{"node_id":11268046366284173800,"output_index":0,"lambda":false}},{"Node":{"node_id":5269304445610080925,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[615144098061106242,{"inputs":[{"Node":{"node_id":14675232891471617236,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11058365317860779469,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[2,[242.0,917.0]],[3,[352.0,833.0]],[6,[368.0,902.6666666666669]],[4,[397.3333333333333,770.6666666666666]],[5,[479.00000000000006,817.0]],[7,[311.3333333333333,1018.6666666666666]],[1,[181.0,1023.0]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[1,1],[7,7],[2,2],[5,5],[3,3],[4,4],[6,6]],"end_point":[[4,5],[3,4],[7,1],[1,2],[2,3],[6,7],[5,6]],"handle_primary":[[1,[0.0,0.0]],[3,[37.4110841377784,-16.935189837826556]],[5,[-35.31654570364651,23.463149348287175]],[6,[0.0,0.0]],[7,[0.0,0.0]],[4,[0.0,0.0]],[2,[40.0718943376238,-39.16116946631416]]],"handle_end":[[5,[45.99999999999994,-52.00000000000023]],[7,[0.0,1.3333333333337123]],[4,[35.31654570364611,-23.463149348286947]],[2,[-37.4110841377784,16.935189837826556]],[3,[0.0,0.0]],[1,[-40.071894337623746,39.16116946631416]],[6,[18.0,-55.33333333333326]]],"stroke":[[2,0],[3,0],[7,0],[1,0],[5,0],[6,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14946189826912398678,{"inputs":[{"Node":{"node_id":10086073308516686449,"output_index":0,"lambda":false}},{"Node":{"node_id":12030171742672119253,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11553850607251055696,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[7,[591.5390946502059,128.7023319615912]],[2,[596.631001371742,112.37311385459536]],[3,[594.085048010974,128.61454046639233]],[5,[619.2812071330591,124.6639231824417]],[4,[608.570644718793,131.2482853223594]],[6,[609.9753086419754,133.5308641975309]],[8,[594.962962962963,111.93415637860085]],[1,[597.5967078189302,96.04389574759946]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[6,6],[5,5],[7,7],[1,1],[2,2],[8,8],[3,3],[4,4]],"end_point":[[2,3],[6,7],[1,2],[4,5],[3,4],[5,6],[8,1],[7,8]],"handle_primary":[[8,[4.1262002743484345,-6.935528120713329]],[6,[-7.286694101508829,3.0727023319615796]],[3,[3.5534615822588194,4.6302681223374975]],[4,[4.038408779149563,-1.492455418381354]],[7,[-2.3703703703704377,-6.057613168724245]],[1,[0.0,0.0]],[2,[-4.126200274348321,7.1111111111111]],[5,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[2,[-2.8971193415636662,-3.7750342935528063]],[1,[4.126200274348321,-7.111111111111114]],[7,[-4.1262002743484345,6.935528120713272]],[3,[-4.038408779149563,1.492455418381354]],[6,[2.3703703703704377,6.057613168724259]],[8,[-0.0877914951989851,0.08779149519889984]],[5,[7.286694101508829,-3.0727023319615796]]],"stroke":[[6,0],[2,0],[4,0],[8,0],[5,0],[1,0],[3,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4453139144069993994,{"inputs":[{"Node":{"node_id":11804065810513502701,"output_index":0,"lambda":false}},{"Node":{"node_id":3955326429435439190,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5040278174920511484,{"inputs":[{"Node":{"node_id":14345191642063772510,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4577174813962563383,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[683.6813083078299,66.11925839089211]],[3,[682.7287205627164,97.04177207029592]],[1,[681.3689965686843,65.32157692417977]],[2,[681.8346756482305,95.35045043533154]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[4,4],[1,1]],"end_point":[[3,4],[2,3],[1,2],[4,1]],"handle_primary":[[2,[0.0,0.0]],[4,[-1.0406539360374154,-1.1405457962673182]],[1,[0.0,0.0]],[3,[-1.544754703853414,-12.605862910106907]]],"handle_end":[[4,[-1.1368683772161605e-13,-1.4210854715202004e-14]],[1,[-2.6406503472093164,-12.592334294499352]],[2,[-0.5302752037773644,-0.69223185792994]],[3,null]],"stroke":[[2,0],[4,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14225285635863713990,{"inputs":[{"Node":{"node_id":8410534738018320047,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[25.333333333333485,12.641975308641918]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11899713172487274471,{"inputs":[{"Node":{"node_id":9954843247420111867,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[6580280438672662494,{"inputs":[{"Node":{"node_id":15395954548128560685,"output_index":0,"lambda":false}},{"Node":{"node_id":14598755603287563819,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17967471489196302183,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[334.8148148148148,1025.4814814814813]],[2,[568.8888888888889,785.4814814814813]],[1,[339.25925925925924,1025.185185185185]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[3,3],[2,2]],"end_point":[[2,3],[1,2],[3,1]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[2,[42.07407407407419,-157.6296296296293]],[3,null],[1,[-209.77777777777777,108.44444444444468]]],"stroke":[[2,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10086073308516686449,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":3971837674569123876,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4222034829755771252,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[161.6241426611797,258.3703703703704]],[3,[152.49382716049382,262.71604938271605]],[2,[155.25925925925927,256.7901234567901]],[1,[165.5308641975309,250.07407407407408]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[3,3],[4,4]],"end_point":[[1,2],[3,4],[4,1],[2,3]],"handle_primary":[[2,[-1.9753086419753176,0.790123456790127]],[3,[0.0,0.0]],[4,[2.7654320987654444,-3.950617283950635]],[1,[0.0,0.0]]],"handle_end":[[3,[-2.7654320987654444,3.950617283950635]],[1,[1.9753086419753176,-0.790123456790127]],[2,[-0.3950617283950919,-1.7777777777777717]],[4,[0.0,0.0]]],"stroke":[[2,0],[4,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4307303572241320716,{"inputs":[{"Node":{"node_id":4265165189651403984,"output_index":0,"lambda":false}},{"Node":{"node_id":4572557574846980832,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2878992817082507910,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[741.6296296296296,1027.5555555555557]],[2,[738.074074074074,1027.2592592592591]],[1,[777.4814814814814,867.5555555555555]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[3,1],[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[-25.185185185185105,132.14814814814804]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9863310024364795214,{"inputs":[{"Node":{"node_id":5278509881589546420,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11025165626998987360,{"inputs":[{"Node":{"node_id":5326536612985524219,"output_index":0,"lambda":false}},{"Node":{"node_id":4332145463108161926,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":40.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-15.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[15982852655074258238,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[798.222222222222,639.8024691358025]],[1,[837.9999999999998,535.8024691358025]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[2,1],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[31.037037037037067,-61.11111111111131]]],"handle_end":[[1,[34.000000000000114,-59.77777777777783]],[2,null]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17699121037850769131,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[158.22222222222223,332.0]],[3,[282.2222222222222,277.3333333333333]],[2,[429.33333333333326,295.1111111111111]],[1,[531.1111111111111,364.0]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[1,2],[2,3],[3,4]],"handle_primary":[[1,[0.0,0.0]],[3,[-33.333333333333286,6.666666666666686]],[2,[-56.8888888888888,-24.0]]],"handle_end":[[3,[60.0,-41.77777777777777]],[2,[33.333333333333314,-6.666666666666686]],[1,[56.8888888888888,24.0]]],"stroke":[[3,0],[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5174744389209053970,{"inputs":[{"Node":{"node_id":12385950900718181935,"output_index":0,"lambda":false}},{"Node":{"node_id":5040278174920511484,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1689789805659535712,{"inputs":[{"Node":{"node_id":15637103575662751567,"output_index":0,"lambda":false}},{"Node":{"node_id":11590691579869262546,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9778375740427894463,{"inputs":[{"Node":{"node_id":16137033772363318157,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5002654561220917457,{"inputs":[{"Node":{"node_id":11632506522064533635,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":35.0},"exposed":false}},{"Value":{"tagged_value":{"U32":206},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8699675339613677057,{"inputs":[{"Node":{"node_id":15982852655074258238,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[40.2222222222224,-10.469135802469168]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18207065424980079673,{"inputs":[{"Node":{"node_id":13035777574951374461,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2660652185019504730,{"inputs":[{"Node":{"node_id":1806828617441445250,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":8.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2959546142916532439,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[0.5,1.0]],[2,[1.0,0.5]],[1,[0.5,0.0]],[4,[0.0,0.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[4,4],[1,1]],"end_point":[[2,3],[1,2],[3,4],[4,1]],"handle_primary":[[3,[-0.275892388889507,0.0]],[2,[0.0,0.27589238888950707]],[1,[0.27589238888950707,0.0]],[4,[0.0,-0.275892388889507]]],"handle_end":[[1,[0.0,-0.275892388889507]],[2,[0.27589238888950707,0.0]],[4,[-0.275892388889507,0.0]],[3,[0.0,0.27589238888950707]]],"stroke":[[1,0],[3,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11479098559726891734,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[4,[704.5560128029263,81.29492455418381]],[9,[717.5491540923639,95.80978509373573]],[10,[712.047553726566,86.56241426611797]],[3,[686.5294924554183,63.38545953360767]],[7,[710.5648529187624,103.39887212315196]],[12,[683.3104709647919,64.0877914951989]],[5,[718.310013717421,90.01554641060812]],[2,[669.2053040695015,63.20987654320987]],[8,[709.979576284103,102.93065081542449]],[6,[717.9588477366254,99.32144490169182]],[1,[660.660265203475,61.39551897576588]],[11,[694.9574759945133,76.78829446730683]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"start_point":[[6,6],[5,5],[8,8],[2,2],[9,9],[11,11],[12,12],[1,1],[10,10],[7,7],[3,3],[4,4]],"end_point":[[1,2],[5,6],[4,5],[2,3],[8,9],[12,1],[6,7],[3,4],[9,10],[7,8],[11,12],[10,11]],"handle_primary":[[3,[3.4531321444902687,2.1655235482396193]],[10,[-4.096936442615174,-1.872885230909901]],[5,[1.1120256058526363,1.9314128943758817]],[11,[-5.618655692729931,-7.257430269775952]],[4,[8.369455875628773,2.867855509830818]],[7,[-0.585276634659408,-0.4682213077274753]],[6,[-1.9184335509834227,1.995170893022717]],[2,[5.4430727023319605,-0.6438042981252892]],[9,[0.17558299039785652,-3.5116598079561214]],[8,[0.0,0.0]],[12,[-12.8760859625055,-0.4682213077274682]],[1,[0.0,0.0]]],"handle_end":[[9,[4.0931309699032,1.8711455862415676]],[3,[-8.369455875628773,-2.867855509830818]],[11,[4.036165212980222,0.14676964410837456]],[6,[1.706505264591101,-0.4025776799149554]],[2,[-3.4853769593560173,-2.1857448728164144]],[10,[5.464020763447934,7.057693486120044]],[12,[4.9748513946045705,5.91129401005945]],[7,null],[8,[-0.17558299039785652,3.511659807956093]],[1,[-5.4430727023319605,0.6438042981252892]],[5,[2.926383173296813,-3.043438500228561]],[4,[-1.8416562954789697,-3.1986661974113133]]],"stroke":[[2,0],[6,0],[9,0],[12,0],[4,0],[5,0],[10,0],[11,0],[3,0],[8,0],[7,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":12}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6282972142629473139,{"inputs":[{"Node":{"node_id":15815816861435910950,"output_index":0,"lambda":false}},{"Node":{"node_id":15578929303912288394,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3406722917122601552,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false}],[16530658574540156160,{"inputs":[{"Node":{"node_id":11666664915283969027,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[23.70370370370381,12.641975308641918]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1167210731467447244,{"inputs":[{"Node":{"node_id":16551385471328831128,"output_index":0,"lambda":false}},{"Node":{"node_id":10432831427187785843,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4248321400839848160,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":13231685386999438557,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[907841922684377912,{"inputs":[{"Node":{"node_id":17336535036064625290,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12219771677493189964,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":5140869461760168364,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9954843247420111867,{"inputs":[{"Node":{"node_id":6988349135757634271,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.14046639231827385,0.1473642955124319]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10619788176782820865,{"inputs":[{"Node":{"node_id":2397243911096708995,"output_index":0,"lambda":false}},{"Node":{"node_id":1157261387411722141,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14285767317419627814,{"inputs":[{"Node":{"node_id":6749771744300551215,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12049041947382267086,{"inputs":[{"Node":{"node_id":2959546142916532439,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[25.77777777777777,508.44444444444446]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[8.0,8.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11573595155909211511,{"inputs":[{"Node":{"node_id":10127467043900015225,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17891208858820401648,{"inputs":[{"Node":{"node_id":1204243038352113866,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-7.407407407407391,4.740740740740762]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15949658764632267703,{"inputs":[{"Node":{"node_id":14012583111791538162,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13352561089252322209,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[612.0,1025.3333333333333]],[2,[749.7777777777777,741.7777777777778]],[3,[752.4444444444443,739.1111111111111]],[4,[615.5555555555555,1025.7777777777778]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[1,1],[2,2],[4,4]],"end_point":[[3,4],[2,3],[1,2],[4,1]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[3,[28.000000000000114,-107.55555555555544]],[2,[0.0,0.0]],[4,[-0.4444444444444571,0.0]],[1,[-112.0,179.55555555555577]]],"stroke":[[3,0],[4,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10689298484366290551,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[156.93571992954355,246.07901729349]],[3,[155.85185185185185,253.03703703703707]],[2,[151.22962962962964,252.1283950617284]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[2,2],[1,1]],"end_point":[[1,2],[3,1],[2,3]],"handle_primary":[[1,[-2.071522398679349,1.8617234472507391]],[3,[1.0949818244169762,-0.3546380887060252]],[2,[-0.4744436253241133,1.2651830008642833]]],"handle_end":[[2,[-1.0949818244169762,0.3546380887060252]],[3,[1.9215307714004553,1.0902372408288272]],[1,[0.9481481481481068,-2.5283950617284177]]],"stroke":[[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1785173043494067496,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[636.4444444444443,579.5555555555555]],[3,[712.0,519.1111111111111]],[4,[770.2222222222222,459.1111111111111]],[1,[566.6666666666666,576.0]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[3,4],[1,2],[2,3]],"handle_primary":[[2,[31.1111111111112,-17.33333333333337]],[3,[18.22222222222217,-21.777777777777715]],[1,[0.0,0.0]]],"handle_end":[[2,[-18.22222222222217,21.777777777777715]],[3,[0.0,0.0]],[1,[-31.1111111111112,17.33333333333337]]],"stroke":[[3,0],[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12554368619682347699,{"inputs":[{"Node":{"node_id":2594533001540454577,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[13261814586176172586,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"remove":[],"delta":[[14,[782.8148148148148,378.96296296296293]],[4,[858.6666666666666,268.88888888888886]],[2,[827.2592592592594,206.41975308641975]],[7,[680.4331323644109,506.0568995183343]],[3,[851.1111111111111,237.7777777777778]],[6,[775.5061728395061,429.23456790123464]],[11,[719.9999999999999,460.8395061728396]],[15,[817.4814814814815,272.2962962962963]],[10,[755.3580246913581,432.5925925925926]],[13,[736.8888888888889,432.2962962962963]],[8,[686.5302034429451,490.6109861193811]],[12,[715.8518518518517,452.14814814814815]],[5,[829.8271604938273,345.08641975308643]],[9,[758.716049382716,441.8765432098765]],[1,[799.1111111111112,188.14814814814815]],[16,[809.1851851851852,207.1111111111111]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"remove":[],"start_point":[[14,14],[9,9],[1,1],[5,5],[8,8],[11,11],[3,3],[10,10],[16,16],[6,6],[12,12],[4,4],[13,13],[15,15],[2,2],[7,7]],"end_point":[[4,5],[6,7],[3,4],[11,12],[15,16],[2,3],[1,2],[14,15],[9,10],[7,8],[5,6],[12,13],[13,14],[8,9],[16,1],[10,11]],"handle_primary":[[6,[-36.541158121167314,42.67873357730855]],[15,[5.925925925925867,-34.96296296296299]],[11,[0.0,0.0]],[2,[0.0,0.0]],[14,[20.148148148148152,-33.481481481481524]],[10,[0.0,0.0]],[16,[0.0,0.0]],[3,[9.086419753086489,9.086419753086432]],[8,[37.39536928167615,-11.787670751832536]],[13,[0.0,0.0]],[7,null],[4,[-2.5679012345678984,17.77777777777777]],[9,[0.0,0.0]],[1,[0.0,0.0]],[12,[0.0,0.0]],[5,[-31.06481223802939,48.93526760703577]]],"handle_end":[[9,[0.0,0.0]],[16,[0.0,0.0]],[8,[-11.555555555555657,17.18518518518522]],[12,[0.0,0.0]],[5,[18.3855550289378,-21.473654506216747]],[3,[2.5679012345678984,-17.77777777777777]],[13,[-20.148148148148152,33.481481481481524]],[2,[-9.086419753086489,-9.086419753086432]],[14,[-5.925925925925867,34.96296296296299]],[10,[0.0,0.0]],[1,[0.0,0.0]],[11,[0.0,0.0]],[7,null],[15,[6.51851851851859,11.851851851851848]],[4,[31.06481223802939,-48.93526760703571]],[6,[22.320987654321016,-14.222222222222342]]],"stroke":[[2,0],[1,0],[6,0],[11,0],[14,0],[13,0],[16,0],[4,0],[9,0],[5,0],[7,0],[15,0],[10,0],[12,0],[3,0],[8,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":16}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11616089678400336955,{"inputs":[{"Node":{"node_id":2660652185019504730,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.8},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[17336535036064625290,{"inputs":[{"Node":{"node_id":10421722418968896452,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[49.47996245659249,5.913900401382151]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9277405532359332,0.9277405532359332]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1621196991038859321,{"inputs":[{"Node":{"node_id":15857077552290328068,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3150436463719911922,{"inputs":[{"Node":{"node_id":18214377096178867498,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5455777299776842371,{"inputs":[{"Node":{"node_id":9470742171134780193,"output_index":0,"lambda":false}},{"Node":{"node_id":7385465194555106679,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13045580349734858212,{"inputs":[{"Node":{"node_id":10795820039540504703,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10432831427187785843,{"inputs":[{"Node":{"node_id":2087303479944421366,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14209241002058525241,{"inputs":[{"Node":{"node_id":16290933138334939444,"output_index":0,"lambda":false}},{"Node":{"node_id":10918055532782314571,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9374264173303233490,{"inputs":[{"Node":{"node_id":1713644030979611623,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8934999452649011837,{"inputs":[{"Node":{"node_id":16796171662855500935,"output_index":0,"lambda":false}},{"Node":{"node_id":16756940771483104467,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4787732047489141819,{"inputs":[{"Node":{"node_id":12062649793560663566,"output_index":0,"lambda":false}},{"Node":{"node_id":4248321400839848160,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16614450796751955858,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[3,[481.33333333333337,826.6666666666666]],[2,[757.1358024691358,661.5308641975308]],[7,[918.6666666666664,604.6666666666666]],[6,[845.3333333333333,842.0000000000001]],[4,[327.3333333333333,1024.6666666666663]],[1,[902.6666666666666,446.6666666666667]],[5,[807.3333333333334,1026.0]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[3,3],[5,5],[1,1],[2,2],[4,4],[7,7],[6,6]],"end_point":[[7,1],[5,6],[2,3],[3,4],[1,2],[4,5],[6,7]],"handle_primary":[[3,[-131.33333333333337,78.66666666666652]],[1,[0.0,0.0]],[4,[0.0,0.0]],[6,[49.4943341398548,-116.98660796692934]],[5,[0.0,0.0]],[2,[-138.41983388553547,108.26897897977506]],[7,[16.000000000000227,-89.99999999999989]]],"handle_end":[[6,[-16.71260304301461,94.00839211695676]],[7,[3.3333333333333712,32.00000000000006]],[5,[-36.66666666666663,86.66666666666652]],[2,[143.2366194125077,-85.79655375977609]],[1,[134.66666666666686,-105.33333333333326]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[2,0],[6,0],[5,0],[3,0],[7,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6666260895482068061,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[645.6821893629258,155.3850506865855]],[4,[645.3845450388659,135.9012345679012]],[1,[643.0921942512911,135.30336230847865]],[3,[646.4033730994855,154.80329633678198]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[2,2],[4,4],[3,3]],"end_point":[[4,1],[2,3],[1,2],[3,4]],"handle_primary":[[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[-0.2558402858584259,-10.083527774255913]],[1,[0.0,0.0]]],"handle_end":[[4,[1.68322954928135,-0.022087435068414152]],[2,[-0.3446760851414865,0.611494768909921]],[3,[0.0,0.0]],[1,[-0.05703059647760256,-13.444628325495556]]],"stroke":[[3,0],[1,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7893851488963635918,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[125.0,420.0]],[2,[24.0,486.0]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[23.0,-70.0]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3802858053991775169,{"inputs":[{"Node":{"node_id":11058365317860779469,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":25.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11199691961479466803,{"inputs":[{"Node":{"node_id":7141088190930752823,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[7141088190930752823,{"inputs":[{"Node":{"node_id":541002100261582638,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18319784717194273926,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[8,[706.6666666666666,687.5555555555554]],[5,[418.2222222222222,754.6666666666666]],[3,[167.0,691.0]],[6,[443.1111111111111,783.1111111111111]],[12,[437.99999999999994,690.0]],[9,[828.0,570.2222222222221]],[1,[172.22222222222217,564.7777777777779]],[11,[595.0,690.0]],[10,[610.6666666666666,712.4444444444443]],[2,[150.22222222222223,568.4444444444445]],[7,[558.6666666666666,749.7777777777778]],[4,[574.6666666666666,712.4444444444443]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"start_point":[[9,9],[7,7],[4,4],[11,11],[3,3],[1,1],[8,8],[2,2],[10,10],[6,6],[5,5],[12,12]],"end_point":[[11,12],[7,8],[6,7],[9,10],[3,4],[5,6],[8,9],[4,5],[12,1],[1,2],[2,3],[10,11]],"handle_primary":[[9,[0.0,0.0]],[12,[-98.22222222222224,-28.0]],[2,[18.111111111111057,85.22222222222229]],[6,[0.0,0.0]],[7,[32.888888888888914,-13.333333333333483]],[4,[0.0,0.0]],[1,[0.0,0.0]],[5,[0.0,0.0]],[11,[0.0,0.0]],[8,[60.44444444444446,-39.55555555555566]],[10,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[5,[-18.66666666666663,-4.888888888888914]],[12,[161.33333333333337,34.66666666666674]],[2,null],[3,[-128.44444444444446,26.22222222222217]],[6,[-32.888888888888914,13.333333333333483]],[1,null],[11,[98.22222222222224,28.0]],[8,[0.0,0.0]],[4,[54.22222222222223,-9.333333333333371]],[10,[-1.3333333333333712,21.77777777777783]],[7,[-60.44444444444446,39.55555555555566]],[9,[145.77777777777771,-61.777777777777715]]],"stroke":[[11,0],[3,0],[2,0],[6,0],[1,0],[5,0],[7,0],[9,0],[8,0],[12,0],[4,0],[10,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":12}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4479074488343511985,{"inputs":[{"Node":{"node_id":11479098559726891734,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6156863,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6156863,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16137033772363318157,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[720.417009602195,178.00603566529497]],[3,[720.1360768175583,181.58792866941016]],[1,[688.566255144033,175.3371742112483]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[2,2],[1,1]],"end_point":[[1,2],[2,3],[3,1]],"handle_primary":[[1,[29.423007364946784,-0.024697364703285984]],[2,[1.8041152263373303,2.00164609053499]],[3,[-1.1237311385458495,-3.125377229080982]]],"handle_end":[[2,null],[1,null],[3,[12.04499314128941,0.8076817558298615]]],"stroke":[[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3170924135668664007,{"inputs":[{"Node":{"node_id":4787732047489141819,"output_index":0,"lambda":false}},{"Node":{"node_id":13444661581815146533,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16051539163551573193,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[2,[609.7777777777777,896.0]],[4,[519.1111111111111,1026.2222222222222]],[5,[588.0,930.6666666666666]],[3,[514.6666666666666,1025.7777777777778]],[1,[708.0000000000001,769.3333333333333]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[2,2],[3,3],[1,1],[5,5],[4,4]],"end_point":[[1,2],[4,5],[2,3],[5,1],[3,4]],"handle_primary":[[3,[0.0,0.0]],[5,[24.0,-29.77777777777783]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[-54.66666666666663,69.33333333333314]]],"handle_end":[[1,[54.66666666666663,-69.33333333333326]],[5,[-28.44444444444457,47.111111111111086]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[-24.0,29.777777777777715]]],"stroke":[[3,0],[5,0],[1,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6292009934909381201,{"inputs":[{"Node":{"node_id":10424806499648491677,"output_index":0,"lambda":false}},{"Node":{"node_id":9778375740427894463,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1204243038352113866,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[837.3333333333334,653.6296296296296]],[1,[808.8888888888889,832.2962962962965]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[1,2],[2,1]],"handle_primary":[[2,[-26.22222222222217,80.29629629629608]],[1,[0.0,0.0]]],"handle_end":[[2,[0.0,-0.4444444444443434]],[1,[-22.22222222222217,79.40740740740739]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12062649793560663566,{"inputs":[{"Node":{"node_id":5455777299776842371,"output_index":0,"lambda":false}},{"Node":{"node_id":8934999452649011837,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17494926338451345058,{"inputs":[{"Node":{"node_id":1167210731467447244,"output_index":0,"lambda":false}},{"Node":{"node_id":9529195152569434392,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14098374807212007572,{"inputs":[{"Node":{"node_id":17494926338451345058,"output_index":0,"lambda":false}},{"Node":{"node_id":10336592647221792772,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4572557574846980832,{"inputs":[{"Node":{"node_id":13014916927589286309,"output_index":0,"lambda":false}},{"Node":{"node_id":4332145463108161926,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}},{"Value":{"tagged_value":{"F64":30.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-60.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[3992858139802231032,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[635.8445358939186,153.225422953818]],[4,[645.384545038866,135.90123456790124]],[3,[648.9547325102881,151.8792866941015]],[1,[634.615454961134,135.08184727937814]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[3,3],[1,1]],"end_point":[[1,2],[2,3],[3,4],[4,1]],"handle_primary":[[2,[6.203932327389111,7.491540923639718]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[1.8143575674440624,-2.575217192501128]]],"handle_end":[[1,[-6.203932327389111,-7.491540923639718]],[3,[6.730681298582454,7.257430269775966]],[2,[-1.8143575674440624,2.575217192501128]],[4,[9.247370827617717,-0.3511659807956278]]],"stroke":[[3,0],[2,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8091904580702893317,{"inputs":[{"Node":{"node_id":15446793500614592278,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15492651270767932214,{"inputs":[{"Node":{"node_id":6580280438672662494,"output_index":0,"lambda":false}},{"Node":{"node_id":2698266912167150713,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10918055532782314571,{"inputs":[{"Node":{"node_id":7447657690776686262,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[18067513817508158001,{"inputs":[{"Node":{"node_id":16649851742084147477,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1661691009086487874,{"inputs":[{"Node":{"node_id":14797986717815207528,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14029368390543839187,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[808.0,413.33333333333337]],[1,[604.8888888888889,523.5555555555557]],[2,[668.4444444444445,516.4444444444443]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[23.1111111111112,-9.7777777777776]]],"handle_end":[[1,[-23.1111111111112,9.7777777777776]],[2,[-59.111111111111086,58.22222222222223]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15896921950407486754,{"inputs":[{"Node":{"node_id":13163272246010991228,"output_index":0,"lambda":false}},{"Node":{"node_id":11199691961479466803,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15466714490303763249,{"inputs":[{"Node":{"node_id":10514847656270897393,"output_index":0,"lambda":false}},{"Node":{"node_id":11659756061767599421,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2659768650911099730,{"inputs":[{"Node":{"node_id":13045087323693407920,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":6.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12224498203743157414,{"inputs":[{"Node":{"node_id":2878992817082507910,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13045087323693407920,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[19.0,494.0]],[2,[227.0,496.0]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-98.0,-55.0]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8240895922641772563,{"inputs":[{"Node":{"node_id":16530658574540156160,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13644138583806412631,{"inputs":[{"Node":{"node_id":2641530639940889619,"output_index":0,"lambda":false}},{"Node":{"node_id":12473080738469616517,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11021243031011826737,{"inputs":[{"Node":{"node_id":16446146761452576438,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17064046832210629373,{"inputs":[{"Node":{"node_id":12219771677493189964,"output_index":0,"lambda":false}},{"Node":{"node_id":11677503666435782605,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10420981328998103391,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[859.5555555555554,375.1111111111111]],[3,[694.2222222222222,623.5555555555554]],[2,[844.4444444444443,460.44444444444434]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,3]],"handle_primary":[[2,[-11.999999999999886,30.6666666666668]],[1,[0.0,0.0]]],"handle_end":[[2,[76.88888888888891,-30.666666666666742]],[1,[11.055745483535702,-28.253571791258253]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15460109068588328521,{"inputs":[{"Node":{"node_id":5185036609290210853,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9019608,"green":0.8,"blue":0.6,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9019608,"green":0.8,"blue":0.6,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17815494794630739611,{"inputs":[{"Node":{"node_id":14079496619264986678,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4131094614457622424,{"inputs":[{"Node":{"node_id":11356586238302409958,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10860592954464951000,{"inputs":[{"Node":{"node_id":4236845268521674740,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12387541320114693418,{"inputs":[{"Node":{"node_id":5471152581000334146,"output_index":0,"lambda":false}},{"Node":{"node_id":15460109068588328521,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9182448229950585507,{"inputs":[{"Node":{"node_id":12496143061817048445,"output_index":0,"lambda":false}},{"Node":{"node_id":7320676248579211727,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[431994205232245356,{"inputs":[{"Node":{"node_id":12387541320114693418,"output_index":0,"lambda":false}},{"Node":{"node_id":14894569344576297448,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12594527670567285670,{"inputs":[{"Node":{"node_id":4663768795652429571,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14345191642063772510,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[833.7777777777777,780.4444444444443]],[4,[838.2222222222222,766.6666666666669]],[3,[813.3557395833334,961.1454375]],[1,[880.8888888888888,556.4444444444443]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[3,3],[4,4],[1,1]],"end_point":[[4,1],[1,2],[3,4],[2,3]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[-9.333333333333371,54.66666666666674]],[4,[10.643023589139377,-58.51588472312813]]],"handle_end":[[1,[9.333333333333371,-54.66666666666674]],[2,[0.0,0.0]],[4,[-0.4444444444444571,-0.8888888888888005]],[3,[-10.643023589139377,58.51588472312813]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12531351117929704587,{"inputs":[{"Node":{"node_id":11194653561109699287,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12801133692316734622,{"inputs":[{"Node":{"node_id":17699121037850769131,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12385950900718181935,{"inputs":[{"Node":{"node_id":4372998635946271235,"output_index":0,"lambda":false}},{"Node":{"node_id":615144098061106242,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1713644030979611623,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[321.33333333333326,1022.0]],[1,[404.0,882.6666666666666]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[30.96296296296316,-100.2222222222224]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3649809135741361946,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[841.3333333333333,336.8888888888889]],[1,[787.1111111111111,414.66666666666663]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-21.333333333333258,48.888888888888914]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5213978458941436169,{"inputs":[{"Node":{"node_id":13261814586176172586,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":7.0},"exposed":false}},{"Value":{"tagged_value":{"U32":10},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4663768795652429571,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[710.8379820149368,102.96966925773508]],[6,[706.633744855967,98.10699588477364]],[1,[691.7530864197531,86.91358024691357]],[2,[696.6255144032922,96.92181069958846]],[4,[713.0620332266423,107.3007163542143]],[3,[708.8285322359397,101.48696844993144]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[4,4],[5,5],[2,2],[1,1],[6,6]],"end_point":[[2,3],[1,2],[6,1],[3,4],[5,6],[4,5]],"handle_primary":[[2,[6.057613168724288,1.9753086419753032]],[3,[1.7753391251332005,4.7992684042066]],[6,[-6.847736625514244,-2.3703703703703525]],[4,[0.0,0.0]],[1,[0.0,0.0]],[5,[-0.8974241731443726,-2.770309404054231]]],"handle_end":[[6,[1.1851851851849915,8.823045267489718]],[5,[2.9051419934493197,1.005626074655538]],[1,[-6.057613168724288,-1.9753086419753032]],[2,[-0.7886938944185431,-2.1320736046921525]],[4,[0.786301337230384,2.4272780410153985]],[3,[-0.9218106995884908,-0.3950617283950635]]],"stroke":[[1,0],[5,0],[6,0],[4,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10599660455959346550,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[572.0,570.2222222222222]],[3,[654.6666666666666,546.6666666666666]],[4,[745.3333333333333,471.55555555555554]],[1,[478.2222222222222,515.1111111111111]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[2,2],[1,1]],"end_point":[[2,3],[1,2],[3,4]],"handle_primary":[[2,[31.555555555555543,7.555555555555543]],[3,[26.222222222222285,-16.0]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[-26.222222222222285,16.0]],[1,[-31.555555555555543,-7.555555555555543]]],"stroke":[[3,0],[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16756940771483104467,{"inputs":[{"Node":{"node_id":13975451746581400000,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17207895962122263432,{"inputs":[{"Node":{"node_id":11573595155909211511,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[2175432926627256613,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14982414026754548178,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17945736750161448391,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[687.6968543916372,70.6398816184091]],[3,[687.4660700953133,94.52064202140812]],[2,[688.3433248095167,92.67923984990472]],[1,[689.4327280262556,73.68042956754955]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[1,1],[2,2]],"end_point":[[3,4],[4,1],[1,2],[2,3]],"handle_primary":[[3,[-0.975596082205584,-10.16276974584038]],[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[-1.460603632035259,12.298077567102167]]],"handle_end":[[4,[-0.3670368206467174,-1.6914035044494111]],[1,null],[2,[0.6631784948407358,-0.4471776104951459]],[3,[0.0,0.0]]],"stroke":[[3,0],[1,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16324258033206362312,{"inputs":[{"Node":{"node_id":16732130236852371275,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[14079496619264986678,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[597.2345679012346,77.92592592592592]],[3,[609.2839506172841,76.74074074074073]],[2,[608.9876543209878,75.25925925925925]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[1,1],[3,3]],"end_point":[[1,2],[2,3],[3,1]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[8.09876543209873,0.2962962962962763]],[1,[-6.222222222222172,-0.9876543209876588]],[2,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10253927692147706615,{"inputs":[{"Node":{"node_id":7262199696924786895,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[9529195152569434392,{"inputs":[{"Node":{"node_id":3121275823460307102,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[12876462860151722087,{"inputs":[{"Node":{"node_id":10619788176782820865,"output_index":0,"lambda":false}},{"Node":{"node_id":10415872992231003638,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11268046366284173800,{"inputs":[{"Node":{"node_id":4453139144069993994,"output_index":0,"lambda":false}},{"Node":{"node_id":11616089678400336955,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15303587427289959766,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[818.2222222222222,566.2222222222222]],[1,[610.6666666666666,706.6666666666666]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-82.66666666666674,97.77777777777771]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12761901161949743155,{"inputs":[{"Node":{"node_id":7659717355245331967,"output_index":0,"lambda":false}},{"Node":{"node_id":8091904580702893317,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14887821801874852671,{"inputs":[{"Node":{"node_id":8230694129617719636,"output_index":0,"lambda":false}},{"Node":{"node_id":18279507457571359732,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6416452251137958677,{"inputs":[{"Node":{"node_id":9374264173303233490,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[11194653561109699287,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[623.4951989026065,81.23639689071788]],[4,[605.761316872428,82.28989483310471]],[5,[602.0316509633005,90.5516059992284]],[1,[604.3716161316235,95.4260819221956]],[2,[607.4000914494741,86.85505258344766]],[6,[603.4567901234567,92.83950617283948]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[5,5],[3,3],[6,6],[4,4],[1,1]],"end_point":[[2,3],[1,2],[5,6],[6,1],[4,5],[3,4]],"handle_primary":[[1,[0.0,0.0]],[6,[0.3965701826469967,0.8240731861035471]],[3,[-0.7803688462123546,-2.7117817405883216]],[4,[-3.2460274482192517,2.85650415443304]],[5,[0.0,0.0]],[2,[3.687242798354191,-3.4531321444901835]]],"handle_end":[[2,[-1.0144795000761633,1.6192653558908745]],[4,[-0.10095077423932251,-1.27829797882373]],[5,[-0.3896135191956773,-0.8096172333722365]],[3,[4.389574759945049,-3.862825788751721]],[1,[-3.3249738510837687,3.113864400221118]],[6,[-2.273736754432321e-13,-4.263256414560601e-14]]],"stroke":[[5,0],[2,0],[4,0],[6,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7747398671834040298,{"inputs":[{"Node":{"node_id":18319784717194273926,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":30.0},"exposed":false}},{"Value":{"tagged_value":{"U32":47},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1869448627329502330,{"inputs":[{"Node":{"node_id":3827449344952693766,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[16796171662855500935,{"inputs":[{"Node":{"node_id":14993053984267866751,"output_index":0,"lambda":false}},{"Node":{"node_id":9371909264427723282,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14012648643507848353,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[613.6098765432099,30.393415637860084]],[2,[613.7152263374486,29.076543209876547]],[1,[610.080658436214,28.760493827160495]],[3,[615.7168724279835,33.05349794238683]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[1,1],[2,2]],"end_point":[[2,3],[1,2],[4,1],[3,4]],"handle_primary":[[1,[0.0,0.0]],[4,[-1.3168724279836397,-1.343209876543213]],[2,[1.5990193552247547,1.4582133097558128]],[3,[0.0,0.0]]],"handle_end":[[4,[0.05267489711934559,0.02633744855966924]],[2,[-0.05267489711934559,-0.9218106995884768]],[3,[0.7962610294339356,0.812186250022549]],[1,[-1.447323438899616,-1.3198753943965968]]],"stroke":[[3,0],[1,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7525593029671097583,{"inputs":[{"Node":{"node_id":16175421708184657649,"output_index":0,"lambda":false}},{"Node":{"node_id":15735375935164094402,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14894569344576297448,{"inputs":[{"Node":{"node_id":5555007473125503522,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15578929303912288394,{"inputs":[{"Node":{"node_id":10770443343193024138,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[10133176481349663495,{"inputs":[{"Node":{"node_id":12876462860151722087,"output_index":0,"lambda":false}},{"Node":{"node_id":11021243031011826737,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4332145463108161926,{"inputs":[{"Node":{"node_id":3406722917122601552,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9740500978584792725,{"inputs":[{"Node":{"node_id":14946189826912398678,"output_index":0,"lambda":false}},{"Node":{"node_id":10586744777717861556,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10421722418968896452,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[683.3689986282578,99.49702789208962]],[3,[691.7384545038866,78.07590306355738]],[1,[677.8673982624599,66.19478737997257]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[3,1],[2,3],[1,2]],"handle_primary":[[2,[0.34676700844204333,0.512429191350904]],[1,[-0.49434169374126213,0.7369041683249975]],[3,[0.12630166293718048,-1.7247569518707309]]],"handle_end":[[3,[5.6142033131263815,-8.368968014727507]],[1,[-7.636184307015128,-11.284244620129414]],[2,[-1.4537474229852023,19.852161212683583]]],"stroke":[[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16551385471328831128,{"inputs":[{"Node":{"node_id":14991324592500870173,"output_index":0,"lambda":false}},{"Node":{"node_id":17207349373429328029,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6532401937876437300,{"inputs":[{"Node":{"node_id":3992858139802231032,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3971837674569123876,{"inputs":[{"Node":{"node_id":4131094614457622424,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":3.3528},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[6988349135757634271,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[184.5962505715592,263.55006858710567]],[1,[189.14614932392712,263.9984322947286]],[3,[183.0891632373113,268.771154223006]],[2,[188.0493827160494,269.116049382716]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[1,1],[2,2]],"end_point":[[1,2],[2,3],[4,1],[3,4]],"handle_primary":[[4,[1.697261300324044,-1.9917992948792855]],[1,[1.552958476004363,1.9059035841873424]],[3,[-0.9800640224909783,-1.3570273385153655]],[2,[-1.9972565157751203,0.9588085439937686]]],"handle_end":[[1,[3.459421910557637,-1.6607397492127802]],[2,[1.0091841400482906,1.3973479652491392]],[3,[-1.5959762231368018,1.872937487752267]],[4,[-1.464617942413156,-1.7974856565980986]]],"stroke":[[1,0],[3,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1384427686127078856,{"inputs":[{"Node":{"node_id":17064046832210629373,"output_index":0,"lambda":false}},{"Node":{"node_id":17529660518597229229,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14057307926677215422,{"inputs":[{"Node":{"node_id":5861306074868809692,"output_index":0,"lambda":false}},{"Node":{"node_id":7450965328305122110,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4832236468224231783,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[369.77777777777777,381.7777777777778]],[1,[232.44444444444443,332.8888888888889]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-73.77777777777777,-53.77777777777777]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14991324592500870173,{"inputs":[{"Node":{"node_id":542361600097372754,"output_index":0,"lambda":false}},{"Node":{"node_id":10860592954464951000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11630078441485655672,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[760.6913580246915,657.5802469135803]],[2,[751.4074074074075,685.0370370370371]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[1,2],[2,1]],"handle_primary":[[1,[0.0,0.0]],[2,[4.543209876543187,-10.271604938271594]]],"handle_end":[[1,[7.111111111110972,-8.44444444444457]],[2,null]],"stroke":[[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3970516859959908758,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[49.77777777777773,636.148148148148]],[2,[78.22222222222219,579.2592592592591]],[3,[170.96296296296293,544.5925925925925]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[27.259259259259252,-24.88888888888891]]],"handle_end":[[1,[-27.259259259259267,24.88888888888891]],[2,[-21.62962962962962,-2.0740740740740193]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13302269488061286120,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[565.3333333333335,756.6666666666666]],[1,[262.66666666666674,903.3333333333331]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-200.66666666666652,64.66666666666663]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1889157037801767612,{"inputs":[{"Node":{"node_id":17324767436949538365,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":30.0},"exposed":false}},{"Value":{"tagged_value":{"U32":18},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10270446074640675342,{"inputs":[{"Node":{"node_id":14883504161508594099,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4078100635676202528,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"remove":[],"delta":[[18,[621.2740740740741,37.21481481481481]],[13,[707.0814814814814,53.33333333333333]],[5,[653.9851851851852,38.99259259259259]],[23,[608.5794238683127,44.82633744855967]],[6,[676.2666666666667,48.47407407407407]],[9,[642.4888888888889,44.44444444444444]],[26,[607.3152263374486,46.38024691358025]],[14,[698.3111111111111,43.61481481481481]],[22,[607.6312757201646,47.64444444444445]],[21,[605.3925925925926,49.42222222222222]],[8,[667.2592592592594,52.029629629629625]],[7,[684.4444444444445,46.1037037037037]],[19,[613.4518518518519,26.429629629629623]],[20,[601.2444444444444,36.859259259259254]],[1,[606.3407407407408,47.76296296296296]],[3,[613.4518518518519,35.43703703703703]],[11,[665.4814814814815,56.05925925925925]],[15,[677.925925925926,46.222222222222214]],[2,[603.4962962962964,36.977777777777774]],[24,[605.998353909465,33.79094650205761]],[16,[661.0962962962963,35.792592592592584]],[12,[683.3777777777777,50.48888888888889]],[17,[639.762962962963,37.45185185185185]],[4,[627.9111111111112,43.73333333333333]],[25,[604.6288065843622,39.321810699588475]],[10,[653.1555555555556,49.89629629629629]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"remove":[],"start_point":[[3,3],[12,12],[9,9],[22,22],[13,13],[26,26],[5,5],[18,18],[4,4],[19,19],[14,14],[10,10],[7,7],[16,16],[6,6],[21,21],[8,8],[11,11],[1,1],[24,24],[2,2],[20,20],[15,15],[17,17],[23,23],[25,25]],"end_point":[[8,9],[6,7],[16,17],[23,24],[2,3],[10,11],[18,19],[5,6],[21,22],[9,10],[13,14],[22,23],[11,12],[20,21],[25,26],[15,16],[24,25],[7,8],[4,5],[14,15],[26,1],[1,2],[12,13],[3,4],[17,18],[19,20]],"handle_primary":[[10,[2.251851851851825,2.2518518518518533]],[22,[0.0,0.0]],[11,[3.318518518518431,-0.11851851851851336]],[19,[-3.3185185185185446,-1.1851851851851831]],[12,[6.9925925925927,-4.740740740740748]],[13,[0.0,0.0]],[8,[-10.666666666666629,-0.7111111111111157]],[3,[2.9629629629629335,4.385185185185186]],[24,[0.0,0.0]],[6,[4.5037037037037635,1.1851851851851831]],[20,[-1.5407407407407163,8.651851851851852]],[7,[0.0,0.0]],[4,[6.992592592592587,-0.23703703703703383]],[21,[0.0,0.0]],[5,[10.311111111111131,0.5925925925925952]],[23,[-2.2123456790121736,-2.3967078189300537]],[14,[-10.90370370370374,-2.6074074074074076]],[17,[-6.992592592592587,2.962962962962962]],[18,[-3.437037037037044,-4.148148148148145]],[1,[0.0,0.0]],[15,[-2.844444444444548,-0.829629629629629]],[9,[0.0,0.0]],[26,[0.0,0.0]],[16,[-5.214814814814758,-1.3037037037037038]],[2,[2.1333333333333258,-5.68888888888889]],[25,[0.18814026836287212,2.510418336797158]]],"handle_end":[[21,[0.0,0.0]],[15,[5.214814814814758,1.3037037037037038]],[17,[3.437037037037044,4.148148148148145]],[10,[-3.318518518518431,0.11851851851851336]],[11,[-6.9925925925927,4.740740740740748]],[26,[0.0,0.0]],[16,[6.992592592592587,-2.962962962962962]],[22,null],[25,[0.0,0.0]],[8,[9.36296296296291,-2.4888888888888943]],[5,[-4.5037037037037635,-1.1851851851851904]],[2,[-2.9629629629629335,-4.385185185185186]],[20,[0.0,0.0]],[18,[3.3185185185185446,1.1851851851851831]],[4,[-10.311111111111131,-0.5925925925925952]],[23,[0.0,0.0]],[14,[2.844444444444548,0.829629629629629]],[12,[-3.0814814814815463,-9.48148148148148]],[19,[1.5407407407407163,-8.651851851851855]],[24,[-0.13898543393838736,-1.8545289902200464]],[7,[10.666666666666629,0.7111111111111086]],[13,[10.90370370370374,2.6074074074074076]],[6,[0.0,0.0]],[9,[-2.251851851851825,-2.2518518518518533]],[3,[-6.992592592592587,0.23703703703703383]],[1,[-2.1333333333333258,5.68888888888889]]],"stroke":[[17,0],[12,0],[9,0],[24,0],[15,0],[13,0],[18,0],[5,0],[3,0],[21,0],[14,0],[26,0],[22,0],[8,0],[10,0],[2,0],[20,0],[25,0],[19,0],[4,0],[7,0],[23,0],[6,0],[1,0],[11,0],[16,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":26}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2422139482859833437,{"inputs":[{"Node":{"node_id":14537754528543289381,"output_index":0,"lambda":false}},{"Node":{"node_id":172538270105470471,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4372998635946271235,{"inputs":[{"Node":{"node_id":13481022631108980683,"output_index":0,"lambda":false}},{"Node":{"node_id":2126710823743005151,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[542361600097372754,{"inputs":[{"Node":{"node_id":17971411534648521628,"output_index":0,"lambda":false}},{"Node":{"node_id":6867142265138950838,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14888395629683671889,{"inputs":[{"Node":{"node_id":4341772758799935306,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[2698266912167150713,{"inputs":[{"Node":{"node_id":3165571685352930240,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17324767436949538365,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[2,[362.22222222222223,512.0]],[4,[150.22222222222223,429.3333333333333]],[6,[289.7777777777778,503.1111111111111]],[5,[119.1111111111111,456.44444444444446]],[1,[503.11111111111114,614.6666666666666]],[3,[158.66666666666669,419.55555555555554]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[6,6],[2,2],[4,4],[5,5],[3,3],[1,1]],"end_point":[[4,5],[6,1],[3,4],[1,2],[5,6],[2,3]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[5,[0.0,0.0]],[2,[-52.888888888888914,-48.44444444444446]],[6,[89.85096850895411,61.20347364650138]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[6,[0.8888888888888005,-0.4444444444444571]],[2,[76.0,-1.7777777777777717]],[5,[-89.85096850895414,-61.20347364650138]],[1,[52.888888888888914,48.44444444444446]],[4,[7.1111111111111,-35.55555555555554]]],"stroke":[[5,0],[3,0],[2,0],[6,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1659518581611333812,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"remove":[],"delta":[[7,[773.7942386831274,177.119341563786]],[6,[812.2469135802468,182.5185185185185]],[5,[838.3209876543208,205.6954732510288]],[17,[866.172839506173,375.11111111111114]],[11,[865.1851851851853,248.6255144032922]],[8,[809.349794238683,192.0]],[15,[872.9108367626887,333.08093278463645]],[9,[838.4526748971191,213.46502057613168]],[16,[854.5185185185187,346.46913580246917]],[3,[917.991769547325,333.4320987654321]],[10,[856.2304526748969,234.40329218106996]],[12,[858.1618655692731,310.6063100137174]],[1,[889.8106995884773,368.4609053497942]],[2,[913.2510288065844,355.55555555555554]],[14,[885.9039780521264,331.0617283950617]],[13,[872.1207133058986,331.2373113854595]],[4,[869.1358024691356,247.17695473251027]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"remove":[],"start_point":[[5,5],[6,6],[12,12],[16,16],[1,1],[10,10],[17,17],[2,2],[7,7],[3,3],[13,13],[15,15],[9,9],[4,4],[14,14],[8,8],[11,11]],"end_point":[[12,13],[6,7],[1,2],[10,11],[16,17],[2,3],[11,12],[3,4],[17,1],[13,14],[4,5],[9,10],[5,6],[15,16],[8,9],[7,8],[14,15]],"handle_primary":[[7,[6.584362139917744,1.0534979423868265]],[2,[7.637860082304428,-3.423868312757179]],[14,[-5.267489711934104,0.0]],[11,[1.9314128943758533,32.395061728395035]],[12,[6.935528120713343,13.080932784636502]],[9,[6.189300411522595,6.97942386831275]],[17,[4.279835390946232,0.32921810699582466]],[8,[14.748971193415628,7.242798353909478]],[5,[-6.320987654321016,-8.164609053497912]],[3,[-10.72985850116538,-29.20905925317203]],[6,[-10.930041152263357,-4.213991769547334]],[13,[7.111111111111086,-2.72153635116598]],[1,[9.349794238683105,-4.213991769547306]],[15,[-5.267489711934104,1.4924554183813257]],[16,[0.0,0.0]],[4,[-8.03292181069969,-10.008230452674894]],[10,[7.506172839506121,6.452674897119351]]],"handle_end":[[15,[0.0,0.0]],[5,[10.930041152263357,4.213991769547334]],[2,[7.1111111111111995,19.35802469135808]],[10,[0.0,0.0]],[8,[-6.189300411522595,-6.97942386831275]],[6,[0.0,0.0]],[14,[5.267489711934104,-1.4924554183813257]],[3,[8.03292181069969,10.008230452674894]],[9,[-7.506172839506121,-6.452674897119351]],[17,[-9.349794238683105,4.213991769547306]],[12,[0.0,0.0]],[13,[0.0,0.0]],[4,[6.320987654321016,8.164609053497912]],[11,[0.0,0.0]],[16,[-8.098765432098958,-2.1728395061728634]],[1,[-7.637860082304542,3.423868312757179]],[7,[-14.748971193415628,-7.242798353909478]]],"stroke":[[6,0],[8,0],[9,0],[14,0],[15,0],[13,0],[7,0],[11,0],[4,0],[3,0],[16,0],[10,0],[1,0],[2,0],[5,0],[17,0],[12,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":17}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11481949351661484921,{"inputs":[{"Node":{"node_id":15303587427289959766,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4105711298139980122,{"inputs":[{"Node":{"node_id":1162381870526064378,"output_index":0,"lambda":false}},{"Node":{"node_id":1272070255512697108,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4422453582814483232,{"inputs":[{"Node":{"node_id":4577638792388493935,"output_index":0,"lambda":false}},{"Node":{"node_id":431994205232245356,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14817659161913199655,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[725.3333333333333,985.7777777777776]],[3,[726.8148148148148,1023.9999999999998]],[1,[796.148148148148,723.8518518518517]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[3,1],[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[1,[9.777777777777828,-73.18518518518522]],[2,[0.0,0.0]],[3,[-75.55555555555566,240.59259259259304]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7466034304713056391,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[635.5072483424783,152.80078149291265]],[3,[636.4372010299622,153.9035515500083]],[4,[637.4252384335797,135.01742888696126]],[1,[635.2478000597847,135.0597939750059]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1]],"end_point":[[2,3],[3,4],[1,2],[4,1]],"handle_primary":[[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[1.020097146128478,-12.422679731687992]]],"handle_end":[[1,[0.4153244360613826,-11.397946559213551]],[3,null],[2,[-0.5579820762119425,-0.504231587867622]],[4,[1.1169817316086892,-0.21205734949143107]]],"stroke":[[3,0],[2,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11632506522064533635,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[1,[40.66666666666663,1022.6666666666666]],[2,[113.33333333333331,859.3333333333333]],[5,[336.66666666666663,799.3333333333334]],[7,[145.33333333333331,1022.6666666666666]],[4,[397.3333333333333,770.6666666666666]],[6,[208.0,903.0]],[3,[299.33333333333326,775.3333333333333]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[5,5],[1,1],[3,3],[2,2],[7,7],[6,6],[4,4]],"end_point":[[7,1],[1,2],[6,7],[4,5],[2,3],[3,4],[5,6]],"handle_primary":[[2,[58.666666666666686,-57.33333333333326]],[7,[0.0,0.0]],[3,[65.33333333333337,-6.0]],[5,[-40.66666666666663,12.0]],[1,[0.0,0.0]],[4,[0.0,0.0]],[6,[0.0,0.0]]],"handle_end":[[7,[0.0,1.3333333333333712]],[4,[40.66666666666663,-12.0]],[1,[-58.666666666666686,57.333333333333144]],[3,[0.0,0.0]],[6,[18.00000000000003,-55.33333333333326]],[5,[35.666666666666686,-46.66666666666674]],[2,[-65.33333333333337,6.0]]],"stroke":[[1,0],[3,0],[6,0],[5,0],[7,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10928540355449103287,{"inputs":[{"Node":{"node_id":18190631752493248867,"output_index":0,"lambda":false}},{"Node":{"node_id":12554368619682347699,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[172538270105470471,{"inputs":[{"Node":{"node_id":9276497172451351253,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[8766106989344197438,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[6,[184.49382716049385,218.2716049382716]],[5,[155.85185185185185,211.55555555555557]],[1,[197.33333333333337,212.5432098765432]],[2,[172.64197530864195,208.98765432098767]],[4,[146.5679012345679,204.44444444444449]],[3,[153.58712172411558,204.8434307274338]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[6,6],[1,1],[5,5],[4,4],[3,3]],"end_point":[[6,1],[3,4],[5,6],[1,2],[2,3],[4,5]],"handle_primary":[[1,[0.0,0.0]],[2,[-7.703703703703667,-1.1851851851851904]],[6,[3.160493827160479,-0.9876543209876444]],[3,[-5.834035304362487,0.7861989021958493]],[5,[8.493827160493822,2.3703703703703525]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[7.703703703703724,1.1851851851852189]],[6,[-3.160493827160479,1.9753086419753456]],[2,[5.834035304362487,-0.7861989021958493]],[5,[-3.1604938271605363,0.9876543209877012]],[4,[-8.493827160493794,-2.370370370370381]]],"stroke":[[5,0],[4,0],[2,0],[3,0],[6,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7505360855062237520,{"inputs":[{"Node":{"node_id":17945736750161448391,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[10415872992231003638,{"inputs":[{"Node":{"node_id":8375495949882478840,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14831840560430171946,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[791.5555555555555,1026.6666666666663]],[4,[893.7613168724276,509.6296296296296]],[5,[833.4814814814815,746.3703703703703]],[2,[831.5555555555555,737.3333333333334]],[6,[793.7777777777777,1027.2592592592591]],[3,[889.7777777777777,516.8888888888889]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[4,4],[3,3],[5,5],[6,6],[1,1],[2,2]],"end_point":[[4,5],[6,1],[1,2],[5,6],[2,3],[3,4]],"handle_primary":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[19.555555555555543,-74.66666666666674]],[5,[-24.0,92.44444444444446]],[6,[0.0,0.0]]],"handle_end":[[2,[-22.22222222222217,89.77777777777783]],[6,[-0.14814814814815236,0.29629629629675946]],[5,[0.0,0.0]],[1,[-26.4188207246807,100.8718609487812]],[4,[24.0,-92.44444444444446]],[3,[0.0,0.0]]],"stroke":[[1,0],[3,0],[5,0],[2,0],[4,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9470742171134780193,{"inputs":[{"Node":{"node_id":15126865253122550765,"output_index":0,"lambda":false}},{"Node":{"node_id":10270446074640675342,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10795820039540504703,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"delta":[[15,[432.1308820290171,20.740740740740748]],[4,[604.4444444444445,138.96296296296293]],[9,[418.074074074074,116.14814814814814]],[3,[590.2222222222222,113.18518518518518]],[8,[447.7037037037037,131.25925925925924]],[5,[574.5185185185185,169.18518518518516]],[7,[485.6296296296296,153.48148148148147]],[11,[350.8679463145693,59.25925925925925]],[14,[418.0913936876638,12.121582398270874]],[10,[396.14814814814815,88.29629629629629]],[2,[591.1111111111111,92.44444444444444]],[19,[540.4444444444445,70.22222222222221]],[6,[518.2222222222222,175.7037037037037]],[1,[569.1851851851852,61.629629629629605]],[13,[376.7623479921926,0.4130988647245317]],[17,[478.3481748953775,55.407407407407405]],[18,[498.66666666666663,63.70370370370368]],[16,[451.9827338808689,43.25925925925927]],[12,[332.131357712622,16.970215357579164]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"start_point":[[15,15],[10,10],[6,6],[12,12],[5,5],[19,19],[9,9],[7,7],[17,17],[2,2],[18,18],[4,4],[13,13],[11,11],[3,3],[16,16],[8,8],[1,1],[14,14]],"end_point":[[8,9],[13,14],[6,7],[2,3],[9,10],[10,11],[3,4],[14,15],[5,6],[19,1],[11,12],[16,17],[18,19],[15,16],[12,13],[7,8],[1,2],[17,18],[4,5]],"handle_primary":[[8,[-9.481481481481524,-12.740740740740762]],[5,[-13.629629629629562,5.925925925925924]],[10,[-13.333333333333371,-8.59259259259261]],[14,[0.0,0.0]],[3,[-6.518518518518476,13.3333333333333]],[13,[41.32904569547122,11.708483533546342]],[2,[0.0,0.0]],[19,[11.555555555555545,-3.851851851851848]],[1,[12.848891737595522,5.11227609582204]],[9,[-13.629629629629562,-7.407407407407419]],[15,[20.148148148148152,6.8148148148148096]],[11,[-11.259259259259125,-10.962962962962962]],[6,[-14.222222222222172,-11.851851851851848]],[7,[-15.407407407407447,4.444444444444457]],[4,[18.370370370370324,0.2962962962963047]],[18,[13.333333333333371,4.148148148148152]],[17,[10.962962962963047,12.148148148148124]],[12,[4.019883543587866,-14.744727738229416]],[16,[7.703703703703695,6.814814814814817]]],"handle_end":[[7,[9.481481481481524,12.740740740740762]],[17,[-13.333333333333371,-4.148148148148152]],[11,[-2.7704748413796665,10.16196036497552]],[13,null],[8,[13.629629629629562,7.407407407407419]],[15,[-7.703703703703695,-6.8148148148148096]],[19,[-12.030418259761518,-4.786624476892754]],[10,[11.259259259259238,10.962962962963076]],[16,[-10.96296296296299,-12.148148148148188]],[3,[-18.370370370370324,-0.2962962962963047]],[4,[13.629629629629562,-5.925925925925924]],[12,null],[5,[14.222222222222172,11.85185185185182]],[1,[-24.88888888888891,-10.666666666666655]],[6,[15.407407407407334,-4.444444444444457]],[14,[-20.14814814814821,-6.814814814814827]],[18,[-11.555555555555545,3.851851851851848]],[2,[6.518518518518476,-13.333333333333314]],[9,[13.333333333333371,8.59259259259261]]],"stroke":[[11,0],[1,0],[4,0],[13,0],[5,0],[19,0],[9,0],[14,0],[2,0],[10,0],[16,0],[15,0],[6,0],[7,0],[12,0],[17,0],[8,0],[3,0],[18,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":19}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3636653585682494814,{"inputs":[{"Node":{"node_id":11565160497886435388,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.5},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[12313564802550122052,{"inputs":[{"Node":{"node_id":13557369662261607646,"output_index":0,"lambda":false}},{"Node":{"node_id":9684857454501250999,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8413863870096329943,{"inputs":[{"Node":{"node_id":16195626650123806176,"output_index":0,"lambda":false}},{"Node":{"node_id":5302437193964714993,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9847383247226990698,{"inputs":[{"Node":{"node_id":3627710206997006419,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15498700602024283966,{"inputs":[{"Node":{"node_id":15466714490303763249,"output_index":0,"lambda":false}},{"Node":{"node_id":9847383247226990698,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12473080738469616517,{"inputs":[{"Node":{"node_id":17891208858820401648,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17133591775058457007,{"inputs":[{"Node":{"node_id":18067513817508158001,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[13163272246010991228,{"inputs":[{"Node":{"node_id":9740500978584792725,"output_index":0,"lambda":false}},{"Node":{"node_id":10253927692147706615,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15286091228862934481,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[3,[638.5953360768175,27.56652949245542]],[4,[665.7229080932784,23.79149519890261]],[5,[684.554183813443,27.654320987654327]],[6,[661.2894375857338,26.381344307270236]],[7,[637.0589849108368,29.980795610425247]],[2,[627.0946502057614,23.00137174211249]],[1,[623.1001371742112,22.694101508916333]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[1,1],[2,2],[5,5],[7,7],[4,4],[3,3],[6,6]],"end_point":[[6,7],[1,2],[2,3],[3,4],[5,6],[7,1],[4,5]],"handle_primary":[[2,[2.150891632373032,1.5802469135802468]],[6,[-11.456790123456813,0.9657064471879302]],[1,[0.0,0.0]],[3,[5.3991769547326385,0.13168724279836042]],[5,[0.0,0.0]],[7,[-6.089851956901498,-0.48236451143773706]],[4,[6.672153635116501,-0.35116598079560646]]],"handle_end":[[7,[2.194787379972581,3.906721536351163]],[6,[4.433470507544598,0.35116598079561]],[3,[-6.672153635116501,0.35116598079560646]],[5,[11.456790123456813,-0.9657064471879336]],[1,[-2.150891632373032,-1.5802469135802468]],[2,[-5.486565700800156,-0.13381867562927496]],[4,[-0.9218106995884908,-1.0534979423868336]]],"stroke":[[2,0],[3,0],[4,0],[5,0],[6,0],[1,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3165571685352930240,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[639.0431812985823,135.02706332876082]],[2,[641.3926773385256,156.76403071818197]],[4,[641.1783537148203,135.11412115589184]],[3,[642.0732703685807,156.78028060137643]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[2,2],[1,1]],"end_point":[[4,1],[2,3],[1,2],[3,4]],"handle_primary":[[3,[-0.4020858660272779,-10.361367902183218]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[3,null],[4,[1.0850699611588652,-0.2123114466060372]],[2,[-0.29793124344723765,0.12588207707705124]],[1,[-0.08991158554488266,-10.211393405397416]]],"stroke":[[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10587073897090054035,{"inputs":[{"Node":{"node_id":8814059393325469059,"output_index":0,"lambda":false}},{"Node":{"node_id":907841922684377912,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13014916927589286309,{"inputs":[{"Node":{"node_id":2044103368441997753,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15815816861435910950,{"inputs":[{"Node":{"node_id":4105711298139980122,"output_index":0,"lambda":false}},{"Node":{"node_id":17815494794630739611,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15798070933198867970,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[12,[660.0,500.66666666666663]],[9,[424.44444444444446,340.0]],[7,[384.7140020398532,440.0243218219409]],[10,[508.88888888888886,389.33333333333337]],[6,[438.18064449587104,508.2403828865154]],[4,[536.0,522.2222222222221]],[3,[598.6666666666666,547.1111111111111]],[1,[595.1111111111111,513.3333333333333]],[8,[350.6666666666667,340.0]],[5,[449.99999999999994,445.3333333333333]],[11,[588.6666666666665,453.3333333333333]],[2,[642.2222222222222,536.8888888888889]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"start_point":[[6,6],[3,3],[5,5],[7,7],[9,9],[1,1],[11,11],[4,4],[8,8],[2,2],[12,12],[10,10]],"end_point":[[2,3],[4,5],[8,9],[9,10],[11,12],[3,4],[7,8],[1,2],[10,11],[12,1],[6,7],[5,6]],"handle_primary":[[3,[-18.370370370370324,2.1728395061728634]],[10,[25.481481481481467,20.4444444444444]],[6,[0.0,0.0]],[4,[-25.28395061728401,-13.827160493827025]],[9,[24.0,8.0]],[2,[0.0,0.0]],[11,[22.666666666666856,18.0]],[7,[5.531031978208716,-44.24825582567013]],[12,[-31.999999999999886,10.666666666666686]],[8,[-46.969945387028645,-26.215783471829923]],[1,[0.0,0.0]],[5,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[8,[-24.0,-8.0]],[1,[-58.22222222222217,-1.3333333333332575]],[3,[25.283950617284063,13.827160493827025]],[10,[-23.199803616588156,-18.42337346023163]],[2,[18.370370370370324,-2.1728395061728634]],[9,[-25.481481481481467,-20.4444444444444]],[12,null],[11,[-17.185185185185105,5.925925925925867]],[6,[-4.764895727801786,38.11916582241446]],[7,[28.6666666666668,16.000000000000057]],[5,[0.0,0.0]]],"stroke":[[1,0],[6,0],[12,0],[9,0],[7,0],[5,0],[10,0],[3,0],[2,0],[8,0],[4,0],[11,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":12}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6672826052605647592,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[11,[599.381801554641,127.00502972107913]],[5,[603.127572016461,99.64334705075449]],[4,[600.0548696844994,115.53360768175584]],[7,[591.0123456790125,60.40054869684499]],[3,[605.4979423868314,125.19067215363512]],[8,[585.8326474622772,72.60356652949247]],[2,[614.2716726786227,123.52371759047573]],[10,[599.4403292181071,108.68587105624144]],[12,[613.7991159884164,125.99055022100288]],[9,[593.3827160493829,85.77229080932784]],[1,[617.5253772290811,122.03017832647464]],[6,[594.172839506173,82.87517146776406]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"start_point":[[2,2],[9,9],[4,4],[1,1],[3,3],[11,11],[6,6],[12,12],[5,5],[10,10],[8,8],[7,7]],"end_point":[[4,5],[3,4],[5,6],[11,12],[7,8],[8,9],[9,10],[1,2],[12,1],[10,11],[2,3],[6,7]],"handle_primary":[[12,[2.3801249809480396,-1.7168114616673904]],[9,[3.599451303154978,4.477366255144034]],[1,[0.0,0.0]],[3,[-4.594421582076166,-1.1705532693187024]],[10,[-2.575217192501441,8.77914951989024]],[2,[-1.2820759681926577,0.7008681959453185]],[8,[0.6346981736430735,5.019885555177211]],[11,[3.960543177125487,4.094798878044912]],[7,[0.0,0.0]],[6,[-6.145404663923159,-8.076817558299041]],[5,[-0.8779149519890552,-4.477366255144048]],[4,[0.8779149519890552,-4.477366255144034]]],"handle_end":[[5,[6.145404663923159,8.076817558299041]],[1,[1.3006147436874471,-0.7110027265491681]],[4,[0.8779149519890552,4.47736625514402]],[7,[-0.9657064471879266,-7.637860082304528]],[6,[-6.057613168724288,9.305898491083669]],[9,[3.3684073442221916,-11.48320685530176]],[12,[0.0,0.0]],[10,[-4.118548609866821,-4.258160427150372]],[3,[-0.8779149519890552,4.477366255144034]],[2,[3.396564570446685,0.8653667695405147]],[11,[-2.036412917146322,1.4688880058104417]],[8,[-3.599451303154978,-4.477366255144034]]],"stroke":[[1,0],[12,0],[3,0],[5,0],[11,0],[6,0],[7,0],[4,0],[2,0],[8,0],[10,0],[9,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":12}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7385465194555106679,{"inputs":[{"Node":{"node_id":5009664118231399060,"output_index":0,"lambda":false}},{"Node":{"node_id":6416452251137958677,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9425359632144678256,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[5,[606.9918024691358,101.68414814814815]],[2,[615.0086877000457,93.76131687242795]],[4,[612.3749428440786,88.61088248742568]],[1,[610.2608816540582,107.73159867034722]],[3,[622.6042778031804,84.90413046791649]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[2,2],[4,4],[5,5],[3,3],[1,1]],"end_point":[[1,2],[3,4],[4,5],[5,1],[2,3]],"handle_primary":[[4,[-3.0889600162577153,2.952395468170536]],[5,[0.0,0.0]],[2,[3.21902149062646,-3.511659807956093]],[3,[-0.6242950769699291,-0.9364426154549648]],[1,[0.0,0.0]]],"handle_end":[[3,[2.992367941940074,-2.86007378029646]],[5,[-2.1454520955559246,-3.1101486881290583]],[1,[-3.21902149062646,3.5116598079561214]],[4,[-0.5623782142248501,-6.258066225952547]],[2,[0.15607376924265282,0.7543565513387165]]],"stroke":[[5,0],[1,0],[3,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15177845878727456758,{"inputs":[{"Node":{"node_id":14225285635863713990,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5555007473125503522,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[7,[722.6215515927449,59.58116140832189]],[1,[721.7241274196006,63.248894985520494]],[2,[724.7285474775185,66.64349946654472]],[3,[723.7140679774425,72.106081390032]],[5,[726.0551745160798,67.30681298582532]],[6,[724.0262155159273,62.468526139308025]],[4,[725.0797134583142,72.96448712086573]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[6,6],[1,1],[5,5],[4,4],[7,7],[2,2],[3,3]],"end_point":[[2,3],[5,6],[4,5],[6,7],[1,2],[7,1],[3,4]],"handle_primary":[[4,[0.6633135192806776,-0.8584057308337094]],[2,[0.546258192348887,2.106995884773667]],[1,[0.0,0.0]],[7,[-1.014479500076277,0.3901844231062413]],[5,[-0.585276634659408,-3.8628257887517066]],[3,[-1.287608596250493,1.7558299039780536]],[6,[-0.03901844231063478,-1.2485901539399509]]],"handle_end":[[6,[1.014479500076277,-0.39018442310623414]],[3,[-0.6633135192806776,0.8584057308337094]],[1,[-0.501794076076294,-1.9354914362939013]],[5,[0.03901844231063478,1.2485901539399509]],[4,[0.585276634659408,3.8628257887517066]],[2,[1.852405339488314,-2.526007281120613]],[7,[0.07803688462126956,-0.03901844231062768]]],"stroke":[[5,0],[2,0],[3,0],[4,0],[7,0],[6,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17529660518597229229,{"inputs":[{"Node":{"node_id":3802858053991775169,"output_index":0,"lambda":false}},{"Node":{"node_id":4332145463108161926,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"F64":40.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-30.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[16446146761452576438,{"inputs":[{"Node":{"node_id":12131058586835568367,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[619.1444612416404,54.266956717585614]},"exposed":false}},{"Value":{"tagged_value":{"F64":-0.6118784},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[5.617278800347149,2.5068847538738956]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.1858656806102035e-16,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[454416440369338250,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[733.7777777777778,518.6666666666666]],[1,[696.0,593.3333333333333]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-18.666666666666515,26.66666666666663]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15038739378867834454,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[1,[654.3978052126201,51.621399176954746]],[5,[704.6145404663924,55.39643347050756]],[4,[704.965706447188,54.25514403292181]],[3,[691.5336076817558,52.14814814814816]],[7,[662.3868312757203,59.61042524005489]],[6,[687.4951989026064,54.518518518518526]],[2,[667.4787379972565,58.20576131687244]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[3,3],[4,4],[6,6],[2,2],[7,7],[1,1],[5,5]],"end_point":[[6,7],[3,4],[1,2],[2,3],[7,1],[4,5],[5,6]],"handle_primary":[[2,[6.145404663923159,-1.0534979423868336]],[1,[0.0,0.0]],[7,[-4.546573253919632,-2.2347563451469625]],[6,[-10.156808190486911,1.6663513437517778]],[3,[7.723134415788309,-0.2640387834457485]],[4,[0.0,0.0]],[5,[0.0,0.0]]],"handle_end":[[6,[5.179698216735233,2.5459533607681664]],[5,[11.237311385459408,-1.8436213991769537]],[3,null],[4,[0.0,0.0]],[1,[-5.875074923313605,1.0071557011394745]],[2,[-10.271604938271594,0.35116598079560646]],[7,[0.0,0.08779149519890694]]],"stroke":[[3,0],[1,0],[2,0],[4,0],[7,0],[6,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14982414026754548178,{"inputs":[{"Node":{"node_id":13045580349734858212,"output_index":0,"lambda":false}},{"Node":{"node_id":4332145463108161926,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":10.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-25.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[4493274523708782092,{"inputs":[{"Node":{"node_id":15239301303367148581,"output_index":0,"lambda":false}},{"Node":{"node_id":12880230498984021417,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6973438081601736688,{"inputs":[{"Node":{"node_id":11630078441485655672,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[4577638792388493935,{"inputs":[{"Node":{"node_id":3170924135668664007,"output_index":0,"lambda":false}},{"Node":{"node_id":6292009934909381201,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12131058586835568367,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.022131022857413415,0.4190687668825941]],[2,[1.0389965338526328,0.5311836299154763]],[1,[0.6081211287919952,-0.2081641356766983]],[3,[0.443655685420585,0.8388279058567918]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[3,3],[1,1],[4,4]],"end_point":[[2,3],[4,1],[1,2],[3,4]],"handle_primary":[[2,[-0.06483434986356718,0.26682960488486684]],[3,[-0.29501938196342326,-0.04735956037402645]],[1,[0.297407817404018,0.05174926937677715]],[4,[0.021131345375600137,-0.27179882337964756]]],"handle_end":[[2,[0.2950193819634199,0.04735956037402589]],[4,[-0.38805268271111915,-0.0675215701634326]],[1,[0.07365905854782184,-0.30314821587423946]],[3,[-0.02113134537560013,0.27179882337964756]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1157261387411722141,{"inputs":[{"Node":{"node_id":4577174813962563383,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11659756061767599421,{"inputs":[{"Node":{"node_id":8766106989344197438,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5140869461760168364,{"inputs":[{"Node":{"node_id":17118107476414252025,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[8543051864256131356,{"inputs":[{"Node":{"node_id":5002654561220917457,"output_index":0,"lambda":false}},{"Node":{"node_id":4332145463108161926,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"F64":300.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-100.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[16732130236852371275,{"inputs":[{"Node":{"node_id":4832236468224231783,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":6.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5185036609290210853,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"remove":[],"delta":[[10,[696.5925925925927,33.728395061728385]],[24,[719.0123456790122,66.6337448559671]],[28,[702.2539247065995,73.00350556317633]],[4,[704.9657064471878,54.25514403292179]],[20,[716.6907483615302,62.66361835086114]],[8,[709.8600823045268,50.83127572016461]],[2,[697.9423868312758,64.79012345679013]],[11,[697.7283950617284,31.30864197530864]],[1,[687.846364883402,65.58024691358025]],[9,[702.2222222222223,38.38683127572017]],[15,[703.604938271605,68.21399176954733]],[17,[713.3351623228167,47.46593507087334]],[16,[713.7448559670781,60.37860082304528]],[27,[718.680688919372,68.71147690900777]],[14,[711.9695168419447,48.57796067672611]],[23,[711.5061728395062,69.99176954732509]],[18,[716.7736625514402,54.9135802469136]],[7,[701.785703398872,67.26779454351473]],[6,[695.152568206066,67.34583142813594]],[5,[705.102270995275,59.269013869836904]],[12,[698.2935528120714,34.35573845450388]],[13,[706.9556470050298,39.272062185642426]],[19,[705.9094650205762,70.25514403292182]],[25,[719.8512421886905,54.19661636945587]],[22,[719.6171315348269,59.659198292943145]],[26,[722.5825331504344,57.31809175430575]],[29,[694.0600518213687,74.40816948635879]],[21,[716.1444901691814,49.82655083066605]],[3,[703.7366255144034,54.694101508916326]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"remove":[],"start_point":[[12,12],[15,15],[1,1],[9,9],[13,13],[5,5],[6,6],[10,10],[14,14],[8,8],[25,25],[26,26],[2,2],[24,24],[16,16],[18,18],[7,7],[29,29],[17,17],[20,20],[3,3],[22,22],[21,21],[19,19],[28,28],[27,27],[4,4],[23,23],[11,11]],"end_point":[[15,16],[22,23],[19,20],[14,15],[21,22],[11,12],[13,14],[3,4],[5,6],[23,24],[29,1],[16,17],[24,25],[27,28],[18,19],[8,9],[4,5],[2,3],[26,27],[1,2],[9,10],[28,29],[25,26],[7,8],[20,21],[12,13],[10,11],[17,18],[6,7]],"handle_primary":[[19,[0.0,0.0]],[17,[0.0,0.0]],[13,[2.1939750755697105,1.3128956217623369]],[8,[1.1368683772161605e-13,-7.4135040390184415]],[14,[0.9193720469440904,5.347965249199831]],[12,[1.5089163237310004,2.3850022862368547]],[2,[1.5646505637769224,-1.2302214356413188]],[25,[0.0,0.0]],[23,[0.0,0.0]],[4,[0.0,0.0]],[26,[0.8664211612748431,3.3573819999397045]],[18,[-0.7242798353908029,5.860082304526735]],[1,[0.0,0.0]],[11,[0.0,0.0]],[10,[-0.04481007342064913,-1.8372595419893116]],[28,[-7.920532726374063,-0.13055823175342596]],[16,[2.9207548934437,-5.774876595401999]],[3,[0.0,0.0]],[27,[-4.128769232802142,3.294230770852593]],[15,[0.0,0.0]],[7,[3.3946044810244302,-1.8728852309099435]],[22,[-1.7948483462886315,6.047858558146615]],[29,[0.0,0.0]],[6,[0.0,0.0]],[24,[2.106995884773596,-3.0044200579180256]],[5,[-1.1705532693187024,3.0044200579180043]],[20,[2.536198750190465,-6.516079865874104]],[21,[0.0,0.0]],[9,[-3.823807346440958,-1.6387745770461848]]],"handle_end":[[12,[-3.679926840420876,-2.202103337905797]],[5,[6.516079865874076,-2.4581618655692807]],[3,[0.0,0.0]],[6,[-3.208476806721251,1.7701941002599142]],[11,[-0.8654907204776237,-1.3679998781853442]],[18,[9.169333942996444,-4.409083981100437]],[15,[-3.84819387288519,7.608596250571544]],[13,[-0.7923207898123792,-4.608911119518574]],[16,[1.1705532693187024,1.8728852309099224]],[17,[0.667740598959881,-5.402628482494777]],[8,[5.150019007352512,2.2071510031511608]],[23,[-2.1028230213785264,2.9984698638176326]],[26,[3.66773357719876,-2.926383173296756]],[24,[2.980033531474078,4.338363054412447]],[19,[-2.536198750190465,6.516079865874104]],[2,[0.5267489711934559,6.320987654320987]],[27,[7.101356500533598,0.11705532693187592]],[9,[0.04481007342064913,1.837259541989333]],[1,[-2.555707971345896,2.0094497789970944]],[22,[2.731290961743639,-1.326627038561199]],[7,[-1.1368683772161605e-13,8.389895136005812]],[20,[1.638774577046206,1.5607376924249363]],[4,[1.1705532693187024,-3.0044200579180043]],[25,[-0.6242950769700428,-2.419143423258646]],[10,[0.0,0.0]],[14,[7.30864197530866,-5.333333333333336]],[21,[1.7948483462886315,-6.047858558146615]],[28,[0.0,0.0]],[29,[0.009754610577488164,0.048773052888265056]]],"stroke":[[24,0],[27,0],[17,0],[3,0],[19,0],[18,0],[10,0],[21,0],[5,0],[29,0],[7,0],[6,0],[8,0],[23,0],[11,0],[13,0],[16,0],[26,0],[20,0],[4,0],[28,0],[14,0],[2,0],[9,0],[22,0],[25,0],[1,0],[15,0],[12,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":29}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18190631752493248867,{"inputs":[{"Node":{"node_id":12428327489525325219,"output_index":0,"lambda":false}},{"Node":{"node_id":10375238420217738812,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8644924780109919177,{"inputs":[{"Node":{"node_id":10599660455959346550,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5020096817747898028,{"inputs":[{"Node":{"node_id":15286091228862934481,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[2641530639940889619,{"inputs":[{"Node":{"node_id":5174744389209053970,"output_index":0,"lambda":false}},{"Node":{"node_id":14539627480594383748,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5326536612985524219,{"inputs":[{"Node":{"node_id":15798070933198867970,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":27.0},"exposed":false}},{"Value":{"tagged_value":{"U32":9},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11666664915283969027,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[751.4074074074075,685.0370370370371]],[1,[802.3703703703703,580.9382716049382]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,1]],"handle_primary":[[1,[0.0,0.0]],[2,[20.740740740740534,-42.469135802469054]]],"handle_end":[[2,null],[1,[27.259259259259125,-48.79012345678995]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3414873131936208778,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[697.7777777777777,954.2222222222222]],[1,[761.7777777777777,737.3333333333333]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[1,2],[2,1]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[26.22222222222217,-158.66666666666652]],[2,[-40.0,81.33333333333326]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3686761601672683183,{"inputs":[{"Node":{"node_id":4859656512650360562,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16805628435335819723,{"inputs":[{"Node":{"node_id":10689298484366290551,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13557369662261607646,{"inputs":[{"Node":{"node_id":3535178979443201645,"output_index":0,"lambda":false}},{"Node":{"node_id":15177845878727456758,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16339345235172368839,{"inputs":[{"Node":{"node_id":14778750092903591172,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[18214377096178867498,{"inputs":[{"Node":{"node_id":7747398671834040298,"output_index":0,"lambda":false}},{"Node":{"node_id":4332145463108161926,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":300.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-100.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[3955326429435439190,{"inputs":[{"Node":{"node_id":18207065424980079673,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[2126710823743005151,{"inputs":[{"Node":{"node_id":14831840560430171946,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11804065810513502701,{"inputs":[{"Node":{"node_id":9782123335421401489,"output_index":0,"lambda":false}},{"Node":{"node_id":17133591775058457007,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7320676248579211727,{"inputs":[{"Node":{"node_id":14817659161913199655,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7654665057468818389,{"inputs":[{"Node":{"node_id":17378885078543074499,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[10514847656270897393,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":16339345235172368839,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16434255153991868080,{"inputs":[{"Node":{"node_id":6124821161363551058,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[17207349373429328029,{"inputs":[{"Node":{"node_id":17967471489196302183,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[6867142265138950838,{"inputs":[{"Node":{"node_id":4784708315242877950,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14862049226133442027,{"inputs":[{"Node":{"node_id":16614450796751955858,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[8814059393325469059,{"inputs":[{"Node":{"node_id":15492651270767932214,"output_index":0,"lambda":false}},{"Node":{"node_id":14035980686649077716,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17364155187784942740,{"inputs":[{"Node":{"node_id":1378578509112405,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9019608,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.9019608,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[10586744777717861556,{"inputs":[{"Node":{"node_id":11417901103965737900,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[15656854169166220905,{"inputs":[{"Node":{"node_id":7821977654068146599,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-5.0,22.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4909350123806022131,{"inputs":[{"Node":{"node_id":15498700602024283966,"output_index":0,"lambda":false}},{"Node":{"node_id":16536768589601337644,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10190227675276560561,{"inputs":[{"Node":{"node_id":2682920349304670808,"output_index":0,"lambda":false}},{"Node":{"node_id":16434255153991868080,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10424806499648491677,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":17147975601187022720,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14598755603287563819,{"inputs":[{"Node":{"node_id":7466034304713056391,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[8230694129617719636,{"inputs":[{"Node":{"node_id":4909350123806022131,"output_index":0,"lambda":false}},{"Node":{"node_id":16805628435335819723,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16175421708184657649,{"inputs":[{"Node":{"node_id":8698602280607307123,"output_index":0,"lambda":false}},{"Node":{"node_id":514796034658094296,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18422317423856403288,{"inputs":[{"Node":{"node_id":10133176481349663495,"output_index":0,"lambda":false}},{"Node":{"node_id":12594527670567285670,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15395954548128560685,{"inputs":[{"Node":{"node_id":13475705179546695973,"output_index":0,"lambda":false}},{"Node":{"node_id":16767482995096345179,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11464423670065789907,{"inputs":[{"Node":{"node_id":8644924780109919177,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[5269304445610080925,{"inputs":[{"Node":{"node_id":3686761601672683183,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[14012583111791538162,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[603.3333333333335,744.6666666666666]],[2,[380.00000000000006,806.0]],[1,[248.00000000000009,884.0]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[2,3],[1,2]],"handle_primary":[[2,[70.80694036316174,-19.49756328840681]],[1,[0.0,0.0]]],"handle_end":[[2,[-71.33333333333326,24.0]],[1,[-92.00000000000006,25.333333333333258]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4784708315242877950,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[7,[807.0666666666666,680.1333333333332]],[6,[592.0,845.3333333333333]],[3,[592.4000000000001,852.3999999999999]],[2,[808.5333333333333,683.1555555555556]],[1,[902.6666666666669,446.66666666666674]],[5,[464.5925925925926,1025.382716049383]],[4,[468.14814814814815,1025.382716049383]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[2,2],[7,7],[3,3],[5,5],[1,1],[4,4],[6,6]],"end_point":[[3,4],[5,6],[7,1],[6,7],[4,5],[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[-91.33798434535026,86.27035509501377]],[2,[-81.33333333333337,100.88888888888891]],[7,[62.39957279246403,-72.271586423759]],[6,[93.94069526511169,-85.35957406301043]],[5,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[5,[-102.71604938271612,93.3333333333336]],[3,[0.0,0.0]],[1,[97.81027061870486,-121.32749415544254]],[6,[-87.55555555555577,101.4074074074075]],[2,[85.857044886376,-81.09351003138556]],[7,[-3.466666666666697,51.33333333333326]]],"stroke":[[1,0],[2,0],[6,0],[7,0],[3,0],[5,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8375495949882478840,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[2,[617.4278311233043,51.042625616013815]],[5,[650.6227709190673,52.93827160493828]],[3,[628.5871056241429,46.71808159325306]],[8,[675.3580246913581,68.74074074074075]],[4,[642.6077325610934,47.29035208047554]],[7,[673.0096021947875,65.84362139917695]],[9,[662.1234567901236,66.9849108367627]],[1,[616.0751917898693,61.31097901742621]],[11,[641.3168724279836,48.02194787379973]],[10,[650.9056546258192,56.62876594015139]],[6,[662.1234567901236,64.96570644718793]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"start_point":[[5,5],[8,8],[1,1],[9,9],[6,6],[11,11],[4,4],[3,3],[10,10],[2,2],[7,7]],"end_point":[[2,3],[7,8],[4,5],[6,7],[8,9],[10,11],[3,4],[5,6],[1,2],[11,1],[9,10]],"handle_primary":[[10,[-2.0025980353477735,-3.5689865976493422]],[1,[-0.7315957933242316,0.01300614743686168]],[4,[2.784561671457709,0.5265657466421629]],[7,[0.0,0.0]],[8,[0.0,0.0]],[9,[-4.389574759945162,-2.106995884773667]],[2,[2.1833209230284183,-3.0691100638496778]],[11,[-8.252400548696869,-0.8779149519890339]],[6,[5.4430727023319605,2.545953360768181]],[5,[3.160493827160508,4.6529492455418335]],[3,[4.873654303444027,-0.3091793289098348]]],"handle_end":[[6,[0.0,0.0]],[9,[2.6272417822486887,4.682213077274824]],[7,[0.0,0.0]],[8,[4.389574759945162,2.106995884773667]],[10,[6.086554705109506,0.6475058196925048]],[5,[-5.4430727023319605,-2.545953360768181]],[4,[-3.160493827160508,-4.6529492455418335]],[1,[-2.4595700304455477,3.4574354386312436]],[2,[-5.145487535686698,0.32642413354457744]],[3,[-2.7845616714574817,-0.5265657466421203]],[11,[2.0257074632933154,-0.6893258141543512]]],"stroke":[[4,0],[8,0],[9,0],[1,0],[3,0],[6,0],[10,0],[2,0],[11,0],[7,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":11}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11677503666435782605,{"inputs":[{"Node":{"node_id":12049041947382267086,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16536768589601337644,{"inputs":[{"Node":{"node_id":4222034829755771252,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[2087303479944421366,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[368.59259259259255,1025.1851851851852]],[1,[365.6296296296296,1025.4814814814813]],[2,[443.2592592592592,882.0740740740739]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[31.111111111111143,-96.29629629629642]],[1,[-48.59259259259255,50.07407407407413]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17426609415699324395,{"inputs":[{"Node":{"node_id":15896921950407486754,"output_index":0,"lambda":false}},{"Node":{"node_id":11464423670065789907,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16450742929146919960,{"inputs":[{"Node":{"node_id":14887821801874852671,"output_index":0,"lambda":false}},{"Node":{"node_id":11899713172487274471,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8595304668947966919,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[798.4000000000001,879.4666666666668]],[1,[810.1333333333333,731.4666666666668]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[2,1],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[-1.8666666666665608,-67.46666666666658]],[2,[-18.13333333333333,82.66666666666674]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11451028343967836482,{"inputs":[{"Node":{"node_id":2422139482859833437,"output_index":0,"lambda":false}},{"Node":{"node_id":12531351117929704587,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[314278016428495768,{"inputs":[{"Node":{"node_id":6282972142629473139,"output_index":0,"lambda":false}},{"Node":{"node_id":5020096817747898028,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17971411534648521628,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14862049226133442027,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13014628586360765651,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":2175432926627256613,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14778750092903591172,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[146.5679012345679,204.44444444444449]],[1,[155.98219408731924,204.757705978404]],[2,[149.0793650793651,202.5537918871252]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[3,1],[2,3],[1,2]],"handle_primary":[[1,[-2.6135873853791907,-0.8494167367814498]],[2,[-2.2695727277346123,-0.643804298125275]],[3,[0.9278738161427498,1.2447087777524644]]],"handle_end":[[3,[-0.32172621516085087,3.1233079488176827]],[2,[-1.156966490299823,-1.5520282186949146]],[1,[1.7022700834823468,0.48287890620272833]]],"stroke":[[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18015048324114736039,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"remove":[],"delta":[[26,[752.1975308641976,172.83950617283952]],[7,[607.2098765432099,55.308641975308646]],[27,[722.1728395061729,147.1604938271605]],[11,[596.9382716049383,85.13580246913581]],[22,[785.9753086419753,197.13580246913585]],[19,[797.8271604938273,246.1234567901235]],[15,[664.8888888888889,140.64197530864195]],[24,[746.8641975308642,175.40740740740742]],[1,[687.4074074074074,99.1604938271605]],[14,[630.716049382716,132.3456790123457]],[17,[757.7283950617285,217.48148148148147]],[18,[799.2098765432099,253.23456790123456]],[13,[616.2962962962963,115.16049382716052]],[9,[609.3827160493827,43.65432098765433]],[6,[617.283950617284,44.641975308641975]],[12,[603.4567901234568,92.8395061728395]],[21,[805.925925925926,230.9135802469136]],[20,[805.1358024691358,260.34567901234567]],[28,[730.2716049382716,169.4814814814815]],[10,[597.530864197531,73.08641975308642]],[8,[613.3333333333334,44.24691358024691]],[5,[639.8024691358025,44.24691358024691]],[2,[683.0617283950618,104.2962962962963]],[3,[675.3580246913581,68.74074074074075]],[4,[654.4197530864197,54.91358024691358]],[23,[760.8888888888889,175.80246913580248]],[16,[672.5925925925926,176.5925925925926]],[29,[705.1851851851852,106.27160493827162]],[25,[737.7777777777778,170.07407407407408]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"remove":[],"start_point":[[21,21],[23,23],[15,15],[25,25],[11,11],[28,28],[14,14],[4,4],[10,10],[27,27],[8,8],[1,1],[29,29],[18,18],[3,3],[13,13],[7,7],[22,22],[6,6],[20,20],[2,2],[24,24],[17,17],[12,12],[16,16],[5,5],[26,26],[19,19],[9,9]],"end_point":[[15,16],[26,27],[23,24],[24,25],[8,9],[7,8],[1,2],[10,11],[5,6],[14,15],[13,14],[20,21],[19,20],[29,1],[16,17],[4,5],[28,29],[3,4],[22,23],[12,13],[11,12],[6,7],[27,28],[2,3],[25,26],[9,10],[17,18],[21,22],[18,19]],"handle_primary":[[20,[0.0,0.0]],[7,[-0.9876543209876444,-4.740740740740733]],[24,[-5.3333333333332575,-2.5679012345678984]],[25,[0.0,0.0]],[2,[-8.120713305898448,-14.573388203017842]],[3,[-15.209876543209816,-1.7777777777777717]],[23,[-2.5679012345678984,-0.592592592592581]],[12,[5.728395061728406,16.98765432098766]],[18,[0.0,-2.172839506172835]],[15,[6.913580246913625,9.87654320987656]],[19,[4.543209876543187,5.925925925925952]],[28,[0.0,0.0]],[6,[-8.09876543209873,4.740740740740733]],[4,[-2.3703703703704377,-3.555555555555557]],[21,[-2.5679012345678984,-9.481481481481469]],[17,[20.594048174910657,8.937919170354007]],[11,[3.3580246913580822,1.9753086419753176]],[8,[-1.1851851851851052,-1.1851851851851904]],[22,[-7.506172839506121,-7.901234567901298]],[10,[-6.320987654320902,4.740740740740733]],[1,[-2.1728395061728634,1.5802469135802255]],[26,[0.0,0.0]],[29,[-13.234567901234527,-3.3580246913580396]],[27,[0.0,0.0]],[16,[29.23456790123464,10.666666666666686]],[9,[-14.024691358024713,15.802469135802482]],[14,[5.728395061728293,2.370370370370381]],[13,[2.370370370370324,7.308641975308632]],[5,[-9.48148148148141,0.9876543209876516]]],"handle_end":[[8,[0.0,0.0]],[10,[-3.3580246913580822,-1.9753086419753176]],[25,[-4.740740740740762,0.790123456790127]],[12,[0.0,0.0]],[9,[0.0,0.0]],[2,[0.0,0.0]],[18,[0.0,0.0]],[21,[7.506172839506121,7.901234567901213]],[11,[0.0,0.0]],[15,[0.0,0.0]],[19,[0.0,0.0]],[13,[-5.728395061728293,-2.370370370370381]],[5,[0.0,0.0]],[16,[-20.59404817491054,-8.937919170353979]],[26,[19.35802469135808,26.864197530864203]],[22,[2.5679012345678984,0.592592592592581]],[1,[0.0,0.0]],[3,[2.3703703703704377,3.555555555555557]],[4,[9.48148148148141,-0.9876543209876444]],[14,[-6.913580246913625,-9.876543209876502]],[29,[0.0,0.0]],[23,[5.3333333333332575,2.5679012345678984]],[6,[0.0,0.0]],[28,[17.580246913580254,58.07407407407402]],[24,[0.0,0.0]],[20,[2.5679012345678984,9.481481481481438]],[27,[-3.7530864197531177,-7.506172839506178]],[7,[0.0,0.0]],[17,[0.0,0.0]]],"stroke":[[6,0],[16,0],[4,0],[25,0],[17,0],[20,0],[23,0],[15,0],[21,0],[18,0],[24,0],[27,0],[9,0],[13,0],[8,0],[14,0],[10,0],[11,0],[1,0],[7,0],[12,0],[28,0],[29,0],[3,0],[19,0],[26,0],[2,0],[5,0],[22,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":29}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13975451746581400000,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[835.7333333333332,786.4000000000001]],[2,[901.6,572.8]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[1,2],[2,1]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[-22.399999999999977,109.06666666666648]],[2,[47.4666666666667,-108.26666666666664]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13035777574951374461,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[833.7777777777778,573.3333333333333]],[3,[696.8888888888889,697.3333333333333]],[1,[896.0,440.44444444444446]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[-68.0,92.88888888888891]]],"handle_end":[[1,[68.0,-92.88888888888891]],[2,[0.0,0.0]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3827449344952693766,{"inputs":[{"Node":{"node_id":2440895173483452224,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11565160497886435388,{"inputs":[{"Node":{"node_id":7893851488963635918,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":6.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10336592647221792772,{"inputs":[{"Node":{"node_id":16051539163551573193,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3535178979443201645,{"inputs":[{"Node":{"node_id":12838133055063962839,"output_index":0,"lambda":false}},{"Node":{"node_id":8240895922641772563,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14675232891471617236,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[480.7407407407408,1026.6666666666663]],[3,[483.9506172839506,1026.7654320987656]],[1,[652.8888888888889,822.6666666666666]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[1,2],[3,1],[2,3]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[-143.85185185185185,150.07407407407413]],[2,[0.0,0.0]],[1,[26.66666666666669,-58.666666666666515]]],"stroke":[[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14035980686649077716,{"inputs":[{"Node":{"node_id":6666260895482068061,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[421715625023770179,{"inputs":[{"Node":{"node_id":3670529450440935325,"output_index":0,"lambda":false}},{"Node":{"node_id":3150436463719911922,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2044103368441997753,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[8,[694.5185185185187,204.8395061728396]],[5,[793.6790123456792,258.7654320987655]],[6,[756.7407407407409,223.40740740740748]],[7,[710.7160493827162,200.09876543209884]],[2,[723.3580246913581,337.97530864197535]],[3,[747.6543209876543,394.6666666666667]],[1,[710.5185185185186,302.2222222222223]],[4,[796.4444444444446,278.12345679012356]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[8,8],[3,3],[5,5],[4,4],[7,7],[2,2],[6,6],[1,1]],"end_point":[[6,7],[2,3],[8,1],[3,4],[4,5],[1,2],[7,8],[5,6]],"handle_primary":[[4,[0.0,0.0]],[3,[0.0,0.0]],[5,[-5.135802469135797,-10.271604938271594]],[2,[0.0,0.0]],[8,[0.0,0.0]],[1,[0.0,0.0]],[7,[0.0,0.0]],[6,[-22.518518518518476,-12.641975308641976]]],"handle_end":[[7,[8.117474523314513,-0.7895812719984008]],[5,[22.518518518518476,12.641975308641976]],[3,[-12.049382716049422,68.54320987654324]],[2,[-10.864197530864203,-35.5555555555556]],[4,[5.135802469135797,10.271604938271594]],[1,[1.3827160493826796,-12.641975308641976]],[8,[7.111111111110972,-82.76543209876547]],[6,[0.0,0.0]]],"stroke":[[3,0],[7,0],[6,0],[8,0],[5,0],[4,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6124821161363551058,{"inputs":[{"Node":{"node_id":10420981328998103391,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6749771744300551215,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[4,[620.8888888888888,943.5555555555557]],[5,[585.3333333333333,1025.7777777777778]],[2,[660.4444444444443,878.2222222222222]],[1,[589.3333333333333,1025.3333333333333]],[3,[726.6666666666666,765.3333333333333]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[2,2],[3,3],[1,1],[4,4],[5,5]],"end_point":[[1,2],[2,3],[3,4],[5,1],[4,5]],"handle_primary":[[3,[0.0,0.0]],[2,[31.11111111111109,-50.66666666666663]],[1,[0.0,0.0]],[4,[-29.333333333333258,59.11111111111097]],[5,[0.0,0.0]]],"handle_end":[[5,[-0.4444444444443434,0.8888888888889142]],[2,[0.0,0.0]],[3,[29.333333333333258,-59.1111111111112]],[1,[-31.863450886870623,51.89190573004646]],[4,[0.0,0.0]]],"stroke":[[2,0],[4,0],[1,0],[3,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2440895173483452224,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[33.18518518518515,636.148148148148]],[2,[30.814814814814767,578.0740740740739]],[1,[93.037037037037,526.8148148148147]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[-9.185185185185162,39.703703703703695]]],"handle_end":[[2,[0.0,0.0]],[1,[9.185185185185162,-39.703703703703695]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11356586238302409958,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[4,[777.7777777777778,375.7037037037037]],[3,[732.148148148148,432.2962962962963]],[5,[811.8518518518518,273.18518518518516]],[6,[792.2962962962963,188.74074074074073]],[1,[811.5555555555555,250.96296296296296]],[2,[783.1111111111111,348.74074074074065]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[5,5],[4,4],[2,2],[3,3],[1,1]],"end_point":[[3,4],[1,2],[2,3],[5,6],[4,5]],"handle_primary":[[1,[0.0,0.0]],[4,[10.310300340717504,-19.181954122264813]],[5,[3.7834358363461433,-27.565032521950258]],[2,[-14.6604291210798,34.80924611318039]],[3,[0.0,0.0]]],"handle_end":[[5,[26.074074074074133,33.18518518518516]],[1,[14.6604291210798,-34.809246113180336]],[4,[-4.148148148148152,30.22222222222223]],[2,[26.666666666666515,-35.555555555555486]],[3,[-12.740740740740875,23.703703703703695]]],"stroke":[[1,0],[3,0],[5,0],[2,0],[4,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13231685386999438557,{"inputs":[{"Node":{"node_id":1659518581611333812,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9371909264427723282,{"inputs":[{"Node":{"node_id":8595304668947966919,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9782123335421401489,{"inputs":[{"Node":{"node_id":11656581020969095354,"output_index":0,"lambda":false}},{"Node":{"node_id":1019037285881657884,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2780251074492832077,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[679.189837009989,239.99177480754585]],[1,[620.0443231093315,208.38630063890184]],[4,[654.5349442975197,224.51689533908117]],[2,[644.0435005900861,214.94345295604788]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[3,3],[2,2]],"end_point":[[2,3],[3,4],[1,2],[4,1]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[17.048596024579638,8.262011919603992]],[4,[-14.688021190407198,-10.884872846462486]]],"handle_end":[[4,[0.1311430463429133,0.13114304634288487]],[3,[13.4932102981968,9.999432631699392]],[2,[-15.868308607493532,-9.835728475719122]],[1,[-9.660678057982182,-4.68171321271447]]],"stroke":[[3,0],[2,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17118107476414252025,{"inputs":[{"Node":{"node_id":6645255982686652881,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[74.2222222222222,480.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[40.0,40.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3627710206997006419,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[154.2366898148148,257.4780574845679]],[2,[149.94787379972564,262.84773662551436]],[1,[152.49382716049382,262.71604938271605]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[2,3],[1,2],[3,1]],"handle_primary":[[2,[-0.2633744855966995,-0.4389574759944139]],[1,[0.0,0.0]],[3,[4.31137018907981,-2.5386217986682027]]],"handle_end":[[1,[0.4650366425890411,0.7750610709815646]],[3,[2.8421709430404014e-14,0.0]],[2,[-3.3775342902714556,1.988760370600971]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12838133055063962839,{"inputs":[{"Node":{"node_id":13644138583806412631,"output_index":0,"lambda":false}},{"Node":{"node_id":6973438081601736688,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7922156219537051964,{"inputs":[{"Node":{"node_id":13594670583065022897,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[15446793500614592278,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[2,[702.244170096022,76.11522633744856]],[3,[722.3484224965707,77.2565157750343]],[8,[697.5034293552812,77.4320987654321]],[1,[694.3429355281208,73.8326474622771]],[6,[724.6310013717421,85.86008230452676]],[5,[718.2222222222222,97.09739368998628]],[7,[718.3100137174213,77.2565157750343]],[4,[725.5967078189301,90.3374485596708]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[5,5],[1,1],[2,2],[4,4],[7,7],[8,8],[6,6],[3,3]],"end_point":[[4,5],[6,7],[3,4],[1,2],[2,3],[7,8],[8,1],[5,6]],"handle_primary":[[5,[0.0,0.0]],[6,[-0.7023319615914261,-5.091906721536347]],[3,[3.456189131014753,3.3025807251918877]],[8,[-3.5116598079559935,-1.6680384087791396]],[2,[5.267489711934218,-0.7023319615912129]],[1,[0.0,0.0]],[7,[-6.236870142765838,-1.74052190030676]],[4,[-1.9392278971834005,5.143169640356035]]],"handle_end":[[8,[0.08779149519887142,0.08779149519891405]],[2,[-3.950617283950578,-3.775034293552821]],[4,[0.0,0.0]],[3,[2.0192043895747247,-5.355281207133089]],[7,[3.5116598079559935,1.6680384087791396]],[5,[0.6823799889585871,4.947254919948108]],[1,[-5.267489711934218,0.7023319615912129]],[6,[3.7750342935527215,1.0534979423868265]]],"stroke":[[6,0],[7,0],[1,0],[8,0],[4,0],[2,0],[5,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9684857454501250999,{"inputs":[{"Node":{"node_id":8699675339613677057,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13444661581815146533,{"inputs":[{"Node":{"node_id":16450742929146919960,"output_index":0,"lambda":false}},{"Node":{"node_id":10792166025753022402,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14993053984267866751,{"inputs":[{"Node":{"node_id":13907578809542898348,"output_index":0,"lambda":false}},{"Node":{"node_id":9863310024364795214,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16195626650123806176,{"inputs":[{"Node":{"node_id":14057307926677215422,"output_index":0,"lambda":false}},{"Node":{"node_id":1869448627329502330,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18279507457571359732,{"inputs":[{"Node":{"node_id":8697043784435445845,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3121275823460307102,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[2,[612.0,780.0]],[3,[452.88888888888886,1025.3333333333333]],[4,[449.77777777777777,1025.7777777777778]],[1,[705.7777777777778,698.6666666666666]],[5,[595.5555555555555,791.1111111111111]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3],[5,5]],"end_point":[[4,5],[3,4],[2,3],[5,1],[1,2]],"handle_primary":[[4,[0.0,0.0]],[2,[-35.111111111111086,34.66666666666663]],[3,[0.0,0.0]],[5,[54.93054949731868,-52.22097082256312]],[1,[0.0,0.0]]],"handle_end":[[4,[-99.11111111111104,94.22222222222229]],[5,[-1.1368683772161605e-13,-0.5925925925926094]],[1,[35.111111111111086,-34.66666666666663]],[3,[0.0,0.0]],[2,[59.111111111111086,-144.8888888888889]]],"stroke":[[2,0],[5,0],[3,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13269760558336088742,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[4,[698.2222222222222,483.1111111111111]],[5,[756.4444444444443,438.22222222222223]],[2,[447.1111111111111,332.44444444444446]],[1,[265.3333333333333,312.0]],[3,[595.1111111111111,439.55555555555554]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[3,3],[4,4]],"end_point":[[4,5],[1,2],[3,4],[2,3]],"handle_primary":[[3,[20.8888888888888,20.444444444444457]],[1,[0.0,0.0]],[2,[83.95959630801838,35.04735442215451]],[4,[22.46059594926794,-9.800987323316916]]],"handle_end":[[4,[-22.222222222222285,23.111111111111143]],[3,[-48.888888888888914,21.33333333333331]],[1,[-96.88888888888886,-40.44444444444446]],[2,[-20.8888888888888,-20.444444444444457]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11590691579869262546,{"inputs":[{"Node":{"node_id":11553850607251055696,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13481022631108980683,{"inputs":[{"Node":{"node_id":9182448229950585507,"output_index":0,"lambda":false}},{"Node":{"node_id":12224498203743157414,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14797986717815207528,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[80.0,557.0]],[4,[826.6666666666665,552.4444444444443]],[3,[665.7777777777778,658.6666666666667]],[5,[868.0,380.44444444444446]],[2,[425.0,650.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[1,1],[2,2],[4,4]],"end_point":[[2,3],[1,2],[3,4],[4,5]],"handle_primary":[[1,[134.0,-75.0]],[2,[105.59298295237464,48.735222901095995]],[4,[59.11111111111131,-70.66666666666652]],[3,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[3,[-59.11111111111131,70.66666666666652]],[4,[0.0,0.0]],[1,[-104.0,-48.0]]],"stroke":[[2,0],[4,0],[3,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5861306074868809692,{"inputs":[{"Node":{"node_id":10190227675276560561,"output_index":0,"lambda":false}},{"Node":{"node_id":3636653585682494814,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13907578809542898348,{"inputs":[{"Node":{"node_id":12313564802550122052,"output_index":0,"lambda":false}},{"Node":{"node_id":15827578515555598997,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[581013017684525986,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[852.0,631.1111111111111]],[1,[803.5555555555554,878.6666666666665]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[2,1],[1,2]],"handle_primary":[[2,[-41.77777777777783,81.77777777777771]],[1,[0.0,0.0]]],"handle_end":[[2,[0.0,-0.4444444444443434]],[1,[-37.77777777777783,80.88888888888903]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3670529450440935325,{"inputs":[{"Node":{"node_id":1384427686127078856,"output_index":0,"lambda":false}},{"Node":{"node_id":8543051864256131356,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12030171742672119253,{"inputs":[{"Node":{"node_id":12801133692316734622,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[7450965328305122110,{"inputs":[{"Node":{"node_id":2659768650911099730,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.4},"exposed":false}},{"Value":{"tagged_value":{"F64":2.5},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[1806828617441445250,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[32.0,1025.3333333333333]],[3,[147.33333333333334,814.0000000000001]],[1,[395.3333333333333,758.0]],[2,[304.6666666666667,765.3333333333333]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[3,3],[2,2]],"end_point":[[3,4],[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[-32.666666666666686,0.6666666666667425]],[3,[-50.13723402627032,36.301698579412914]]],"handle_end":[[1,[32.666666666666686,-0.6666666666667425]],[3,[-0.6666666666666892,-122.66666666666686]],[2,[50.137234026270335,-36.301698579412914]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13475705179546695973,{"inputs":[{"Node":{"node_id":11451028343967836482,"output_index":0,"lambda":false}},{"Node":{"node_id":501401493219507773,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2594533001540454577,{"inputs":[{"Node":{"node_id":15518174914032911052,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":8.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9276497172451351253,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[605.9173906416706,103.71101966163694]],[2,[607.1269623532997,114.75323883554336]],[1,[606.8928516994359,102.3453741807651]],[3,[605.1760402377686,111.78783721993597]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3]],"end_point":[[1,2],[4,1],[2,3],[3,4]],"handle_primary":[[1,[0.0,0.0]],[3,[-0.585276634659408,-2.419143423258646]],[4,[0.27360881696279193,-0.7182231445274425]],[2,[0.0,0.0]]],"handle_end":[[3,[-0.6242950769699291,1.6387745770462772]],[1,[-1.3656454808717626,-5.306508154244753]],[2,[0.585276634659408,2.4191434232586317]],[4,[0.0,0.03901844231063478]]],"stroke":[[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7821977654068146599,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[826.5068586621596,856.9308484975209]],[1,[917.0,471.6]],[3,[825.9524005971,863.6469292802573]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[2,2],[1,1]],"end_point":[[3,1],[1,2],[2,3]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[3,[-0.39999999999997726,191.19999999999985]],[1,[94.89314133784036,-231.73084849752092]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15126865253122550765,{"inputs":[{"Node":{"node_id":13014628586360765651,"output_index":0,"lambda":false}},{"Node":{"node_id":4307303572241320716,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2682920349304670808,{"inputs":[{"Node":{"node_id":10928540355449103287,"output_index":0,"lambda":false}},{"Node":{"node_id":16324258033206362312,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13368990606109678244,{"inputs":[{"Node":{"node_id":421715625023770179,"output_index":0,"lambda":false}},{"Node":{"node_id":15961046538654083626,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16290933138334939444,{"inputs":[{"Node":{"node_id":17426609415699324395,"output_index":0,"lambda":false}},{"Node":{"node_id":14888395629683671889,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12496143061817048445,{"inputs":[{"Node":{"node_id":7525593029671097583,"output_index":0,"lambda":false}},{"Node":{"node_id":7654665057468818389,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12880230498984021417,{"inputs":[{"Node":{"node_id":15949658764632267703,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[14883504161508594099,{"inputs":[{"Node":{"node_id":13368990606109678244,"output_index":0,"lambda":false}},{"Node":{"node_id":11025165626998987360,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7262199696924786895,{"inputs":[{"Node":{"node_id":14029368390543839187,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[952330505278607301,{"inputs":[{"Node":{"node_id":15038739378867834454,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5302437193964714993,{"inputs":[{"Node":{"node_id":1235106489581249820,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[10792166025753022402,{"inputs":[{"Node":{"node_id":2780251074492832077,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[16649851742084147477,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[870.6666666666665,383.55555555555554]],[2,[838.6666666666666,564.0]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[16.000000000000227,37.33333333333337]]],"handle_end":[[1,[48.44444444444446,-91.11111111111109]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1272070255512697108,{"inputs":[{"Node":{"node_id":14012648643507848353,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17147975601187022720,{"inputs":[{"Node":{"node_id":18015048324114736039,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15518174914032911052,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[262.6666666666667,423.5555555555556]],[3,[639.1111111111112,614.6666666666666]],[4,[429.7777777777778,551.5555555555555]],[6,[129.77777777777777,406.2222222222222]],[2,[814.2222222222223,498.66666666666663]],[1,[851.5555555555557,370.66666666666663]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[1,1],[5,5],[3,3],[2,2],[4,4]],"end_point":[[4,5],[5,6],[3,4],[1,2],[2,3]],"handle_primary":[[5,[-58.2222222222222,-21.77777777777783]],[4,[-74.22222222222217,-57.77777777777783]],[1,[0.0,0.0]],[3,[-83.11111111111109,3.111111111111086]],[2,[-43.55555555555554,54.66666666666663]]],"handle_end":[[1,[43.55555555555554,-54.66666666666663]],[2,[83.11111111111109,-3.111111111111086]],[3,[74.22222222222217,57.77777777777783]],[5,[57.333333333333314,-5.777777777777828]],[4,[66.87431172777582,25.01405553176352]]],"stroke":[[2,0],[1,0],[5,0],[3,0],[4,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17078740291337047697,{"inputs":[{"Node":{"node_id":3406722917122601552,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.84765625,"green":0.5384252,"blue":0.3874054,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.84765625,"green":0.5384252,"blue":0.3874054,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[10264089084180279094,{"inputs":[{"Node":{"node_id":5213978458941436169,"output_index":0,"lambda":false}},{"Node":{"node_id":4332145463108161926,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}},{"Value":{"tagged_value":{"F64":60.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-100.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[4859656512650360562,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[163.33333333333343,1025.3333333333333]],[3,[416.66666666666663,803.3333333333333]],[2,[249.3333333333334,898.0]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[2,3],[1,2]],"handle_primary":[[2,[40.66666666666666,-40.666666666666515]],[1,[0.0,0.0]]],"handle_end":[[2,[-77.99999999999994,22.666666666666742]],[1,[-45.09988913511887,45.099889135118815]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[13594670583065022897,{"inputs":[{"Node":{"node_id":13302269488061286120,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4265165189651403984,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":10264089084180279094,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12428327489525325219,{"inputs":[{"Node":{"node_id":14209241002058525241,"output_index":0,"lambda":false}},{"Node":{"node_id":1984475088429379731,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16767482995096345179,{"inputs":[{"Node":{"node_id":6532401937876437300,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5278509881589546420,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[899.1111111111111,600.0000000000001]],[3,[823.7037037037037,861.8666666666667]],[2,[824.4444444444445,850.2222222222223]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[2,3],[3,1],[1,2]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[39.55555555555554,-105.8222222222222]],[3,[-26.31111111111113,120.79999999999984]],[2,[0.0,0.0]]],"stroke":[[2,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7659717355245331967,{"inputs":[{"Node":{"node_id":18422317423856403288,"output_index":0,"lambda":false}},{"Node":{"node_id":4479074488343511985,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8697043784435445845,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"remove":[],"delta":[[17,[183.50617283950615,231.70370370370372]],[12,[199.11111111111111,214.51851851851853]],[11,[208.44444444444443,212.0]],[13,[173.03703703703707,226.962962962963]],[2,[701.7777777777777,252.0]],[4,[647.5555555555554,171.55555555555557]],[35,[680.888888888889,281.48148148148147]],[7,[452.0,206.22222222222223]],[34,[647.5061728395062,240.79012345679013]],[18,[195.1604938271605,228.54320987654324]],[21,[216.8888888888889,238.22222222222223]],[28,[278.9135802469136,223.80246913580248]],[3,[679.9012345679013,198.716049382716]],[16,[172.44444444444446,239.40740740740745]],[15,[155.85185185185185,253.03703703703707]],[9,[326.22222222222223,208.0]],[32,[526.0246913580247,240.79012345679013]],[5,[616.4444444444443,170.22222222222223]],[26,[227.55555555555557,246.51851851851853]],[29,[369.3827160493828,240.19753086419755]],[33,[602.2716049382716,229.5308641975309]],[10,[271.1111111111111,207.55555555555551]],[24,[188.90085842299663,268.4351595864769]],[30,[425.4814814814815,246.71604938271605]],[31,[463.01234567901247,246.71604938271605]],[23,[185.37661941777165,263.56957780826093]],[22,[195.95061728395063,253.8271604938272]],[6,[553.7777777777777,195.11111111111111]],[25,[201.87654320987656,262.12345679012344]],[19,[205.23456790123456,227.55555555555557]],[14,[155.06172839506175,249.08641975308643]],[8,[413.77777777777777,199.55555555555551]],[1,[699.5555555555554,303.55555555555554]],[27,[251.06172839506175,233.283950617284]],[20,[217.87654320987656,231.90123456790127]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"remove":[],"start_point":[[25,25],[18,18],[26,26],[34,34],[10,10],[5,5],[32,32],[27,27],[19,19],[28,28],[9,9],[8,8],[2,2],[23,23],[11,11],[29,29],[6,6],[31,31],[24,24],[22,22],[21,21],[1,1],[4,4],[7,7],[15,15],[33,33],[35,35],[13,13],[12,12],[14,14],[16,16],[30,30],[3,3],[17,17],[20,20]],"end_point":[[20,21],[31,32],[17,18],[22,23],[2,3],[33,34],[6,7],[1,2],[7,8],[32,33],[12,13],[4,5],[11,12],[29,30],[23,24],[9,10],[24,25],[5,6],[25,26],[18,19],[15,16],[3,4],[16,17],[14,15],[13,14],[30,31],[10,11],[26,27],[28,29],[19,20],[8,9],[27,28],[34,35],[21,22],[35,1]],"handle_primary":[[30,[11.061728395061778,0.7901234567900985]],[23,[-0.9364426154549506,2.4191434232586175]],[26,[8.493827160493822,-2.765432098765416]],[22,[-8.16460905349794,4.4115226337448235]],[5,[-12.0,3.555555555555543]],[8,[-25.33333333333331,1.7777777777778567]],[29,[29.4320987654321,3.358024691358054]],[27,[6.518518518518505,-6.518518518518562]],[13,[-9.28395061728395,7.703703703703695]],[9,[-30.22222222222223,1.3333333333333712]],[25,[4.938271604938279,-3.160493827160451]],[35,[10.469135802469168,11.851851851851848]],[34,[10.074074074074131,11.85185185185182]],[32,[23.90123456790127,-2.765432098765416]],[20,[2.3703703703704093,1.185185185185162]],[10,[-12.888888888888856,1.7777777777778567]],[33,[24.098765432098844,-2.5679012345678984]],[31,[19.753086419753004,-4.543209876543159]],[3,[-17.576025737442137,-14.306067460708704]],[21,[-3.753086419753061,3.5555555555555713]],[24,[3.3430068414448044,-0.5735531240474074]],[7,[-8.444444444444457,-2.2222222222222285]],[11,[0.0,0.0]],[18,[4.148148148148124,-1.3827160493827364]],[4,[-10.222222222222172,-3.5555555555555713]],[15,[3.7530864197531177,-1.580246913580254]],[12,[-5.53086419753086,3.3580246913580254]],[6,[-23.11111111111109,9.777777777777771]],[28,[14.81481481481478,1.9753086419753176]],[2,[-2.913580246913398,-22.66666666666669]],[14,[-1.61975308641982,1.935802469135723]],[16,[5.530864197530889,-7.111111111111143]],[17,[2.7654320987654444,-0.790123456790127]],[1,[0.0,0.0]],[19,[4.74074074074079,0.9876543209876728]]],"handle_end":[[25,[-8.493827160493822,2.765432098765416]],[6,[8.444444444444457,2.222222222222257]],[11,[5.530864197530917,-3.3580246913580254]],[33,[-10.074074074074131,-11.851851851851848]],[30,[-19.753086419753004,4.543209876543187]],[10,[20.88888888888889,-1.4814814814814952]],[5,[23.11111111111109,-9.777777777777745]],[29,[-11.061728395061778,-0.790123456790127]],[27,[-14.81481481481478,-1.9753086419753176]],[34,[-10.469135802469168,-11.851851851851848]],[2,[8.493827160493879,6.913580246913597]],[3,[10.222222222222172,3.5555555555555713]],[19,[-2.3703703703704093,-1.185185185185162]],[28,[-29.4320987654321,-3.358024691357997]],[7,[25.33333333333331,-1.777777777777743]],[4,[12.0,-3.555555555555543]],[18,[-4.740740740740705,-0.9876543209876728]],[14,[-3.7530864197531177,1.580246913580254]],[20,[3.753086419753089,-3.5555555555556]],[26,[-6.518518518518505,6.518518518518505]],[24,[-4.938271604938279,3.160493827160451]],[35,[0.0,5.684341886080804e-14]],[16,[-2.765432098765416,0.790123456790127]],[32,[-24.098765432098844,2.5679012345678984]],[17,[-4.148148148148152,1.3827160493827648]],[1,[2.822923929132685,21.961391245287817]],[21,[9.952891875905069,-5.377772223271279]],[15,[-5.530864197530889,7.111111111111086]],[9,[12.888888888888856,-1.777777777777743]],[31,[-23.90123456790127,2.7654320987653875]],[8,[30.22222222222223,-1.3333333333333712]],[13,[1.4782632300064904,-1.7667048358613044]],[23,[-1.24660051630255,0.213876804468498]],[22,[0.752878950104872,-1.9449372877709263]],[12,[9.283950617283978,-7.703703703703695]]],"stroke":[[21,0],[15,0],[12,0],[22,0],[11,0],[35,0],[24,0],[7,0],[17,0],[33,0],[5,0],[14,0],[18,0],[30,0],[31,0],[3,0],[6,0],[13,0],[20,0],[4,0],[9,0],[8,0],[27,0],[34,0],[28,0],[32,0],[16,0],[25,0],[10,0],[2,0],[26,0],[1,0],[19,0],[29,0],[23,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":35}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4236845268521674740,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[393.1851851851852,1025.4814814814813]],[1,[397.6296296296296,1025.185185185185]],[2,[568.8888888888889,785.4814814814813]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[1,1],[2,2]],"end_point":[[1,2],[2,3],[3,1]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,null],[2,[33.777777777777885,-150.22222222222194]],[1,[-153.1851851851851,112.88888888888891]]],"stroke":[[2,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1984475088429379731,{"inputs":[{"Node":{"node_id":1621196991038859321,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[9271343782272072828,{"inputs":[{"Node":{"node_id":4078100635676202528,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[514796034658094296,{"inputs":[{"Node":{"node_id":13352561089252322209,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[8698602280607307123,{"inputs":[{"Node":{"node_id":14098374807212007572,"output_index":0,"lambda":false}},{"Node":{"node_id":14285767317419627814,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10770443343193024138,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[4,[656.6913580246915,28.049382716049383]],[7,[634.1618655692731,33.7997256515775]],[2,[621.0370370370372,23.01234567901235]],[6,[656.4609053497943,30.375857338820303]],[1,[616.0987654320988,23.01234567901235]],[5,[671.3086419753088,28.641975308641975]],[3,[634.172839506173,30.814814814814817]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[5,5],[3,3],[1,1],[6,6],[2,2],[7,7],[4,4]],"end_point":[[5,6],[3,4],[4,5],[7,1],[2,3],[1,2],[6,7]],"handle_primary":[[2,[1.1851851851851052,1.5802469135802468]],[4,[4.345679012345727,-0.39506172839505993]],[3,[6.024691358024711,0.4938271604938329]],[5,[0.0,0.0]],[7,[-6.408779149519887,-0.8340192043895769]],[1,[0.0,0.0]],[6,[-10.31550068587103,2.4142661179698237]]],"handle_end":[[6,[6.408779149519887,0.8340192043895769]],[2,[-6.024691358024711,-0.49382716049382935]],[5,[10.31550068587103,-2.4142661179698237]],[4,[-0.39506172839503506,-0.5925925925925917]],[3,[-4.345679012345727,0.39506172839506704]],[1,[-1.1851851851851052,-1.5802469135802468]],[7,[4.455418381344316,5.4759945130315515]]],"stroke":[[2,0],[1,0],[5,0],[4,0],[7,0],[6,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1019037285881657884,{"inputs":[{"Node":{"node_id":11481949351661484921,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[8410534738018320047,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[834.6666666666665,551.8024691358028]],[2,[762.5185185185184,667.5061728395063]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[2,1],[1,2]],"handle_primary":[[2,[44.88888888888857,-64.49382716049388]],[1,[0.0,0.0]]],"handle_end":[[1,[47.85185185185162,-63.160493827160394]],[2,null]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2397243911096708995,{"inputs":[{"Node":{"node_id":10587073897090054035,"output_index":0,"lambda":false}},{"Node":{"node_id":7505360855062237520,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[541002100261582638,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[648.4444444444443,543.5555555555555]],[1,[456.88888888888886,483.55555555555554]],[2,[536.8888888888889,544.4444444444445]],[3,[609.7777777777777,559.5555555555555]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[3,4],[1,2],[2,3]],"handle_primary":[[2,[25.777777777777715,11.555555555555545]],[1,[0.0,0.0]],[3,[20.0,-7.555555555555543]]],"handle_end":[[1,[-25.777777777777715,-11.555555555555545]],[2,[-20.0,7.555555555555543]],[3,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5009664118231399060,{"inputs":[{"Node":{"node_id":3226457726231232839,"output_index":0,"lambda":false}},{"Node":{"node_id":17207895962122263432,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1378578509112405,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[3,[590.4855967078191,66.80932784636488]],[2,[599.5281207133061,50.3923182441701]],[4,[594.6410608139003,75.57872275567746]],[5,[593.3924706599604,60.59564090839812]],[1,[602.6886145404666,50.91906721536352]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[4,4],[2,2],[5,5],[1,1],[3,3]],"end_point":[[3,4],[4,5],[2,3],[5,1],[1,2]],"handle_primary":[[5,[1.248590153939972,-3.9798811156835896]],[4,[0.0,0.0]],[2,[-1.843621399176982,0.5267489711934203]],[1,[0.0,0.0]],[3,[1.9314128943758533,7.3257125438195345]]],"handle_end":[[1,[1.843621399176982,-0.5267489711934203]],[4,[-1.704168058538812,5.432035686592322]],[2,[-2.7532629181224593,-10.4429315732828]],[5,[-4.379820149367788,0.9754610577655498]],[3,[0.0,0.0]]],"stroke":[[5,0],[3,0],[2,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[501401493219507773,{"inputs":[{"Node":{"node_id":9425359632144678256,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[1235106489581249820,{"inputs":[{"Node":{"node_id":3970516859959908758,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2394762731964337494,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":4422453582814483232,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1024.0,1024.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Network":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4341772758799935306,{"inputs":[{"Node":{"node_id":1785173043494067496,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3226457726231232839,{"inputs":[{"Node":{"node_id":4493274523708782092,"output_index":0,"lambda":false}},{"Node":{"node_id":7922156219537051964,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6645255982686652881,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,0.5]],[3,[0.5,1.0]],[1,[0.5,0.0]],[2,[1.0,0.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1]],"end_point":[[4,1],[3,4],[2,3],[1,2]],"handle_primary":[[4,[0.0,-0.275892388889507]],[1,[0.27589238888950707,0.0]],[3,[-0.275892388889507,0.0]],[2,[0.0,0.27589238888950707]]],"handle_end":[[2,[0.27589238888950707,0.0]],[1,[0.0,-0.275892388889507]],[4,[-0.275892388889507,0.0]],[3,[0.0,0.27589238888950707]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1162381870526064378,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":9271343782272072828,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[7447657690776686262,{"inputs":[{"Node":{"node_id":3649809135741361946,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9698363115186534174,{"inputs":[{"Node":{"node_id":1661691009086487874,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}],[5471152581000334146,{"inputs":[{"Node":{"node_id":12761901161949743155,"output_index":0,"lambda":false}},{"Node":{"node_id":952330505278607301,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15827578515555598997,{"inputs":[{"Node":{"node_id":15656854169166220905,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14539627480594383748,{"inputs":[{"Node":{"node_id":581013017684525986,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[2282726379014798660,{"inputs":[{"Node":{"node_id":454416440369338250,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11417901103965737900,{"inputs":[{"Node":{"node_id":13269760558336088742,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::BoundlessFootprintNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::FreezeRealTimeNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Network":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15637103575662751567,{"inputs":[{"Node":{"node_id":314278016428495768,"output_index":0,"lambda":false}},{"Node":{"node_id":4350324834849900949,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10375238420217738812,{"inputs":[{"Node":{"node_id":2282726379014798660,"output_index":0,"lambda":false}},{"Node":{"node_id":17078740291337047697,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[15949658764632267703,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","is_integer":false,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"is_integer":false,"unit":" px","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4422453582814483232,{"persistent_metadata":{"reference":"Merge","display_name":"Hair and Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-7,4]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14079496619264986678,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14285767317419627814,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14888395629683671889,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13557369662261607646,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16805628435335819723,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14778750092903591172,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11479098559726891734,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4572557574846980832,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2659768650911099730,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","unit":" px","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"blank_assist":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"unit":" px","min":0.0,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16756940771483104467,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18015048324114736039,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11656581020969095354,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9778375740427894463,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2397243911096708995,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11268046366284173800,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4131094614457622424,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"unit":" px","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"mode":"Increment","min":2.0,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2394762731964337494,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":true,"y":"Y"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":true,"x":"W","unit":" px"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-3,1]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5213978458941436169,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"mode":"Range","range_max":100.0,"min":0.01,"range_min":1.0,"is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","is_integer":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10619788176782820865,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1689789805659535712,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10792166025753022402,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10336592647221792772,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14675232891471617236,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15498700602024283966,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5269304445610080925,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[952330505278607301,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16450742929146919960,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1889157037801767612,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"min":0.01,"mode":"Range","range_min":1.0,"is_integer":false,"blank_assist":true,"range_max":100.0},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13014628586360765651,{"persistent_metadata":{"reference":"Merge","display_name":"Dotted Aura","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13269760558336088742,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[314278016428495768,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17891208858820401648,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11899713172487274471,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1806828617441445250,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16175421708184657649,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15578929303912288394,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16290933138334939444,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13045580349734858212,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"mode":"Range","range_max":100.0,"range_min":1.0,"min":0.01},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"is_integer":true,"blank_assist":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6282972142629473139,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1378578509112405,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2959546142916532439,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2126710823743005151,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6580280438672662494,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11573595155909211511,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"mode":"Increment","is_integer":true,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","blank_assist":true,"min":0.0,"is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"is_integer":false,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4372998635946271235,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8595304668947966919,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9954843247420111867,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9529195152569434392,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16446146761452576438,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11058365317860779469,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13163272246010991228,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10586744777717861556,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10253927692147706615,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14057307926677215422,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11194653561109699287,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3170924135668664007,{"persistent_metadata":{"reference":"Merge","display_name":"Pointing Arm","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6973438081601736688,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9271343782272072828,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4663768795652429571,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5002654561220917457,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"min":0.01,"mode":"Range","blank_assist":true,"range_max":100.0,"range_min":1.0,"is_integer":false},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14862049226133442027,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14991324592500870173,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12030171742672119253,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3970516859959908758,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6532401937876437300,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"W","y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1621196991038859321,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"blank_assist":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"min":0.0,"is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7505360855062237520,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[421715625023770179,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[542361600097372754,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4859656512650360562,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14883504161508594099,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,295]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14035980686649077716,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11021243031011826737,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4577638792388493935,{"persistent_metadata":{"reference":"Merge","display_name":"Head and Neck","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":78}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7385465194555106679,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,211]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4493274523708782092,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8814059393325469059,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1235106489581249820,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","min":0.0,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"min":2.0,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11199691961479466803,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15239301303367148581,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12313564802550122052,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18319784717194273926,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11025165626998987360,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15827578515555598997,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16195626650123806176,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10795820039540504703,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14209241002058525241,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3165571685352930240,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[454416440369338250,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8375495949882478840,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18422317423856403288,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5555007473125503522,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10770443343193024138,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15460109068588328521,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12594527670567285670,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16051539163551573193,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15446793500614592278,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7747398671834040298,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"min":0.01,"mode":"Range","blank_assist":true,"range_max":100.0,"range_min":1.0,"is_integer":false},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2422139482859833437,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10270446074640675342,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","x":"W","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7525593029671097583,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11616089678400336955,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11632506522064533635,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18067513817508158001,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","min":2.0,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"unit":" px","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"is_integer":false,"unit":" px","mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14539627480594383748,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9276497172451351253,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8699675339613677057,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3670529450440935325,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8410534738018320047,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3627710206997006419,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9374264173303233490,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"is_integer":false,"blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","unit":" px","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11464423670065789907,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11356586238302409958,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9863310024364795214,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6672826052605647592,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14029368390543839187,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15896921950407486754,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5278509881589546420,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3827449344952693766,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"is_integer":false,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"is_integer":false,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","blank_assist":true,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12531351117929704587,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1272070255512697108,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9425359632144678256,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4453139144069993994,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15982852655074258238,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6867142265138950838,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10928540355449103287,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12761901161949743155,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14598755603287563819,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7447657690776686262,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","blank_assist":true,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":2.0,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8766106989344197438,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14887821801874852671,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12049041947382267086,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4248321400839848160,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,124]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4784708315242877950,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13261814586176172586,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5326536612985524219,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"mode":"Range","range_max":100.0,"range_min":1.0,"is_integer":false,"blank_assist":true,"min":0.01},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13302269488061286120,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15126865253122550765,{"persistent_metadata":{"reference":"Merge","display_name":"Dotted Bodice","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":21}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3971837674569123876,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17945736750161448391,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1869448627329502330,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5174744389209053970,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3955326429435439190,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7262199696924786895,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"unit":" px","is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":2.0,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"unit":" px","min":0.0,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9470742171134780193,{"persistent_metadata":{"reference":"Merge","display_name":"Dotted Skirt","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":81}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11666664915283969027,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15798070933198867970,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10599660455959346550,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14993053984267866751,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8413863870096329943,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4307303572241320716,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,319]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16434255153991868080,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3121275823460307102,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10689298484366290551,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4577174813962563383,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10587073897090054035,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3406722917122601552,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-38,208]}}},"network_metadata":null}}],[1661691009086487874,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","unit":" px","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":2.0,"is_integer":true,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10133176481349663495,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12496143061817048445,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16614450796751955858,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14982414026754548178,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9847383247226990698,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16732130236852371275,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","min":2.0,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"unit":" px","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"is_integer":false,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17133591775058457007,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10432831427187785843,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13975451746581400000,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8934999452649011837,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,130]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2044103368441997753,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17815494794630739611,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17364155187784942740,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12062649793560663566,{"persistent_metadata":{"reference":"Merge","display_name":"Solid Red Skirt","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":3}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13231685386999438557,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3535178979443201645,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5471152581000334146,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10264089084180279094,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3802858053991775169,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"min":0.01,"blank_assist":true,"mode":"Range","range_min":1.0,"is_integer":false,"range_max":100.0},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"is_integer":true,"min":0.0},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1384427686127078856,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11417901103965737900,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"blank_assist":true,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","blank_assist":true,"is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8091904580702893317,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4332145463108161926,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-31,292]}}},"network_metadata":null}}],[11659756061767599421,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4265165189651403984,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15038739378867834454,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11553850607251055696,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7922156219537051964,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14012648643507848353,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1019037285881657884,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4350324834849900949,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5009664118231399060,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12387541320114693418,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10421722418968896452,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[615144098061106242,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1204243038352113866,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4222034829755771252,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11451028343967836482,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17336535036064625290,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6666260895482068061,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2641530639940889619,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8240895922641772563,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2440895173483452224,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1785173043494067496,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14831840560430171946,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2780251074492832077,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14946189826912398678,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3636653585682494814,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4236845268521674740,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14797986717815207528,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[501401493219507773,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16551385471328831128,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6749771744300551215,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6988349135757634271,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16536768589601337644,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14894569344576297448,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5861306074868809692,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5040278174920511484,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15177845878727456758,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17118107476414252025,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13368990606109678244,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12554368619682347699,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15303587427289959766,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10086073308516686449,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6645255982686652881,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5302437193964714993,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1659518581611333812,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17426609415699324395,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3686761601672683183,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"unit":" px","mode":"Increment","min":0.0,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","min":2.0,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"is_integer":false,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"mode":"Increment","unit":" px","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14012583111791538162,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10424806499648491677,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7659717355245331967,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11804065810513502701,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7320676248579211727,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15961046538654083626,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15518174914032911052,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10415872992231003638,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2282726379014798660,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"blank_assist":true,"unit":" px","min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":2.0,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"blank_assist":true,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18279507457571359732,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12880230498984021417,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15637103575662751567,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9782123335421401489,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13045087323693407920,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7654665057468818389,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1984475088429379731,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4078100635676202528,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2878992817082507910,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10860592954464951000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15656854169166220905,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16649851742084147477,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17147975601187022720,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4105711298139980122,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18190631752493248867,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3992858139802231032,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17207349373429328029,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10420981328998103391,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7141088190930752823,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"unit":" px","blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"mode":"Increment","blank_assist":true,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"mode":"Increment","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","min":0.0,"blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18207065424980079673,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"mode":"Increment","unit":" px","min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"blank_assist":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"unit":" px","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"mode":"Increment","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17324767436949538365,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16324258033206362312,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4832236468224231783,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14225285635863713990,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13481022631108980683,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1157261387411722141,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8230694129617719636,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8543051864256131356,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4479074488343511985,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15466714490303763249,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9740500978584792725,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15395954548128560685,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[541002100261582638,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10514847656270897393,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7466034304713056391,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15735375935164094402,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13014916927589286309,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"mode":"Range","range_max":100.0,"blank_assist":true,"min":0.01,"is_integer":false,"range_min":1.0},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","is_integer":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10918055532782314571,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7450965328305122110,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1162381870526064378,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17378885078543074499,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3649809135741361946,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17064046832210629373,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14537754528543289381,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6416452251137958677,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13475705179546695973,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16796171662855500935,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16767482995096345179,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8698602280607307123,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12219771677493189964,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[581013017684525986,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8644924780109919177,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","unit":" px","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"mode":"Increment","min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","unit":" px","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","blank_assist":true,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2660652185019504730,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","unit":" px","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","unit":" px","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","is_integer":false,"min":0.0,"blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14098374807212007572,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16530658574540156160,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11590691579869262546,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4341772758799935306,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"blank_assist":true,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":2.0,"mode":"Increment","is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"is_integer":false,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","mode":"Increment","is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[907841922684377912,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9371909264427723282,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5140869461760168364,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11565160497886435388,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"unit":" px","mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"is_integer":false,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","unit":" px","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12876462860151722087,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17078740291337047697,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-31,208]}}},"network_metadata":null}}],[15492651270767932214,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5020096817747898028,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10375238420217738812,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13035777574951374461,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11677503666435782605,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16339345235172368839,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[514796034658094296,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3150436463719911922,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":["Data"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2087303479944421366,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7821977654068146599,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17494926338451345058,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14345191642063772510,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5455777299776842371,{"persistent_metadata":{"reference":"Merge","display_name":"Beaded Skirt","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":78}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4787732047489141819,{"persistent_metadata":{"reference":"Merge","display_name":"Tucked Arm","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":24}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12224498203743157414,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17699121037850769131,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4909350123806022131,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16137033772363318157,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1167210731467447244,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15815816861435910950,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1713644030979611623,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10190227675276560561,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5185036609290210853,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17971411534648521628,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12473080738469616517,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2594533001540454577,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"mode":"Increment","min":0.0,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"mode":"Increment","min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"unit":" px","mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3414873131936208778,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11481949351661484921,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","blank_assist":true,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","unit":" px","min":0.0,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13444661581815146533,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,97]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12131058586835568367,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8697043784435445845,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13352561089252322209,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[172538270105470471,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9698363115186534174,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12428327489525325219,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6124821161363551058,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"blank_assist":true,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"mode":"Increment","min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","min":0.0,"blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14817659161913199655,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18214377096178867498,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2682920349304670808,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7893851488963635918,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11630078441485655672,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3226457726231232839,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12838133055063962839,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2175432926627256613,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,328]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6292009934909381201,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,88]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2698266912167150713,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9182448229950585507,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17207895962122263432,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9684857454501250999,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13644138583806412631,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17529660518597229229,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12801133692316734622,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"unit":" px","is_integer":false,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"mode":"Increment","min":2.0,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"mode":"Increment","unit":" px","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"blank_assist":true,"is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17967471489196302183,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13594670583065022897,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","is_integer":false,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"mode":"Increment","is_integer":true,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"unit":" px","is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"unit":" px","min":0.0,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Boundless Footprint","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[28,0]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Freeze Real Time","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[21,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12385950900718181935,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15857077552290328068,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15286091228862934481,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10127467043900015225,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13907578809542898348,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[431994205232245356,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,7]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[737.4067596403,-6318.358748666366],"tilt":0.0,"zoom":0.6328125,"flip":false},"node_graph_to_viewport":[0.6328125,0.0,0.0,0.6328125,1457.0,-3418.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[3457800614598085282],[17426704671299246894],[2699408592782313690],[4493274523708782092],[14031411536409518176],[13263961817794116841],[835795066714655983],[11477846841203274509],[727544715487174952],[6480666310383891203],[15086626938904467381],[12994398686940961368],[15086626938904467381],[],[12994398686940961368],[],[5140869461760168364],[11677503666435782605],[776454851019809551],[],[10662978266497754900],[],[13201515093260842314],[],[3932608775253338292],[],[8090442493082590595],[],[17545135276965178247],[4332145463108161926],[],[4332145463108161926],[],[4332145463108161926],[],[11356586238302409958,10086073308516686449],[],[4332145463108161926],[],[3406722917122601552],[4332145463108161926],[],[4332145463108161926],[],[10086073308516686449],[17545135276965178247],[],[17078740291337047697],[3457800614598085282],[3457800614598085282,17426704671299246894],[3457800614598085282,17426704671299246894,2699408592782313690],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,15239301303367148581],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,15239301303367148581,13263961817794116841],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,15239301303367148581,13263961817794116841],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076,9531720291230511752],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076,9531720291230511752,12792838691218304039],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076,9531720291230511752,12792838691218304039,5102308641931177440],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076,9531720291230511752,12792838691218304039,5102308641931177440,14480644719732559657],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076,9531720291230511752,12792838691218304039,5102308641931177440,14480644719732559657,3601587624047636241],[],[17078740291337047697],[3406722917122601552],[],[9470742171134780193],[14883504161508594099],[],[13163272246010991228],[],[4332145463108161926],[17078740291337047697],[],[],[17078740291337047697,3406722917122601552],[],[9470742171134780193],[13368990606109678244],[9470742171134780193],[14883504161508594099],[421715625023770179],[3670529450440935325],[4265165189651403984],[]],"selection_redo_history":[]}}},"collapsed":[4422453582814483233,4577638792388493936,3170924135668664008,4787732047489141820,12062649793560663567,5455777299776842372,9470742171134780194,15126865253122550766,13014628586360765652],"name":"red-dress.graphite","commit_hash":"8fa46ba63a69bb5fa18a49194cf112d963a2d43b","document_ptz":{"pan":[-512.5,-515.648496025349],"tilt":0.0,"zoom":1.0,"flip":false},"document_mode":"DesignMode","view_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":false,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file +{"network_interface":{"network":{"exports":[{"Node":{"node_id":2394762731964337494,"output_index":0}}],"nodes":[[10127467043900015225,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[258.00000000000006,994.6666666666664]],[2,[644.0,726.6666666666666]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-328.66666666666674,129.33333333333337]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15961046538654083626,{"inputs":[{"Node":{"node_id":1889157037801767612,"output_index":0}},{"Node":{"node_id":4332145463108161926,"output_index":0}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}},{"Value":{"tagged_value":{"F64":10.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17378885078543074499,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[4,[709.5555555555554,1026.6666666666667]],[7,[727.5555555555554,1026.6666666666663]],[2,[745.5,826.0]],[5,[740.4444444444443,857.1111111111111]],[8,[746.0000000000001,842.9999999999999]],[1,[823.2222222222221,660.4444444444445]],[3,[707.5,1026.5]],[6,[725.7777777777779,1026.370370370371]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[5,5],[7,7],[6,6],[8,8],[1,1],[2,2],[3,3],[4,4]],"end_point":[[6,7],[8,1],[5,6],[4,5],[3,4],[7,8],[1,2],[2,3]],"handle_primary":[[8,[17.33333333333337,-84.99999999999989]],[2,[-24.5,85.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]],[1,[0.0,0.0]],[7,[0.0,0.0]]],"handle_end":[[6,[0.0,0.0]],[3,[0.0,0.0]],[8,[1.772016460905547,0.9591220850479658]],[2,[0.0,0.0]],[7,[-26.8034437596026,131.4399645903585]],[5,[-7.555555555555884,-59.25925925925992]],[4,[-23.11111111111109,90.44444444444456]],[1,[24.5,-85.0]]],"stroke":[[4,0],[5,0],[3,0],[2,0],[6,0],[1,0],[7,0],[8,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14537754528543289381,{"inputs":[{"Node":{"node_id":1689789805659535712,"output_index":0}},{"Node":{"node_id":17364155187784942740,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11656581020969095354,{"inputs":[{"Node":{"node_id":8413863870096329943,"output_index":0}},{"Node":{"node_id":9698363115186534174,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4350324834849900949,{"inputs":[{"Node":{"node_id":6672826052605647592,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15857077552290328068,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[702.2222222222222,621.3333333333333]],[1,[848.8888888888889,330.66666666666663]],[3,[740.0,516.0]],[2,[820.8888888888889,395.55555555555554]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[2,3],[3,4],[1,2]],"handle_primary":[[1,[0.0,0.0]],[3,[-17.77777777777783,35.55555555555554]],[2,[-15.111111111111086,22.66666666666663]]],"handle_end":[[3,[6.222222222222172,-38.66666666666674]],[1,[15.111111111111086,-22.66666666666663]],[2,[17.77777777777783,-35.55555555555554]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15735375935164094402,{"inputs":[{"Node":{"node_id":3414873131936208778,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15239301303367148581,{"inputs":[{"Node":{"node_id":11268046366284173800,"output_index":0}},{"Node":{"node_id":5269304445610080925,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[615144098061106242,{"inputs":[{"Node":{"node_id":14675232891471617236,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11058365317860779469,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[3,[352.0,833.0]],[7,[311.3333333333333,1018.6666666666666]],[4,[397.3333333333333,770.6666666666666]],[1,[181.0,1023.0]],[2,[242.0,917.0]],[6,[368.0,902.6666666666669]],[5,[479.00000000000006,817.0]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[7,7],[5,5],[4,4],[2,2],[1,1],[3,3],[6,6]],"end_point":[[4,5],[2,3],[3,4],[7,1],[1,2],[5,6],[6,7]],"handle_primary":[[7,[0.0,0.0]],[4,[0.0,0.0]],[2,[40.0718943376238,-39.16116946631416]],[5,[-35.31654570364651,23.463149348287175]],[1,[0.0,0.0]],[6,[0.0,0.0]],[3,[37.4110841377784,-16.935189837826556]]],"handle_end":[[1,[-40.071894337623746,39.16116946631416]],[5,[45.99999999999994,-52.00000000000023]],[3,[0.0,0.0]],[6,[18.0,-55.33333333333326]],[2,[-37.4110841377784,16.935189837826556]],[7,[0.0,1.3333333333337123]],[4,[35.31654570364611,-23.463149348286947]]],"stroke":[[4,0],[2,0],[5,0],[3,0],[1,0],[7,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14946189826912398678,{"inputs":[{"Node":{"node_id":10086073308516686449,"output_index":0}},{"Node":{"node_id":12030171742672119253,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11553850607251055696,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[1,[597.5967078189302,96.04389574759946]],[7,[591.5390946502059,128.7023319615912]],[3,[594.085048010974,128.61454046639233]],[2,[596.631001371742,112.37311385459536]],[6,[609.9753086419754,133.5308641975309]],[5,[619.2812071330591,124.6639231824417]],[8,[594.962962962963,111.93415637860085]],[4,[608.570644718793,131.2482853223594]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[5,5],[2,2],[1,1],[7,7],[6,6],[8,8],[3,3],[4,4]],"end_point":[[2,3],[3,4],[8,1],[4,5],[5,6],[6,7],[7,8],[1,2]],"handle_primary":[[5,[0.0,0.0]],[1,[0.0,0.0]],[2,[-4.126200274348321,7.1111111111111]],[3,[3.5534615822588194,4.6302681223374975]],[4,[4.038408779149563,-1.492455418381354]],[7,[-2.3703703703704377,-6.057613168724245]],[8,[4.1262002743484345,-6.935528120713329]],[6,[-7.286694101508829,3.0727023319615796]]],"handle_end":[[5,[7.286694101508829,-3.0727023319615796]],[4,[0.0,0.0]],[7,[-4.1262002743484345,6.935528120713272]],[2,[-2.8971193415636662,-3.7750342935528063]],[1,[4.126200274348321,-7.111111111111114]],[8,[-0.0877914951989851,0.08779149519889984]],[6,[2.3703703703704377,6.057613168724259]],[3,[-4.038408779149563,1.492455418381354]]],"stroke":[[7,0],[3,0],[5,0],[4,0],[1,0],[8,0],[6,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4453139144069993994,{"inputs":[{"Node":{"node_id":11804065810513502701,"output_index":0}},{"Node":{"node_id":3955326429435439190,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5040278174920511484,{"inputs":[{"Node":{"node_id":14345191642063772510,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4577174813962563383,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[682.7287205627164,97.04177207029592]],[4,[683.6813083078299,66.11925839089211]],[2,[681.8346756482305,95.35045043533154]],[1,[681.3689965686843,65.32157692417977]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[4,4],[2,2]],"end_point":[[2,3],[3,4],[1,2],[4,1]],"handle_primary":[[2,[0.0,0.0]],[4,[-1.0406539360374154,-1.1405457962673182]],[3,[-1.544754703853414,-12.605862910106907]],[1,[0.0,0.0]]],"handle_end":[[2,[-0.5302752037773644,-0.69223185792994]],[4,[-1.1368683772161605e-13,-1.4210854715202004e-14]],[3,null],[1,[-2.6406503472093164,-12.592334294499352]]],"stroke":[[1,0],[3,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14225285635863713990,{"inputs":[{"Node":{"node_id":8410534738018320047,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[25.333333333333485,12.641975308641918]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11899713172487274471,{"inputs":[{"Node":{"node_id":9954843247420111867,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6580280438672662494,{"inputs":[{"Node":{"node_id":15395954548128560685,"output_index":0}},{"Node":{"node_id":14598755603287563819,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17967471489196302183,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[339.25925925925924,1025.185185185185]],[3,[334.8148148148148,1025.4814814814813]],[2,[568.8888888888889,785.4814814814813]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[2,3],[1,2],[3,1]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[3,null],[2,[42.07407407407419,-157.6296296296293]],[1,[-209.77777777777777,108.44444444444468]]],"stroke":[[2,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10086073308516686449,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":3971837674569123876,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4222034829755771252,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[161.6241426611797,258.3703703703704]],[2,[155.25925925925927,256.7901234567901]],[1,[165.5308641975309,250.07407407407408]],[3,[152.49382716049382,262.71604938271605]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[3,3],[1,1]],"end_point":[[2,3],[1,2],[4,1],[3,4]],"handle_primary":[[3,[0.0,0.0]],[4,[2.7654320987654444,-3.950617283950635]],[1,[0.0,0.0]],[2,[-1.9753086419753176,0.790123456790127]]],"handle_end":[[4,[0.0,0.0]],[1,[1.9753086419753176,-0.790123456790127]],[3,[-2.7654320987654444,3.950617283950635]],[2,[-0.3950617283950919,-1.7777777777777717]]],"stroke":[[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4307303572241320716,{"inputs":[{"Node":{"node_id":4265165189651403984,"output_index":0}},{"Node":{"node_id":4572557574846980832,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2878992817082507910,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[777.4814814814814,867.5555555555555]],[2,[738.074074074074,1027.2592592592591]],[3,[741.6296296296296,1027.5555555555557]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[1,1],[3,3]],"end_point":[[1,2],[2,3],[3,1]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[3,[-25.185185185185105,132.14814814814804]],[1,[0.0,0.0]]],"stroke":[[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9863310024364795214,{"inputs":[{"Node":{"node_id":5278509881589546420,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11025165626998987360,{"inputs":[{"Node":{"node_id":5326536612985524219,"output_index":0}},{"Node":{"node_id":4332145463108161926,"output_index":0}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":40.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-15.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15982852655074258238,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[837.9999999999998,535.8024691358025]],[2,[798.222222222222,639.8024691358025]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,1]],"handle_primary":[[1,[0.0,0.0]],[2,[31.037037037037067,-61.11111111111131]]],"handle_end":[[2,null],[1,[34.000000000000114,-59.77777777777783]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17699121037850769131,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[429.33333333333326,295.1111111111111]],[4,[158.22222222222223,332.0]],[1,[531.1111111111111,364.0]],[3,[282.2222222222222,277.3333333333333]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[1,2],[2,3],[3,4]],"handle_primary":[[1,[0.0,0.0]],[3,[-33.333333333333286,6.666666666666686]],[2,[-56.8888888888888,-24.0]]],"handle_end":[[2,[33.333333333333314,-6.666666666666686]],[3,[60.0,-41.77777777777777]],[1,[56.8888888888888,24.0]]],"stroke":[[2,0],[1,0],[3,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5174744389209053970,{"inputs":[{"Node":{"node_id":12385950900718181935,"output_index":0}},{"Node":{"node_id":5040278174920511484,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1689789805659535712,{"inputs":[{"Node":{"node_id":15637103575662751567,"output_index":0}},{"Node":{"node_id":11590691579869262546,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9778375740427894463,{"inputs":[{"Node":{"node_id":16137033772363318157,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5002654561220917457,{"inputs":[{"Node":{"node_id":11632506522064533635,"output_index":0}},{"Value":{"tagged_value":{"F64":35.0},"exposed":false}},{"Value":{"tagged_value":{"U32":206},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8699675339613677057,{"inputs":[{"Node":{"node_id":15982852655074258238,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[40.2222222222224,-10.469135802469168]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18207065424980079673,{"inputs":[{"Node":{"node_id":13035777574951374461,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2660652185019504730,{"inputs":[{"Node":{"node_id":1806828617441445250,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":8.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2959546142916532439,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.5,0.0]],[3,[0.5,1.0]],[4,[0.0,0.5]],[2,[1.0,0.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[3,4],[4,1],[1,2],[2,3]],"handle_primary":[[2,[0.0,0.27589238888950707]],[3,[-0.275892388889507,0.0]],[1,[0.27589238888950707,0.0]],[4,[0.0,-0.275892388889507]]],"handle_end":[[2,[0.27589238888950707,0.0]],[3,[0.0,0.27589238888950707]],[4,[-0.275892388889507,0.0]],[1,[0.0,-0.275892388889507]]],"stroke":[[1,0],[3,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11479098559726891734,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[2,[669.2053040695015,63.20987654320987]],[11,[694.9574759945133,76.78829446730683]],[9,[717.5491540923639,95.80978509373573]],[6,[717.9588477366254,99.32144490169182]],[10,[712.047553726566,86.56241426611797]],[3,[686.5294924554183,63.38545953360767]],[12,[683.3104709647919,64.0877914951989]],[7,[710.5648529187624,103.39887212315196]],[5,[718.310013717421,90.01554641060812]],[1,[660.660265203475,61.39551897576588]],[4,[704.5560128029263,81.29492455418381]],[8,[709.979576284103,102.93065081542449]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"start_point":[[7,7],[6,6],[10,10],[11,11],[8,8],[3,3],[1,1],[5,5],[9,9],[12,12],[2,2],[4,4]],"end_point":[[2,3],[8,9],[7,8],[12,1],[4,5],[9,10],[1,2],[11,12],[5,6],[3,4],[6,7],[10,11]],"handle_primary":[[12,[-12.8760859625055,-0.4682213077274682]],[10,[-4.096936442615174,-1.872885230909901]],[7,[-0.585276634659408,-0.4682213077274753]],[2,[5.4430727023319605,-0.6438042981252892]],[3,[3.4531321444902687,2.1655235482396193]],[6,[-1.9184335509834227,1.995170893022717]],[1,[0.0,0.0]],[5,[1.1120256058526363,1.9314128943758817]],[4,[8.369455875628773,2.867855509830818]],[9,[0.17558299039785652,-3.5116598079561214]],[8,[0.0,0.0]],[11,[-5.618655692729931,-7.257430269775952]]],"handle_end":[[9,[4.0931309699032,1.8711455862415676]],[6,[1.706505264591101,-0.4025776799149554]],[1,[-5.4430727023319605,0.6438042981252892]],[4,[-1.8416562954789697,-3.1986661974113133]],[3,[-8.369455875628773,-2.867855509830818]],[2,[-3.4853769593560173,-2.1857448728164144]],[7,null],[11,[4.036165212980222,0.14676964410837456]],[12,[4.9748513946045705,5.91129401005945]],[5,[2.926383173296813,-3.043438500228561]],[10,[5.464020763447934,7.057693486120044]],[8,[-0.17558299039785652,3.511659807956093]]],"stroke":[[1,0],[2,0],[10,0],[3,0],[9,0],[5,0],[4,0],[12,0],[8,0],[6,0],[7,0],[11,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":12}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6282972142629473139,{"inputs":[{"Node":{"node_id":15815816861435910950,"output_index":0}},{"Node":{"node_id":15578929303912288394,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3406722917122601552,{"inputs":[{"Value":{"tagged_value":"None","exposed":false}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::generator_nodes::CircleNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16530658574540156160,{"inputs":[{"Node":{"node_id":11666664915283969027,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[23.70370370370381,12.641975308641918]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1167210731467447244,{"inputs":[{"Node":{"node_id":16551385471328831128,"output_index":0}},{"Node":{"node_id":10432831427187785843,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4248321400839848160,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":13231685386999438557,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[907841922684377912,{"inputs":[{"Node":{"node_id":17336535036064625290,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12219771677493189964,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":5140869461760168364,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9954843247420111867,{"inputs":[{"Node":{"node_id":6988349135757634271,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.14046639231827385,0.1473642955124319]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10619788176782820865,{"inputs":[{"Node":{"node_id":2397243911096708995,"output_index":0}},{"Node":{"node_id":1157261387411722141,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14285767317419627814,{"inputs":[{"Node":{"node_id":6749771744300551215,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12049041947382267086,{"inputs":[{"Node":{"node_id":2959546142916532439,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[25.77777777777777,508.44444444444446]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[8.0,8.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11573595155909211511,{"inputs":[{"Node":{"node_id":10127467043900015225,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17891208858820401648,{"inputs":[{"Node":{"node_id":1204243038352113866,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-7.407407407407391,4.740740740740762]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15949658764632267703,{"inputs":[{"Node":{"node_id":14012583111791538162,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13352561089252322209,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[615.5555555555555,1025.7777777777778]],[1,[612.0,1025.3333333333333]],[3,[752.4444444444443,739.1111111111111]],[2,[749.7777777777777,741.7777777777778]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[2,2],[3,3],[4,4]],"end_point":[[1,2],[3,4],[4,1],[2,3]],"handle_primary":[[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[-112.0,179.55555555555577]],[2,[0.0,0.0]],[3,[28.000000000000114,-107.55555555555544]],[4,[-0.4444444444444571,0.0]]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10689298484366290551,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[156.93571992954355,246.07901729349]],[3,[155.85185185185185,253.03703703703707]],[2,[151.22962962962964,252.1283950617284]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[3,3],[2,2]],"end_point":[[3,1],[2,3],[1,2]],"handle_primary":[[1,[-2.071522398679349,1.8617234472507391]],[2,[-0.4744436253241133,1.2651830008642833]],[3,[1.0949818244169762,-0.3546380887060252]]],"handle_end":[[3,[1.9215307714004553,1.0902372408288272]],[2,[-1.0949818244169762,0.3546380887060252]],[1,[0.9481481481481068,-2.5283950617284177]]],"stroke":[[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1785173043494067496,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[770.2222222222222,459.1111111111111]],[2,[636.4444444444443,579.5555555555555]],[1,[566.6666666666666,576.0]],[3,[712.0,519.1111111111111]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[1,2],[2,3],[3,4]],"handle_primary":[[2,[31.1111111111112,-17.33333333333337]],[3,[18.22222222222217,-21.777777777777715]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[-31.1111111111112,17.33333333333337]],[2,[-18.22222222222217,21.777777777777715]]],"stroke":[[3,0],[2,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12554368619682347699,{"inputs":[{"Node":{"node_id":2594533001540454577,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13261814586176172586,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"remove":[],"delta":[[8,[686.5302034429451,490.6109861193811]],[13,[736.8888888888889,432.2962962962963]],[3,[851.1111111111111,237.7777777777778]],[5,[829.8271604938273,345.08641975308643]],[1,[799.1111111111112,188.14814814814815]],[14,[782.8148148148148,378.96296296296293]],[16,[809.1851851851852,207.1111111111111]],[10,[755.3580246913581,432.5925925925926]],[6,[775.5061728395061,429.23456790123464]],[12,[715.8518518518517,452.14814814814815]],[11,[719.9999999999999,460.8395061728396]],[9,[758.716049382716,441.8765432098765]],[4,[858.6666666666666,268.88888888888886]],[2,[827.2592592592594,206.41975308641975]],[15,[817.4814814814815,272.2962962962963]],[7,[680.4331323644109,506.0568995183343]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"remove":[],"start_point":[[16,16],[15,15],[14,14],[1,1],[4,4],[8,8],[10,10],[6,6],[13,13],[11,11],[3,3],[7,7],[9,9],[5,5],[12,12],[2,2]],"end_point":[[9,10],[3,4],[1,2],[10,11],[16,1],[14,15],[7,8],[2,3],[5,6],[15,16],[6,7],[11,12],[8,9],[12,13],[4,5],[13,14]],"handle_primary":[[12,[0.0,0.0]],[8,[37.39536928167615,-11.787670751832536]],[1,[0.0,0.0]],[5,[-31.06481223802939,48.93526760703577]],[9,[0.0,0.0]],[7,null],[6,[-36.541158121167314,42.67873357730855]],[15,[5.925925925925867,-34.96296296296299]],[10,[0.0,0.0]],[13,[0.0,0.0]],[2,[0.0,0.0]],[3,[9.086419753086489,9.086419753086432]],[11,[0.0,0.0]],[16,[0.0,0.0]],[4,[-2.5679012345678984,17.77777777777777]],[14,[20.148148148148152,-33.481481481481524]]],"handle_end":[[13,[-20.148148148148152,33.481481481481524]],[11,[0.0,0.0]],[6,[22.320987654321016,-14.222222222222342]],[1,[0.0,0.0]],[14,[-5.925925925925867,34.96296296296299]],[10,[0.0,0.0]],[4,[31.06481223802939,-48.93526760703571]],[7,null],[5,[18.3855550289378,-21.473654506216747]],[3,[2.5679012345678984,-17.77777777777777]],[8,[-11.555555555555657,17.18518518518522]],[12,[0.0,0.0]],[16,[0.0,0.0]],[15,[6.51851851851859,11.851851851851848]],[9,[0.0,0.0]],[2,[-9.086419753086489,-9.086419753086432]]],"stroke":[[9,0],[5,0],[2,0],[10,0],[1,0],[13,0],[7,0],[3,0],[6,0],[15,0],[12,0],[16,0],[11,0],[8,0],[14,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":16}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11616089678400336955,{"inputs":[{"Node":{"node_id":2660652185019504730,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.8},"exposed":false}},{"Value":{"tagged_value":{"F64":3.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17336535036064625290,{"inputs":[{"Node":{"node_id":10421722418968896452,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[49.47996245659249,5.913900401382151]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.9277405532359332,0.9277405532359332]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1621196991038859321,{"inputs":[{"Node":{"node_id":15857077552290328068,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3150436463719911922,{"inputs":[{"Node":{"node_id":18214377096178867498,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5455777299776842371,{"inputs":[{"Node":{"node_id":9470742171134780193,"output_index":0}},{"Node":{"node_id":7385465194555106679,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13045580349734858212,{"inputs":[{"Node":{"node_id":10795820039540504703,"output_index":0}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10432831427187785843,{"inputs":[{"Node":{"node_id":2087303479944421366,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14209241002058525241,{"inputs":[{"Node":{"node_id":16290933138334939444,"output_index":0}},{"Node":{"node_id":10918055532782314571,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9374264173303233490,{"inputs":[{"Node":{"node_id":1713644030979611623,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8934999452649011837,{"inputs":[{"Node":{"node_id":16796171662855500935,"output_index":0}},{"Node":{"node_id":16756940771483104467,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4787732047489141819,{"inputs":[{"Node":{"node_id":12062649793560663566,"output_index":0}},{"Node":{"node_id":4248321400839848160,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16614450796751955858,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[3,[481.33333333333337,826.6666666666666]],[7,[918.6666666666664,604.6666666666666]],[2,[757.1358024691358,661.5308641975308]],[4,[327.3333333333333,1024.6666666666663]],[6,[845.3333333333333,842.0000000000001]],[1,[902.6666666666666,446.6666666666667]],[5,[807.3333333333334,1026.0]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[6,6],[7,7],[4,4],[2,2],[1,1],[3,3],[5,5]],"end_point":[[6,7],[2,3],[7,1],[3,4],[5,6],[4,5],[1,2]],"handle_primary":[[2,[-138.41983388553547,108.26897897977506]],[3,[-131.33333333333337,78.66666666666652]],[5,[0.0,0.0]],[6,[49.4943341398548,-116.98660796692934]],[7,[16.000000000000227,-89.99999999999989]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[5,[-36.66666666666663,86.66666666666652]],[1,[134.66666666666686,-105.33333333333326]],[7,[3.3333333333333712,32.00000000000006]],[3,[0.0,0.0]],[6,[-16.71260304301461,94.00839211695676]],[2,[143.2366194125077,-85.79655375977609]]],"stroke":[[5,0],[7,0],[2,0],[3,0],[4,0],[1,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6666260895482068061,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[646.4033730994855,154.80329633678198]],[2,[645.6821893629258,155.3850506865855]],[4,[645.3845450388659,135.9012345679012]],[1,[643.0921942512911,135.30336230847865]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[4,1],[2,3],[1,2],[3,4]],"handle_primary":[[4,[0.0,0.0]],[3,[-0.2558402858584259,-10.083527774255913]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[-0.05703059647760256,-13.444628325495556]],[2,[-0.3446760851414865,0.611494768909921]],[3,[0.0,0.0]],[4,[1.68322954928135,-0.022087435068414152]]],"stroke":[[4,0],[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7893851488963635918,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[125.0,420.0]],[2,[24.0,486.0]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[23.0,-70.0]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3802858053991775169,{"inputs":[{"Node":{"node_id":11058365317860779469,"output_index":0}},{"Value":{"tagged_value":{"F64":25.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11199691961479466803,{"inputs":[{"Node":{"node_id":7141088190930752823,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7141088190930752823,{"inputs":[{"Node":{"node_id":541002100261582638,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18319784717194273926,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[1,[172.22222222222217,564.7777777777779]],[11,[595.0,690.0]],[9,[828.0,570.2222222222221]],[4,[574.6666666666666,712.4444444444443]],[7,[558.6666666666666,749.7777777777778]],[5,[418.2222222222222,754.6666666666666]],[12,[437.99999999999994,690.0]],[10,[610.6666666666666,712.4444444444443]],[2,[150.22222222222223,568.4444444444445]],[8,[706.6666666666666,687.5555555555554]],[6,[443.1111111111111,783.1111111111111]],[3,[167.0,691.0]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"start_point":[[8,8],[4,4],[10,10],[9,9],[3,3],[6,6],[11,11],[12,12],[2,2],[7,7],[1,1],[5,5]],"end_point":[[2,3],[9,10],[4,5],[10,11],[1,2],[7,8],[6,7],[3,4],[5,6],[11,12],[12,1],[8,9]],"handle_primary":[[5,[0.0,0.0]],[10,[0.0,0.0]],[3,[0.0,0.0]],[6,[0.0,0.0]],[8,[60.44444444444446,-39.55555555555566]],[2,[18.111111111111057,85.22222222222229]],[12,[-98.22222222222224,-28.0]],[4,[0.0,0.0]],[9,[0.0,0.0]],[11,[0.0,0.0]],[1,[0.0,0.0]],[7,[32.888888888888914,-13.333333333333483]]],"handle_end":[[11,[98.22222222222224,28.0]],[5,[-18.66666666666663,-4.888888888888914]],[7,[-60.44444444444446,39.55555555555566]],[3,[-128.44444444444446,26.22222222222217]],[2,null],[6,[-32.888888888888914,13.333333333333483]],[4,[54.22222222222223,-9.333333333333371]],[9,[145.77777777777771,-61.777777777777715]],[1,null],[8,[0.0,0.0]],[12,[161.33333333333337,34.66666666666674]],[10,[-1.3333333333333712,21.77777777777783]]],"stroke":[[5,0],[8,0],[6,0],[1,0],[10,0],[3,0],[12,0],[7,0],[11,0],[2,0],[4,0],[9,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":12}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4479074488343511985,{"inputs":[{"Node":{"node_id":11479098559726891734,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6156863,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6156863,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16137033772363318157,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[720.417009602195,178.00603566529497]],[3,[720.1360768175583,181.58792866941016]],[1,[688.566255144033,175.3371742112483]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[1,1],[3,3]],"end_point":[[1,2],[3,1],[2,3]],"handle_primary":[[3,[-1.1237311385458495,-3.125377229080982]],[1,[29.423007364946784,-0.024697364703285984]],[2,[1.8041152263373303,2.00164609053499]]],"handle_end":[[1,null],[2,null],[3,[12.04499314128941,0.8076817558298615]]],"stroke":[[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3170924135668664007,{"inputs":[{"Node":{"node_id":4787732047489141819,"output_index":0}},{"Node":{"node_id":13444661581815146533,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16051539163551573193,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[708.0000000000001,769.3333333333333]],[3,[514.6666666666666,1025.7777777777778]],[5,[588.0,930.6666666666666]],[2,[609.7777777777777,896.0]],[4,[519.1111111111111,1026.2222222222222]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[2,2],[4,4],[1,1],[3,3],[5,5]],"end_point":[[4,5],[2,3],[5,1],[3,4],[1,2]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[5,[24.0,-29.77777777777783]],[2,[-54.66666666666663,69.33333333333314]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[54.66666666666663,-69.33333333333326]],[2,[0.0,0.0]],[4,[-24.0,29.777777777777715]],[5,[-28.44444444444457,47.111111111111086]]],"stroke":[[5,0],[4,0],[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6292009934909381201,{"inputs":[{"Node":{"node_id":10424806499648491677,"output_index":0}},{"Node":{"node_id":9778375740427894463,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1204243038352113866,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[837.3333333333334,653.6296296296296]],[1,[808.8888888888889,832.2962962962965]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[1,2],[2,1]],"handle_primary":[[1,[0.0,0.0]],[2,[-26.22222222222217,80.29629629629608]]],"handle_end":[[2,[0.0,-0.4444444444443434]],[1,[-22.22222222222217,79.40740740740739]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4572557574846980832,{"inputs":[{"Node":{"node_id":13014916927589286309,"output_index":0}},{"Node":{"node_id":4332145463108161926,"output_index":0}},{"Value":{"tagged_value":{"F64":0.5},"exposed":false}},{"Value":{"tagged_value":{"F64":30.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-60.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17494926338451345058,{"inputs":[{"Node":{"node_id":1167210731467447244,"output_index":0}},{"Node":{"node_id":9529195152569434392,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14098374807212007572,{"inputs":[{"Node":{"node_id":17494926338451345058,"output_index":0}},{"Node":{"node_id":10336592647221792772,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12062649793560663566,{"inputs":[{"Node":{"node_id":5455777299776842371,"output_index":0}},{"Node":{"node_id":8934999452649011837,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3992858139802231032,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[648.9547325102881,151.8792866941015]],[2,[635.8445358939186,153.225422953818]],[1,[634.615454961134,135.08184727937814]],[4,[645.384545038866,135.90123456790124]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[2,2],[3,3]],"end_point":[[1,2],[2,3],[3,4],[4,1]],"handle_primary":[[3,[1.8143575674440624,-2.575217192501128]],[1,[0.0,0.0]],[4,[0.0,0.0]],[2,[6.203932327389111,7.491540923639718]]],"handle_end":[[2,[-1.8143575674440624,2.575217192501128]],[4,[9.247370827617717,-0.3511659807956278]],[3,[6.730681298582454,7.257430269775966]],[1,[-6.203932327389111,-7.491540923639718]]],"stroke":[[2,0],[4,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8091904580702893317,{"inputs":[{"Node":{"node_id":15446793500614592278,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15492651270767932214,{"inputs":[{"Node":{"node_id":6580280438672662494,"output_index":0}},{"Node":{"node_id":2698266912167150713,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10918055532782314571,{"inputs":[{"Node":{"node_id":7447657690776686262,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18067513817508158001,{"inputs":[{"Node":{"node_id":16649851742084147477,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1661691009086487874,{"inputs":[{"Node":{"node_id":14797986717815207528,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14029368390543839187,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[808.0,413.33333333333337]],[1,[604.8888888888889,523.5555555555557]],[2,[668.4444444444445,516.4444444444443]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,3]],"handle_primary":[[2,[23.1111111111112,-9.7777777777776]],[1,[0.0,0.0]]],"handle_end":[[1,[-23.1111111111112,9.7777777777776]],[2,[-59.111111111111086,58.22222222222223]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15896921950407486754,{"inputs":[{"Node":{"node_id":13163272246010991228,"output_index":0}},{"Node":{"node_id":11199691961479466803,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15466714490303763249,{"inputs":[{"Node":{"node_id":10514847656270897393,"output_index":0}},{"Node":{"node_id":11659756061767599421,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2659768650911099730,{"inputs":[{"Node":{"node_id":13045087323693407920,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":6.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12224498203743157414,{"inputs":[{"Node":{"node_id":2878992817082507910,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13045087323693407920,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[19.0,494.0]],[2,[227.0,496.0]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-98.0,-55.0]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8240895922641772563,{"inputs":[{"Node":{"node_id":16530658574540156160,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13644138583806412631,{"inputs":[{"Node":{"node_id":2641530639940889619,"output_index":0}},{"Node":{"node_id":12473080738469616517,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11021243031011826737,{"inputs":[{"Node":{"node_id":16446146761452576438,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17064046832210629373,{"inputs":[{"Node":{"node_id":12219771677493189964,"output_index":0}},{"Node":{"node_id":11677503666435782605,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10420981328998103391,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[694.2222222222222,623.5555555555554]],[2,[844.4444444444443,460.44444444444434]],[1,[859.5555555555554,375.1111111111111]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[-11.999999999999886,30.6666666666668]]],"handle_end":[[1,[11.055745483535702,-28.253571791258253]],[2,[76.88888888888891,-30.666666666666742]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15460109068588328521,{"inputs":[{"Node":{"node_id":5185036609290210853,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9019608,"green":0.8,"blue":0.6,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9019608,"green":0.8,"blue":0.6,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17815494794630739611,{"inputs":[{"Node":{"node_id":14079496619264986678,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4131094614457622424,{"inputs":[{"Node":{"node_id":11356586238302409958,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10860592954464951000,{"inputs":[{"Node":{"node_id":4236845268521674740,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12387541320114693418,{"inputs":[{"Node":{"node_id":5471152581000334146,"output_index":0}},{"Node":{"node_id":15460109068588328521,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9182448229950585507,{"inputs":[{"Node":{"node_id":12496143061817048445,"output_index":0}},{"Node":{"node_id":7320676248579211727,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[431994205232245356,{"inputs":[{"Node":{"node_id":12387541320114693418,"output_index":0}},{"Node":{"node_id":14894569344576297448,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12594527670567285670,{"inputs":[{"Node":{"node_id":4663768795652429571,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14345191642063772510,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[838.2222222222222,766.6666666666669]],[3,[813.3557395833334,961.1454375]],[1,[880.8888888888888,556.4444444444443]],[2,[833.7777777777777,780.4444444444443]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[2,2],[4,4]],"end_point":[[1,2],[2,3],[4,1],[3,4]],"handle_primary":[[4,[10.643023589139377,-58.51588472312813]],[1,[0.0,0.0]],[2,[-9.333333333333371,54.66666666666674]],[3,[0.0,0.0]]],"handle_end":[[1,[9.333333333333371,-54.66666666666674]],[4,[-0.4444444444444571,-0.8888888888888005]],[3,[-10.643023589139377,58.51588472312813]],[2,[0.0,0.0]]],"stroke":[[3,0],[1,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12531351117929704587,{"inputs":[{"Node":{"node_id":11194653561109699287,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12801133692316734622,{"inputs":[{"Node":{"node_id":17699121037850769131,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12385950900718181935,{"inputs":[{"Node":{"node_id":4372998635946271235,"output_index":0}},{"Node":{"node_id":615144098061106242,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1713644030979611623,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[404.0,882.6666666666666]],[2,[321.33333333333326,1022.0]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[30.96296296296316,-100.2222222222224]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3649809135741361946,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[787.1111111111111,414.66666666666663]],[2,[841.3333333333333,336.8888888888889]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-21.333333333333258,48.888888888888914]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5213978458941436169,{"inputs":[{"Node":{"node_id":13261814586176172586,"output_index":0}},{"Value":{"tagged_value":{"F64":7.0},"exposed":false}},{"Value":{"tagged_value":{"U32":10},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4663768795652429571,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[2,[696.6255144032922,96.92181069958846]],[1,[691.7530864197531,86.91358024691357]],[4,[713.0620332266423,107.3007163542143]],[5,[710.8379820149368,102.96966925773508]],[6,[706.633744855967,98.10699588477364]],[3,[708.8285322359397,101.48696844993144]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[1,1],[2,2],[4,4],[5,5],[6,6]],"end_point":[[6,1],[2,3],[5,6],[4,5],[3,4],[1,2]],"handle_primary":[[2,[6.057613168724288,1.9753086419753032]],[6,[-6.847736625514244,-2.3703703703703525]],[5,[-0.8974241731443726,-2.770309404054231]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[1.7753391251332005,4.7992684042066]]],"handle_end":[[1,[-6.057613168724288,-1.9753086419753032]],[2,[-0.7886938944185431,-2.1320736046921525]],[3,[-0.9218106995884908,-0.3950617283950635]],[6,[1.1851851851849915,8.823045267489718]],[4,[0.786301337230384,2.4272780410153985]],[5,[2.9051419934493197,1.005626074655538]]],"stroke":[[5,0],[6,0],[2,0],[3,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10599660455959346550,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[572.0,570.2222222222222]],[1,[478.2222222222222,515.1111111111111]],[4,[745.3333333333333,471.55555555555554]],[3,[654.6666666666666,546.6666666666666]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[3,3],[2,2]],"end_point":[[1,2],[2,3],[3,4]],"handle_primary":[[2,[31.555555555555543,7.555555555555543]],[3,[26.222222222222285,-16.0]],[1,[0.0,0.0]]],"handle_end":[[2,[-26.222222222222285,16.0]],[1,[-31.555555555555543,-7.555555555555543]],[3,[0.0,0.0]]],"stroke":[[2,0],[1,0],[3,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16756940771483104467,{"inputs":[{"Node":{"node_id":13975451746581400000,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17207895962122263432,{"inputs":[{"Node":{"node_id":11573595155909211511,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2175432926627256613,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14982414026754548178,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17945736750161448391,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[688.3433248095167,92.67923984990472]],[4,[687.6968543916372,70.6398816184091]],[3,[687.4660700953133,94.52064202140812]],[1,[689.4327280262556,73.68042956754955]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3]],"end_point":[[2,3],[4,1],[3,4],[1,2]],"handle_primary":[[1,[-1.460603632035259,12.298077567102167]],[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[-0.975596082205584,-10.16276974584038]]],"handle_end":[[3,[0.0,0.0]],[2,[0.6631784948407358,-0.4471776104951459]],[4,[-0.3670368206467174,-1.6914035044494111]],[1,null]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16324258033206362312,{"inputs":[{"Node":{"node_id":16732130236852371275,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14079496619264986678,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[609.2839506172841,76.74074074074073]],[1,[597.2345679012346,77.92592592592592]],[2,[608.9876543209878,75.25925925925925]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[1,2],[2,3],[3,1]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[3,[8.09876543209873,0.2962962962962763]],[1,[-6.222222222222172,-0.9876543209876588]]],"stroke":[[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10253927692147706615,{"inputs":[{"Node":{"node_id":7262199696924786895,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9529195152569434392,{"inputs":[{"Node":{"node_id":3121275823460307102,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12876462860151722087,{"inputs":[{"Node":{"node_id":10619788176782820865,"output_index":0}},{"Node":{"node_id":10415872992231003638,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11268046366284173800,{"inputs":[{"Node":{"node_id":4453139144069993994,"output_index":0}},{"Node":{"node_id":11616089678400336955,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15303587427289959766,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[818.2222222222222,566.2222222222222]],[1,[610.6666666666666,706.6666666666666]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-82.66666666666674,97.77777777777771]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12761901161949743155,{"inputs":[{"Node":{"node_id":7659717355245331967,"output_index":0}},{"Node":{"node_id":8091904580702893317,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14887821801874852671,{"inputs":[{"Node":{"node_id":8230694129617719636,"output_index":0}},{"Node":{"node_id":18279507457571359732,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6416452251137958677,{"inputs":[{"Node":{"node_id":9374264173303233490,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11194653561109699287,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[604.3716161316235,95.4260819221956]],[4,[605.761316872428,82.28989483310471]],[5,[602.0316509633005,90.5516059992284]],[6,[603.4567901234567,92.83950617283948]],[2,[607.4000914494741,86.85505258344766]],[3,[623.4951989026065,81.23639689071788]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[1,1],[5,5],[4,4],[3,3],[6,6]],"end_point":[[1,2],[4,5],[6,1],[3,4],[2,3],[5,6]],"handle_primary":[[5,[0.0,0.0]],[6,[0.3965701826469967,0.8240731861035471]],[3,[-0.7803688462123546,-2.7117817405883216]],[4,[-3.2460274482192517,2.85650415443304]],[2,[3.687242798354191,-3.4531321444901835]],[1,[0.0,0.0]]],"handle_end":[[4,[-0.10095077423932251,-1.27829797882373]],[2,[-1.0144795000761633,1.6192653558908745]],[5,[-0.3896135191956773,-0.8096172333722365]],[6,[-2.273736754432321e-13,-4.263256414560601e-14]],[3,[4.389574759945049,-3.862825788751721]],[1,[-3.3249738510837687,3.113864400221118]]],"stroke":[[6,0],[1,0],[3,0],[2,0],[5,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7747398671834040298,{"inputs":[{"Node":{"node_id":18319784717194273926,"output_index":0}},{"Value":{"tagged_value":{"F64":30.0},"exposed":false}},{"Value":{"tagged_value":{"U32":47},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1869448627329502330,{"inputs":[{"Node":{"node_id":3827449344952693766,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16796171662855500935,{"inputs":[{"Node":{"node_id":14993053984267866751,"output_index":0}},{"Node":{"node_id":9371909264427723282,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14012648643507848353,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[613.7152263374486,29.076543209876547]],[4,[613.6098765432099,30.393415637860084]],[1,[610.080658436214,28.760493827160495]],[3,[615.7168724279835,33.05349794238683]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1]],"end_point":[[1,2],[4,1],[3,4],[2,3]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[1.5990193552247547,1.4582133097558128]],[4,[-1.3168724279836397,-1.343209876543213]]],"handle_end":[[3,[0.7962610294339356,0.812186250022549]],[2,[-0.05267489711934559,-0.9218106995884768]],[4,[0.05267489711934559,0.02633744855966924]],[1,[-1.447323438899616,-1.3198753943965968]]],"stroke":[[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7525593029671097583,{"inputs":[{"Node":{"node_id":16175421708184657649,"output_index":0}},{"Node":{"node_id":15735375935164094402,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14894569344576297448,{"inputs":[{"Node":{"node_id":5555007473125503522,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15578929303912288394,{"inputs":[{"Node":{"node_id":10770443343193024138,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10133176481349663495,{"inputs":[{"Node":{"node_id":12876462860151722087,"output_index":0}},{"Node":{"node_id":11021243031011826737,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4332145463108161926,{"inputs":[{"Node":{"node_id":3406722917122601552,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9740500978584792725,{"inputs":[{"Node":{"node_id":14946189826912398678,"output_index":0}},{"Node":{"node_id":10586744777717861556,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10421722418968896452,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[691.7384545038866,78.07590306355738]],[1,[677.8673982624599,66.19478737997257]],[2,[683.3689986282578,99.49702789208962]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[2,2],[1,1]],"end_point":[[3,1],[2,3],[1,2]],"handle_primary":[[2,[0.34676700844204333,0.512429191350904]],[1,[-0.49434169374126213,0.7369041683249975]],[3,[0.12630166293718048,-1.7247569518707309]]],"handle_end":[[3,[5.6142033131263815,-8.368968014727507]],[1,[-7.636184307015128,-11.284244620129414]],[2,[-1.4537474229852023,19.852161212683583]]],"stroke":[[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16551385471328831128,{"inputs":[{"Node":{"node_id":14991324592500870173,"output_index":0}},{"Node":{"node_id":17207349373429328029,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6532401937876437300,{"inputs":[{"Node":{"node_id":3992858139802231032,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3971837674569123876,{"inputs":[{"Node":{"node_id":4131094614457622424,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":3.3528},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6988349135757634271,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[188.0493827160494,269.116049382716]],[1,[189.14614932392712,263.9984322947286]],[4,[184.5962505715592,263.55006858710567]],[3,[183.0891632373113,268.771154223006]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[1,1],[4,4],[2,2]],"end_point":[[1,2],[2,3],[4,1],[3,4]],"handle_primary":[[1,[1.552958476004363,1.9059035841873424]],[4,[1.697261300324044,-1.9917992948792855]],[2,[-1.9972565157751203,0.9588085439937686]],[3,[-0.9800640224909783,-1.3570273385153655]]],"handle_end":[[2,[1.0091841400482906,1.3973479652491392]],[4,[-1.464617942413156,-1.7974856565980986]],[3,[-1.5959762231368018,1.872937487752267]],[1,[3.459421910557637,-1.6607397492127802]]],"stroke":[[3,0],[1,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1384427686127078856,{"inputs":[{"Node":{"node_id":17064046832210629373,"output_index":0}},{"Node":{"node_id":17529660518597229229,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14057307926677215422,{"inputs":[{"Node":{"node_id":5861306074868809692,"output_index":0}},{"Node":{"node_id":7450965328305122110,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4832236468224231783,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[369.77777777777777,381.7777777777778]],[1,[232.44444444444443,332.8888888888889]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-73.77777777777777,-53.77777777777777]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14991324592500870173,{"inputs":[{"Node":{"node_id":542361600097372754,"output_index":0}},{"Node":{"node_id":10860592954464951000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11630078441485655672,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[760.6913580246915,657.5802469135803]],[2,[751.4074074074075,685.0370370370371]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,1]],"handle_primary":[[1,[0.0,0.0]],[2,[4.543209876543187,-10.271604938271594]]],"handle_end":[[1,[7.111111111110972,-8.44444444444457]],[2,null]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3970516859959908758,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[170.96296296296293,544.5925925925925]],[1,[49.77777777777773,636.148148148148]],[2,[78.22222222222219,579.2592592592591]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,3]],"handle_primary":[[2,[27.259259259259252,-24.88888888888891]],[1,[0.0,0.0]]],"handle_end":[[1,[-27.259259259259267,24.88888888888891]],[2,[-21.62962962962962,-2.0740740740740193]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13302269488061286120,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[262.66666666666674,903.3333333333331]],[2,[565.3333333333335,756.6666666666666]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-200.66666666666652,64.66666666666663]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1889157037801767612,{"inputs":[{"Node":{"node_id":17324767436949538365,"output_index":0}},{"Value":{"tagged_value":{"F64":30.0},"exposed":false}},{"Value":{"tagged_value":{"U32":18},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10270446074640675342,{"inputs":[{"Node":{"node_id":14883504161508594099,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4078100635676202528,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"remove":[],"delta":[[22,[607.6312757201646,47.64444444444445]],[5,[653.9851851851852,38.99259259259259]],[26,[607.3152263374486,46.38024691358025]],[21,[605.3925925925926,49.42222222222222]],[18,[621.2740740740741,37.21481481481481]],[25,[604.6288065843622,39.321810699588475]],[20,[601.2444444444444,36.859259259259254]],[14,[698.3111111111111,43.61481481481481]],[24,[605.998353909465,33.79094650205761]],[11,[665.4814814814815,56.05925925925925]],[23,[608.5794238683127,44.82633744855967]],[6,[676.2666666666667,48.47407407407407]],[4,[627.9111111111112,43.73333333333333]],[13,[707.0814814814814,53.33333333333333]],[8,[667.2592592592594,52.029629629629625]],[3,[613.4518518518519,35.43703703703703]],[15,[677.925925925926,46.222222222222214]],[9,[642.4888888888889,44.44444444444444]],[10,[653.1555555555556,49.89629629629629]],[2,[603.4962962962964,36.977777777777774]],[19,[613.4518518518519,26.429629629629623]],[16,[661.0962962962963,35.792592592592584]],[17,[639.762962962963,37.45185185185185]],[12,[683.3777777777777,50.48888888888889]],[1,[606.3407407407408,47.76296296296296]],[7,[684.4444444444445,46.1037037037037]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26],"remove":[],"start_point":[[22,22],[14,14],[20,20],[21,21],[17,17],[19,19],[9,9],[5,5],[12,12],[4,4],[25,25],[11,11],[10,10],[23,23],[3,3],[7,7],[6,6],[1,1],[18,18],[26,26],[15,15],[24,24],[16,16],[13,13],[2,2],[8,8]],"end_point":[[2,3],[24,25],[18,19],[17,18],[6,7],[3,4],[4,5],[21,22],[12,13],[5,6],[15,16],[7,8],[19,20],[9,10],[1,2],[22,23],[13,14],[16,17],[25,26],[8,9],[11,12],[23,24],[14,15],[26,1],[10,11],[20,21]],"handle_primary":[[5,[10.311111111111131,0.5925925925925952]],[9,[0.0,0.0]],[26,[0.0,0.0]],[4,[6.992592592592587,-0.23703703703703383]],[6,[4.5037037037037635,1.1851851851851831]],[3,[2.9629629629629335,4.385185185185186]],[23,[-2.2123456790121736,-2.3967078189300537]],[10,[2.251851851851825,2.2518518518518533]],[14,[-10.90370370370374,-2.6074074074074076]],[25,[0.18814026836287212,2.510418336797158]],[18,[-3.437037037037044,-4.148148148148145]],[11,[3.318518518518431,-0.11851851851851336]],[13,[0.0,0.0]],[20,[-1.5407407407407163,8.651851851851852]],[1,[0.0,0.0]],[15,[-2.844444444444548,-0.829629629629629]],[24,[0.0,0.0]],[21,[0.0,0.0]],[17,[-6.992592592592587,2.962962962962962]],[22,[0.0,0.0]],[19,[-3.3185185185185446,-1.1851851851851831]],[2,[2.1333333333333258,-5.68888888888889]],[8,[-10.666666666666629,-0.7111111111111157]],[7,[0.0,0.0]],[12,[6.9925925925927,-4.740740740740748]],[16,[-5.214814814814758,-1.3037037037037038]]],"handle_end":[[13,[10.90370370370374,2.6074074074074076]],[15,[5.214814814814758,1.3037037037037038]],[24,[-0.13898543393838736,-1.8545289902200464]],[14,[2.844444444444548,0.829629629629629]],[26,[0.0,0.0]],[5,[-4.5037037037037635,-1.1851851851851904]],[23,[0.0,0.0]],[1,[-2.1333333333333258,5.68888888888889]],[9,[-2.251851851851825,-2.2518518518518533]],[25,[0.0,0.0]],[2,[-2.9629629629629335,-4.385185185185186]],[20,[0.0,0.0]],[17,[3.437037037037044,4.148148148148145]],[10,[-3.318518518518431,0.11851851851851336]],[6,[0.0,0.0]],[8,[9.36296296296291,-2.4888888888888943]],[16,[6.992592592592587,-2.962962962962962]],[7,[10.666666666666629,0.7111111111111086]],[18,[3.3185185185185446,1.1851851851851831]],[12,[-3.0814814814815463,-9.48148148148148]],[3,[-6.992592592592587,0.23703703703703383]],[4,[-10.311111111111131,-0.5925925925925952]],[11,[-6.9925925925927,4.740740740740748]],[21,[0.0,0.0]],[22,null],[19,[1.5407407407407163,-8.651851851851855]]],"stroke":[[5,0],[22,0],[14,0],[24,0],[6,0],[16,0],[17,0],[23,0],[25,0],[12,0],[8,0],[13,0],[9,0],[11,0],[18,0],[1,0],[15,0],[2,0],[4,0],[26,0],[3,0],[20,0],[19,0],[10,0],[7,0],[21,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":26}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2422139482859833437,{"inputs":[{"Node":{"node_id":14537754528543289381,"output_index":0}},{"Node":{"node_id":172538270105470471,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4372998635946271235,{"inputs":[{"Node":{"node_id":13481022631108980683,"output_index":0}},{"Node":{"node_id":2126710823743005151,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[542361600097372754,{"inputs":[{"Node":{"node_id":17971411534648521628,"output_index":0}},{"Node":{"node_id":6867142265138950838,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14888395629683671889,{"inputs":[{"Node":{"node_id":4341772758799935306,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2698266912167150713,{"inputs":[{"Node":{"node_id":3165571685352930240,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17324767436949538365,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[158.66666666666669,419.55555555555554]],[4,[150.22222222222223,429.3333333333333]],[6,[289.7777777777778,503.1111111111111]],[2,[362.22222222222223,512.0]],[1,[503.11111111111114,614.6666666666666]],[5,[119.1111111111111,456.44444444444446]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[5,5],[1,1],[3,3],[4,4],[6,6]],"end_point":[[5,6],[1,2],[6,1],[4,5],[3,4],[2,3]],"handle_primary":[[3,[0.0,0.0]],[2,[-52.888888888888914,-48.44444444444446]],[1,[0.0,0.0]],[6,[89.85096850895411,61.20347364650138]],[4,[0.0,0.0]],[5,[0.0,0.0]]],"handle_end":[[5,[-89.85096850895414,-61.20347364650138]],[4,[7.1111111111111,-35.55555555555554]],[6,[0.8888888888888005,-0.4444444444444571]],[3,[0.0,0.0]],[2,[76.0,-1.7777777777777717]],[1,[52.888888888888914,48.44444444444446]]],"stroke":[[2,0],[5,0],[1,0],[3,0],[4,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1659518581611333812,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"remove":[],"delta":[[14,[885.9039780521264,331.0617283950617]],[1,[889.8106995884773,368.4609053497942]],[10,[856.2304526748969,234.40329218106996]],[6,[812.2469135802468,182.5185185185185]],[12,[858.1618655692731,310.6063100137174]],[4,[869.1358024691356,247.17695473251027]],[5,[838.3209876543208,205.6954732510288]],[9,[838.4526748971191,213.46502057613168]],[16,[854.5185185185187,346.46913580246917]],[3,[917.991769547325,333.4320987654321]],[17,[866.172839506173,375.11111111111114]],[7,[773.7942386831274,177.119341563786]],[13,[872.1207133058986,331.2373113854595]],[2,[913.2510288065844,355.55555555555554]],[11,[865.1851851851853,248.6255144032922]],[8,[809.349794238683,192.0]],[15,[872.9108367626887,333.08093278463645]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"remove":[],"start_point":[[14,14],[2,2],[3,3],[17,17],[4,4],[5,5],[16,16],[15,15],[7,7],[11,11],[13,13],[10,10],[8,8],[6,6],[9,9],[12,12],[1,1]],"end_point":[[11,12],[15,16],[6,7],[7,8],[4,5],[10,11],[8,9],[3,4],[12,13],[13,14],[9,10],[17,1],[1,2],[5,6],[14,15],[2,3],[16,17]],"handle_primary":[[17,[4.279835390946232,0.32921810699582466]],[3,[-10.72985850116538,-29.20905925317203]],[8,[14.748971193415628,7.242798353909478]],[5,[-6.320987654321016,-8.164609053497912]],[15,[-5.267489711934104,1.4924554183813257]],[7,[6.584362139917744,1.0534979423868265]],[16,[0.0,0.0]],[6,[-10.930041152263357,-4.213991769547334]],[2,[7.637860082304428,-3.423868312757179]],[12,[6.935528120713343,13.080932784636502]],[1,[9.349794238683105,-4.213991769547306]],[11,[1.9314128943758533,32.395061728395035]],[13,[7.111111111111086,-2.72153635116598]],[14,[-5.267489711934104,0.0]],[10,[7.506172839506121,6.452674897119351]],[9,[6.189300411522595,6.97942386831275]],[4,[-8.03292181069969,-10.008230452674894]]],"handle_end":[[14,[5.267489711934104,-1.4924554183813257]],[6,[0.0,0.0]],[5,[10.930041152263357,4.213991769547334]],[12,[0.0,0.0]],[9,[-7.506172839506121,-6.452674897119351]],[13,[0.0,0.0]],[15,[0.0,0.0]],[10,[0.0,0.0]],[2,[7.1111111111111995,19.35802469135808]],[11,[0.0,0.0]],[1,[-7.637860082304542,3.423868312757179]],[4,[6.320987654321016,8.164609053497912]],[7,[-14.748971193415628,-7.242798353909478]],[8,[-6.189300411522595,-6.97942386831275]],[3,[8.03292181069969,10.008230452674894]],[17,[-9.349794238683105,4.213991769547306]],[16,[-8.098765432098958,-2.1728395061728634]]],"stroke":[[4,0],[13,0],[11,0],[15,0],[5,0],[9,0],[2,0],[17,0],[16,0],[1,0],[10,0],[6,0],[8,0],[7,0],[12,0],[14,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":17}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3636653585682494814,{"inputs":[{"Node":{"node_id":11565160497886435388,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.5},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14817659161913199655,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[726.8148148148148,1023.9999999999998]],[1,[796.148148148148,723.8518518518517]],[2,[725.3333333333333,985.7777777777776]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[1,1],[2,2]],"end_point":[[3,1],[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[-75.55555555555566,240.59259259259304]],[2,[0.0,0.0]],[1,[9.777777777777828,-73.18518518518522]]],"stroke":[[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11481949351661484921,{"inputs":[{"Node":{"node_id":15303587427289959766,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11632506522064533635,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[2,[113.33333333333331,859.3333333333333]],[3,[299.33333333333326,775.3333333333333]],[5,[336.66666666666663,799.3333333333334]],[1,[40.66666666666663,1022.6666666666666]],[7,[145.33333333333331,1022.6666666666666]],[6,[208.0,903.0]],[4,[397.3333333333333,770.6666666666666]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[2,2],[5,5],[4,4],[1,1],[3,3],[7,7],[6,6]],"end_point":[[7,1],[1,2],[6,7],[5,6],[4,5],[2,3],[3,4]],"handle_primary":[[7,[0.0,0.0]],[4,[0.0,0.0]],[5,[-40.66666666666663,12.0]],[2,[58.666666666666686,-57.33333333333326]],[3,[65.33333333333337,-6.0]],[6,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[40.66666666666663,-12.0]],[6,[18.00000000000003,-55.33333333333326]],[3,[0.0,0.0]],[1,[-58.666666666666686,57.333333333333144]],[7,[0.0,1.3333333333333712]],[2,[-65.33333333333337,6.0]],[5,[35.666666666666686,-46.66666666666674]]],"stroke":[[5,0],[3,0],[4,0],[1,0],[2,0],[6,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10415872992231003638,{"inputs":[{"Node":{"node_id":8375495949882478840,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4105711298139980122,{"inputs":[{"Node":{"node_id":1162381870526064378,"output_index":0}},{"Node":{"node_id":1272070255512697108,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7466034304713056391,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[637.4252384335797,135.01742888696126]],[2,[635.5072483424783,152.80078149291265]],[3,[636.4372010299622,153.9035515500083]],[1,[635.2478000597847,135.0597939750059]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[1,1],[2,2]],"end_point":[[1,2],[3,4],[4,1],[2,3]],"handle_primary":[[2,[0.0,0.0]],[3,[1.020097146128478,-12.422679731687992]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[1.1169817316086892,-0.21205734949143107]],[1,[0.4153244360613826,-11.397946559213551]],[3,null],[2,[-0.5579820762119425,-0.504231587867622]]],"stroke":[[3,0],[2,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10587073897090054035,{"inputs":[{"Node":{"node_id":8814059393325469059,"output_index":0}},{"Node":{"node_id":907841922684377912,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15498700602024283966,{"inputs":[{"Node":{"node_id":15466714490303763249,"output_index":0}},{"Node":{"node_id":9847383247226990698,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10928540355449103287,{"inputs":[{"Node":{"node_id":18190631752493248867,"output_index":0}},{"Node":{"node_id":12554368619682347699,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[172538270105470471,{"inputs":[{"Node":{"node_id":9276497172451351253,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4422453582814483232,{"inputs":[{"Node":{"node_id":4577638792388493935,"output_index":0}},{"Node":{"node_id":431994205232245356,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9470742171134780193,{"inputs":[{"Node":{"node_id":15126865253122550765,"output_index":0}},{"Node":{"node_id":10270446074640675342,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10795820039540504703,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"delta":[[9,[418.074074074074,116.14814814814814]],[3,[590.2222222222222,113.18518518518518]],[12,[332.131357712622,16.970215357579164]],[8,[447.7037037037037,131.25925925925924]],[10,[396.14814814814815,88.29629629629629]],[6,[518.2222222222222,175.7037037037037]],[15,[432.1308820290171,20.740740740740748]],[2,[591.1111111111111,92.44444444444444]],[17,[478.3481748953775,55.407407407407405]],[18,[498.66666666666663,63.70370370370368]],[5,[574.5185185185185,169.18518518518516]],[4,[604.4444444444445,138.96296296296293]],[7,[485.6296296296296,153.48148148148147]],[19,[540.4444444444445,70.22222222222221]],[14,[418.0913936876638,12.121582398270874]],[1,[569.1851851851852,61.629629629629605]],[11,[350.8679463145693,59.25925925925925]],[13,[376.7623479921926,0.4130988647245317]],[16,[451.9827338808689,43.25925925925927]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"start_point":[[18,18],[12,12],[7,7],[3,3],[14,14],[4,4],[19,19],[6,6],[1,1],[17,17],[15,15],[10,10],[11,11],[13,13],[9,9],[16,16],[8,8],[5,5],[2,2]],"end_point":[[2,3],[19,1],[8,9],[10,11],[7,8],[9,10],[1,2],[12,13],[15,16],[3,4],[18,19],[6,7],[14,15],[4,5],[13,14],[16,17],[17,18],[11,12],[5,6]],"handle_primary":[[4,[18.370370370370324,0.2962962962963047]],[8,[-9.481481481481524,-12.740740740740762]],[13,[41.32904569547122,11.708483533546342]],[6,[-14.222222222222172,-11.851851851851848]],[15,[20.148148148148152,6.8148148148148096]],[1,[12.848891737595522,5.11227609582204]],[16,[7.703703703703695,6.814814814814817]],[3,[-6.518518518518476,13.3333333333333]],[2,[0.0,0.0]],[7,[-15.407407407407447,4.444444444444457]],[5,[-13.629629629629562,5.925925925925924]],[14,[0.0,0.0]],[19,[11.555555555555545,-3.851851851851848]],[9,[-13.629629629629562,-7.407407407407419]],[12,[4.019883543587866,-14.744727738229416]],[10,[-13.333333333333371,-8.59259259259261]],[18,[13.333333333333371,4.148148148148152]],[11,[-11.259259259259125,-10.962962962962962]],[17,[10.962962962963047,12.148148148148124]]],"handle_end":[[18,[-11.555555555555545,3.851851851851848]],[14,[-20.14814814814821,-6.814814814814827]],[1,[-24.88888888888891,-10.666666666666655]],[19,[-12.030418259761518,-4.786624476892754]],[11,[-2.7704748413796665,10.16196036497552]],[7,[9.481481481481524,12.740740740740762]],[15,[-7.703703703703695,-6.8148148148148096]],[3,[-18.370370370370324,-0.2962962962963047]],[17,[-13.333333333333371,-4.148148148148152]],[9,[13.333333333333371,8.59259259259261]],[13,null],[2,[6.518518518518476,-13.333333333333314]],[8,[13.629629629629562,7.407407407407419]],[4,[13.629629629629562,-5.925925925925924]],[12,null],[6,[15.407407407407334,-4.444444444444457]],[10,[11.259259259259238,10.962962962963076]],[5,[14.222222222222172,11.85185185185182]],[16,[-10.96296296296299,-12.148148148148188]]],"stroke":[[7,0],[3,0],[17,0],[8,0],[2,0],[6,0],[5,0],[1,0],[15,0],[13,0],[10,0],[19,0],[16,0],[4,0],[9,0],[11,0],[18,0],[12,0],[14,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":19}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7505360855062237520,{"inputs":[{"Node":{"node_id":17945736750161448391,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12313564802550122052,{"inputs":[{"Node":{"node_id":13557369662261607646,"output_index":0}},{"Node":{"node_id":9684857454501250999,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8413863870096329943,{"inputs":[{"Node":{"node_id":16195626650123806176,"output_index":0}},{"Node":{"node_id":5302437193964714993,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9847383247226990698,{"inputs":[{"Node":{"node_id":3627710206997006419,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8766106989344197438,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[153.58712172411558,204.8434307274338]],[5,[155.85185185185185,211.55555555555557]],[4,[146.5679012345679,204.44444444444449]],[1,[197.33333333333337,212.5432098765432]],[6,[184.49382716049385,218.2716049382716]],[2,[172.64197530864195,208.98765432098767]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[6,6],[5,5],[4,4],[1,1],[3,3]],"end_point":[[4,5],[5,6],[2,3],[1,2],[3,4],[6,1]],"handle_primary":[[6,[3.160493827160479,-0.9876543209876444]],[5,[8.493827160493822,2.3703703703703525]],[2,[-7.703703703703667,-1.1851851851851904]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[-5.834035304362487,0.7861989021958493]]],"handle_end":[[5,[-3.1604938271605363,0.9876543209877012]],[2,[5.834035304362487,-0.7861989021958493]],[6,[-3.160493827160479,1.9753086419753456]],[4,[-8.493827160493794,-2.370370370370381]],[3,[0.0,0.0]],[1,[7.703703703703724,1.1851851851852189]]],"stroke":[[1,0],[3,0],[4,0],[5,0],[6,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14831840560430171946,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[833.4814814814815,746.3703703703703]],[3,[889.7777777777777,516.8888888888889]],[1,[791.5555555555555,1026.6666666666663]],[6,[793.7777777777777,1027.2592592592591]],[2,[831.5555555555555,737.3333333333334]],[4,[893.7613168724276,509.6296296296296]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[1,1],[6,6],[4,4],[5,5],[2,2]],"end_point":[[4,5],[2,3],[5,6],[3,4],[1,2],[6,1]],"handle_primary":[[5,[-24.0,92.44444444444446]],[1,[0.0,0.0]],[6,[0.0,0.0]],[3,[0.0,0.0]],[2,[19.555555555555543,-74.66666666666674]],[4,[0.0,0.0]]],"handle_end":[[2,[-22.22222222222217,89.77777777777783]],[6,[-0.14814814814815236,0.29629629629675946]],[4,[24.0,-92.44444444444446]],[3,[0.0,0.0]],[5,[0.0,0.0]],[1,[-26.4188207246807,100.8718609487812]]],"stroke":[[6,0],[2,0],[3,0],[1,0],[5,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12473080738469616517,{"inputs":[{"Node":{"node_id":17891208858820401648,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17133591775058457007,{"inputs":[{"Node":{"node_id":18067513817508158001,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13163272246010991228,{"inputs":[{"Node":{"node_id":9740500978584792725,"output_index":0}},{"Node":{"node_id":10253927692147706615,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15286091228862934481,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[1,[623.1001371742112,22.694101508916333]],[2,[627.0946502057614,23.00137174211249]],[3,[638.5953360768175,27.56652949245542]],[5,[684.554183813443,27.654320987654327]],[6,[661.2894375857338,26.381344307270236]],[4,[665.7229080932784,23.79149519890261]],[7,[637.0589849108368,29.980795610425247]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[7,7],[4,4],[1,1],[3,3],[5,5],[6,6],[2,2]],"end_point":[[3,4],[2,3],[6,7],[1,2],[7,1],[4,5],[5,6]],"handle_primary":[[5,[0.0,0.0]],[6,[-11.456790123456813,0.9657064471879302]],[1,[0.0,0.0]],[2,[2.150891632373032,1.5802469135802468]],[4,[6.672153635116501,-0.35116598079560646]],[7,[-6.089851956901498,-0.48236451143773706]],[3,[5.3991769547326385,0.13168724279836042]]],"handle_end":[[2,[-5.486565700800156,-0.13381867562927496]],[6,[4.433470507544598,0.35116598079561]],[7,[2.194787379972581,3.906721536351163]],[1,[-2.150891632373032,-1.5802469135802468]],[3,[-6.672153635116501,0.35116598079560646]],[4,[-0.9218106995884908,-1.0534979423868336]],[5,[11.456790123456813,-0.9657064471879336]]],"stroke":[[7,0],[2,0],[3,0],[1,0],[4,0],[5,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3165571685352930240,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[641.1783537148203,135.11412115589184]],[2,[641.3926773385256,156.76403071818197]],[3,[642.0732703685807,156.78028060137643]],[1,[639.0431812985823,135.02706332876082]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[3,3],[2,2]],"end_point":[[3,4],[1,2],[2,3],[4,1]],"handle_primary":[[4,[0.0,0.0]],[3,[-0.4020858660272779,-10.361367902183218]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[1.0850699611588652,-0.2123114466060372]],[2,[-0.29793124344723765,0.12588207707705124]],[3,null],[1,[-0.08991158554488266,-10.211393405397416]]],"stroke":[[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13014916927589286309,{"inputs":[{"Node":{"node_id":2044103368441997753,"output_index":0}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15815816861435910950,{"inputs":[{"Node":{"node_id":4105711298139980122,"output_index":0}},{"Node":{"node_id":17815494794630739611,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15798070933198867970,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[4,[536.0,522.2222222222221]],[8,[350.6666666666667,340.0]],[3,[598.6666666666666,547.1111111111111]],[9,[424.44444444444446,340.0]],[11,[588.6666666666665,453.3333333333333]],[2,[642.2222222222222,536.8888888888889]],[10,[508.88888888888886,389.33333333333337]],[7,[384.7140020398532,440.0243218219409]],[5,[449.99999999999994,445.3333333333333]],[1,[595.1111111111111,513.3333333333333]],[12,[660.0,500.66666666666663]],[6,[438.18064449587104,508.2403828865154]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"start_point":[[9,9],[10,10],[8,8],[12,12],[11,11],[3,3],[7,7],[2,2],[6,6],[4,4],[5,5],[1,1]],"end_point":[[2,3],[3,4],[7,8],[11,12],[9,10],[8,9],[10,11],[12,1],[4,5],[6,7],[5,6],[1,2]],"handle_primary":[[5,[0.0,0.0]],[12,[-31.999999999999886,10.666666666666686]],[4,[-25.28395061728401,-13.827160493827025]],[6,[0.0,0.0]],[8,[-46.969945387028645,-26.215783471829923]],[7,[5.531031978208716,-44.24825582567013]],[9,[24.0,8.0]],[11,[22.666666666666856,18.0]],[2,[0.0,0.0]],[3,[-18.370370370370324,2.1728395061728634]],[10,[25.481481481481467,20.4444444444444]],[1,[0.0,0.0]]],"handle_end":[[9,[-25.481481481481467,-20.4444444444444]],[8,[-24.0,-8.0]],[7,[28.6666666666668,16.000000000000057]],[10,[-23.199803616588156,-18.42337346023163]],[11,[-17.185185185185105,5.925925925925867]],[3,[25.283950617284063,13.827160493827025]],[1,[-58.22222222222217,-1.3333333333332575]],[6,[-4.764895727801786,38.11916582241446]],[12,null],[2,[18.370370370370324,-2.1728395061728634]],[5,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[1,0],[10,0],[2,0],[8,0],[11,0],[5,0],[6,0],[12,0],[3,0],[9,0],[4,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":12}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6672826052605647592,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[10,[599.4403292181071,108.68587105624144]],[3,[605.4979423868314,125.19067215363512]],[11,[599.381801554641,127.00502972107913]],[12,[613.7991159884164,125.99055022100288]],[7,[591.0123456790125,60.40054869684499]],[2,[614.2716726786227,123.52371759047573]],[5,[603.127572016461,99.64334705075449]],[4,[600.0548696844994,115.53360768175584]],[6,[594.172839506173,82.87517146776406]],[9,[593.3827160493829,85.77229080932784]],[1,[617.5253772290811,122.03017832647464]],[8,[585.8326474622772,72.60356652949247]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"start_point":[[2,2],[5,5],[4,4],[6,6],[10,10],[8,8],[11,11],[1,1],[3,3],[9,9],[7,7],[12,12]],"end_point":[[1,2],[4,5],[7,8],[6,7],[5,6],[9,10],[8,9],[12,1],[3,4],[11,12],[2,3],[10,11]],"handle_primary":[[5,[-0.8779149519890552,-4.477366255144048]],[3,[-4.594421582076166,-1.1705532693187024]],[11,[3.960543177125487,4.094798878044912]],[7,[0.0,0.0]],[12,[2.3801249809480396,-1.7168114616673904]],[4,[0.8779149519890552,-4.477366255144034]],[10,[-2.575217192501441,8.77914951989024]],[9,[3.599451303154978,4.477366255144034]],[6,[-6.145404663923159,-8.076817558299041]],[2,[-1.2820759681926577,0.7008681959453185]],[8,[0.6346981736430735,5.019885555177211]],[1,[0.0,0.0]]],"handle_end":[[6,[-6.057613168724288,9.305898491083669]],[2,[3.396564570446685,0.8653667695405147]],[12,[0.0,0.0]],[5,[6.145404663923159,8.076817558299041]],[7,[-0.9657064471879266,-7.637860082304528]],[10,[-4.118548609866821,-4.258160427150372]],[9,[3.3684073442221916,-11.48320685530176]],[4,[0.8779149519890552,4.47736625514402]],[8,[-3.599451303154978,-4.477366255144034]],[3,[-0.8779149519890552,4.477366255144034]],[11,[-2.036412917146322,1.4688880058104417]],[1,[1.3006147436874471,-0.7110027265491681]]],"stroke":[[11,0],[10,0],[1,0],[12,0],[9,0],[3,0],[5,0],[4,0],[8,0],[2,0],[7,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":12}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7385465194555106679,{"inputs":[{"Node":{"node_id":5009664118231399060,"output_index":0}},{"Node":{"node_id":6416452251137958677,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9425359632144678256,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[3,[622.6042778031804,84.90413046791649]],[5,[606.9918024691358,101.68414814814815]],[2,[615.0086877000457,93.76131687242795]],[4,[612.3749428440786,88.61088248742568]],[1,[610.2608816540582,107.73159867034722]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[3,3],[5,5],[4,4],[1,1],[2,2]],"end_point":[[4,5],[1,2],[2,3],[5,1],[3,4]],"handle_primary":[[3,[-0.6242950769699291,-0.9364426154549648]],[5,[0.0,0.0]],[2,[3.21902149062646,-3.511659807956093]],[1,[0.0,0.0]],[4,[-3.0889600162577153,2.952395468170536]]],"handle_end":[[2,[0.15607376924265282,0.7543565513387165]],[1,[-3.21902149062646,3.5116598079561214]],[5,[-2.1454520955559246,-3.1101486881290583]],[4,[-0.5623782142248501,-6.258066225952547]],[3,[2.992367941940074,-2.86007378029646]]],"stroke":[[3,0],[2,0],[1,0],[5,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15177845878727456758,{"inputs":[{"Node":{"node_id":14225285635863713990,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5555007473125503522,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[2,[724.7285474775185,66.64349946654472]],[1,[721.7241274196006,63.248894985520494]],[5,[726.0551745160798,67.30681298582532]],[6,[724.0262155159273,62.468526139308025]],[4,[725.0797134583142,72.96448712086573]],[3,[723.7140679774425,72.106081390032]],[7,[722.6215515927449,59.58116140832189]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[6,6],[3,3],[2,2],[1,1],[7,7],[5,5],[4,4]],"end_point":[[5,6],[6,7],[3,4],[1,2],[4,5],[2,3],[7,1]],"handle_primary":[[5,[-0.585276634659408,-3.8628257887517066]],[2,[0.546258192348887,2.106995884773667]],[1,[0.0,0.0]],[7,[-1.014479500076277,0.3901844231062413]],[6,[-0.03901844231063478,-1.2485901539399509]],[4,[0.6633135192806776,-0.8584057308337094]],[3,[-1.287608596250493,1.7558299039780536]]],"handle_end":[[3,[-0.6633135192806776,0.8584057308337094]],[5,[0.03901844231063478,1.2485901539399509]],[1,[-0.501794076076294,-1.9354914362939013]],[4,[0.585276634659408,3.8628257887517066]],[2,[1.852405339488314,-2.526007281120613]],[7,[0.07803688462126956,-0.03901844231062768]],[6,[1.014479500076277,-0.39018442310623414]]],"stroke":[[5,0],[1,0],[4,0],[3,0],[2,0],[6,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17529660518597229229,{"inputs":[{"Node":{"node_id":3802858053991775169,"output_index":0}},{"Node":{"node_id":4332145463108161926,"output_index":0}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"F64":40.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-30.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16446146761452576438,{"inputs":[{"Node":{"node_id":12131058586835568367,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[619.1444612416404,54.266956717585614]},"exposed":false}},{"Value":{"tagged_value":{"F64":-35.05804989521759},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[5.617278800347149,2.5068847538738956]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[6.794509856837352e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[454416440369338250,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[733.7777777777778,518.6666666666666]],[1,[696.0,593.3333333333333]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[0.0,0.0]]],"handle_end":[[1,[-18.666666666666515,26.66666666666663]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15038739378867834454,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[7,[662.3868312757203,59.61042524005489]],[6,[687.4951989026064,54.518518518518526]],[1,[654.3978052126201,51.621399176954746]],[3,[691.5336076817558,52.14814814814816]],[4,[704.965706447188,54.25514403292181]],[2,[667.4787379972565,58.20576131687244]],[5,[704.6145404663924,55.39643347050756]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[1,1],[3,3],[2,2],[7,7],[5,5],[6,6],[4,4]],"end_point":[[4,5],[5,6],[7,1],[1,2],[3,4],[2,3],[6,7]],"handle_primary":[[3,[7.723134415788309,-0.2640387834457485]],[7,[-4.546573253919632,-2.2347563451469625]],[2,[6.145404663923159,-1.0534979423868336]],[1,[0.0,0.0]],[5,[0.0,0.0]],[4,[0.0,0.0]],[6,[-10.156808190486911,1.6663513437517778]]],"handle_end":[[3,null],[6,[5.179698216735233,2.5459533607681664]],[4,[0.0,0.0]],[5,[11.237311385459408,-1.8436213991769537]],[1,[-5.875074923313605,1.0071557011394745]],[7,[0.0,0.08779149519890694]],[2,[-10.271604938271594,0.35116598079560646]]],"stroke":[[7,0],[5,0],[4,0],[2,0],[6,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14982414026754548178,{"inputs":[{"Node":{"node_id":13045580349734858212,"output_index":0}},{"Node":{"node_id":4332145463108161926,"output_index":0}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":10.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-25.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4493274523708782092,{"inputs":[{"Node":{"node_id":15239301303367148581,"output_index":0}},{"Node":{"node_id":12880230498984021417,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6973438081601736688,{"inputs":[{"Node":{"node_id":11630078441485655672,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4577638792388493935,{"inputs":[{"Node":{"node_id":3170924135668664007,"output_index":0}},{"Node":{"node_id":6292009934909381201,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12131058586835568367,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.6081211287919952,-0.2081641356766983]],[3,[0.443655685420585,0.8388279058567918]],[4,[0.022131022857413415,0.4190687668825941]],[2,[1.0389965338526328,0.5311836299154763]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1]],"end_point":[[1,2],[2,3],[4,1],[3,4]],"handle_primary":[[2,[-0.06483434986356718,0.26682960488486684]],[1,[0.297407817404018,0.05174926937677715]],[4,[0.021131345375600137,-0.27179882337964756]],[3,[-0.29501938196342326,-0.04735956037402645]]],"handle_end":[[2,[0.2950193819634199,0.04735956037402589]],[1,[0.07365905854782184,-0.30314821587423946]],[4,[-0.38805268271111915,-0.0675215701634326]],[3,[-0.02113134537560013,0.27179882337964756]]],"stroke":[[3,0],[2,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1157261387411722141,{"inputs":[{"Node":{"node_id":4577174813962563383,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11659756061767599421,{"inputs":[{"Node":{"node_id":8766106989344197438,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5140869461760168364,{"inputs":[{"Node":{"node_id":17118107476414252025,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8543051864256131356,{"inputs":[{"Node":{"node_id":5002654561220917457,"output_index":0}},{"Node":{"node_id":4332145463108161926,"output_index":0}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"F64":300.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-100.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16732130236852371275,{"inputs":[{"Node":{"node_id":4832236468224231783,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":6.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5185036609290210853,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"remove":[],"delta":[[25,[719.8512421886905,54.19661636945587]],[5,[705.102270995275,59.269013869836904]],[24,[719.0123456790122,66.6337448559671]],[29,[694.0600518213687,74.40816948635879]],[1,[687.846364883402,65.58024691358025]],[13,[706.9556470050298,39.272062185642426]],[12,[698.2935528120714,34.35573845450388]],[23,[711.5061728395062,69.99176954732509]],[20,[716.6907483615302,62.66361835086114]],[16,[713.7448559670781,60.37860082304528]],[14,[711.9695168419447,48.57796067672611]],[8,[709.8600823045268,50.83127572016461]],[10,[696.5925925925927,33.728395061728385]],[6,[695.152568206066,67.34583142813594]],[3,[703.7366255144034,54.694101508916326]],[22,[719.6171315348269,59.659198292943145]],[4,[704.9657064471878,54.25514403292179]],[17,[713.3351623228167,47.46593507087334]],[7,[701.785703398872,67.26779454351473]],[27,[718.680688919372,68.71147690900777]],[26,[722.5825331504344,57.31809175430575]],[19,[705.9094650205762,70.25514403292182]],[2,[697.9423868312758,64.79012345679013]],[18,[716.7736625514402,54.9135802469136]],[21,[716.1444901691814,49.82655083066605]],[15,[703.604938271605,68.21399176954733]],[9,[702.2222222222223,38.38683127572017]],[28,[702.2539247065995,73.00350556317633]],[11,[697.7283950617284,31.30864197530864]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"remove":[],"start_point":[[5,5],[3,3],[10,10],[17,17],[20,20],[12,12],[23,23],[1,1],[11,11],[18,18],[29,29],[19,19],[25,25],[26,26],[2,2],[27,27],[14,14],[16,16],[15,15],[24,24],[28,28],[22,22],[13,13],[8,8],[7,7],[21,21],[4,4],[9,9],[6,6]],"end_point":[[10,11],[20,21],[12,13],[1,2],[26,27],[13,14],[27,28],[21,22],[17,18],[15,16],[11,12],[16,17],[18,19],[19,20],[29,1],[23,24],[3,4],[2,3],[24,25],[7,8],[4,5],[8,9],[6,7],[5,6],[28,29],[25,26],[22,23],[9,10],[14,15]],"handle_primary":[[3,[0.0,0.0]],[10,[-0.04481007342064913,-1.8372595419893116]],[16,[2.9207548934437,-5.774876595401999]],[29,[0.0,0.0]],[5,[-1.1705532693187024,3.0044200579180043]],[20,[2.536198750190465,-6.516079865874104]],[22,[-1.7948483462886315,6.047858558146615]],[6,[0.0,0.0]],[13,[2.1939750755697105,1.3128956217623369]],[17,[0.0,0.0]],[14,[0.9193720469440904,5.347965249199831]],[15,[0.0,0.0]],[8,[1.1368683772161605e-13,-7.4135040390184415]],[26,[0.8664211612748431,3.3573819999397045]],[19,[0.0,0.0]],[23,[0.0,0.0]],[25,[0.0,0.0]],[7,[3.3946044810244302,-1.8728852309099435]],[9,[-3.823807346440958,-1.6387745770461848]],[28,[-7.920532726374063,-0.13055823175342596]],[12,[1.5089163237310004,2.3850022862368547]],[4,[0.0,0.0]],[11,[0.0,0.0]],[1,[0.0,0.0]],[24,[2.106995884773596,-3.0044200579180256]],[21,[0.0,0.0]],[2,[1.5646505637769224,-1.2302214356413188]],[27,[-4.128769232802142,3.294230770852593]],[18,[-0.7242798353908029,5.860082304526735]]],"handle_end":[[24,[2.980033531474078,4.338363054412447]],[25,[-0.6242950769700428,-2.419143423258646]],[11,[-0.8654907204776237,-1.3679998781853442]],[23,[-2.1028230213785264,2.9984698638176326]],[22,[2.731290961743639,-1.326627038561199]],[21,[1.7948483462886315,-6.047858558146615]],[26,[3.66773357719876,-2.926383173296756]],[8,[5.150019007352512,2.2071510031511608]],[18,[9.169333942996444,-4.409083981100437]],[13,[-0.7923207898123792,-4.608911119518574]],[16,[1.1705532693187024,1.8728852309099224]],[5,[6.516079865874076,-2.4581618655692807]],[15,[-3.84819387288519,7.608596250571544]],[1,[-2.555707971345896,2.0094497789970944]],[10,[0.0,0.0]],[2,[0.5267489711934559,6.320987654320987]],[6,[-3.208476806721251,1.7701941002599142]],[9,[0.04481007342064913,1.837259541989333]],[20,[1.638774577046206,1.5607376924249363]],[12,[-3.679926840420876,-2.202103337905797]],[4,[1.1705532693187024,-3.0044200579180043]],[28,[0.0,0.0]],[14,[7.30864197530866,-5.333333333333336]],[17,[0.667740598959881,-5.402628482494777]],[19,[-2.536198750190465,6.516079865874104]],[27,[7.101356500533598,0.11705532693187592]],[7,[-1.1368683772161605e-13,8.389895136005812]],[3,[0.0,0.0]],[29,[0.009754610577488164,0.048773052888265056]]],"stroke":[[4,0],[1,0],[16,0],[29,0],[20,0],[23,0],[22,0],[14,0],[19,0],[26,0],[13,0],[25,0],[9,0],[12,0],[11,0],[2,0],[10,0],[21,0],[28,0],[7,0],[3,0],[24,0],[6,0],[5,0],[27,0],[8,0],[17,0],[18,0],[15,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":29}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18190631752493248867,{"inputs":[{"Node":{"node_id":12428327489525325219,"output_index":0}},{"Node":{"node_id":10375238420217738812,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8644924780109919177,{"inputs":[{"Node":{"node_id":10599660455959346550,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5020096817747898028,{"inputs":[{"Node":{"node_id":15286091228862934481,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2641530639940889619,{"inputs":[{"Node":{"node_id":5174744389209053970,"output_index":0}},{"Node":{"node_id":14539627480594383748,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5326536612985524219,{"inputs":[{"Node":{"node_id":15798070933198867970,"output_index":0}},{"Value":{"tagged_value":{"F64":27.0},"exposed":false}},{"Value":{"tagged_value":{"U32":9},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":2}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::PoissonDiskPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11666664915283969027,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[751.4074074074075,685.0370370370371]],[1,[802.3703703703703,580.9382716049382]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[2,1],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[20.740740740740534,-42.469135802469054]]],"handle_end":[[2,null],[1,[27.259259259259125,-48.79012345678995]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3414873131936208778,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[697.7777777777777,954.2222222222222]],[1,[761.7777777777777,737.3333333333333]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,1]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[2,[-40.0,81.33333333333326]],[1,[26.22222222222217,-158.66666666666652]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3686761601672683183,{"inputs":[{"Node":{"node_id":4859656512650360562,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16805628435335819723,{"inputs":[{"Node":{"node_id":10689298484366290551,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13557369662261607646,{"inputs":[{"Node":{"node_id":3535178979443201645,"output_index":0}},{"Node":{"node_id":15177845878727456758,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16339345235172368839,{"inputs":[{"Node":{"node_id":14778750092903591172,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18214377096178867498,{"inputs":[{"Node":{"node_id":7747398671834040298,"output_index":0}},{"Node":{"node_id":4332145463108161926,"output_index":0}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":300.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-100.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3955326429435439190,{"inputs":[{"Node":{"node_id":18207065424980079673,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2126710823743005151,{"inputs":[{"Node":{"node_id":14831840560430171946,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11804065810513502701,{"inputs":[{"Node":{"node_id":9782123335421401489,"output_index":0}},{"Node":{"node_id":17133591775058457007,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7320676248579211727,{"inputs":[{"Node":{"node_id":14817659161913199655,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7654665057468818389,{"inputs":[{"Node":{"node_id":17378885078543074499,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10514847656270897393,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":16339345235172368839,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16434255153991868080,{"inputs":[{"Node":{"node_id":6124821161363551058,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17207349373429328029,{"inputs":[{"Node":{"node_id":17967471489196302183,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6867142265138950838,{"inputs":[{"Node":{"node_id":4784708315242877950,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14862049226133442027,{"inputs":[{"Node":{"node_id":16614450796751955858,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8814059393325469059,{"inputs":[{"Node":{"node_id":15492651270767932214,"output_index":0}},{"Node":{"node_id":14035980686649077716,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17364155187784942740,{"inputs":[{"Node":{"node_id":1378578509112405,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.9019608,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.9019608,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10586744777717861556,{"inputs":[{"Node":{"node_id":11417901103965737900,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15656854169166220905,{"inputs":[{"Node":{"node_id":7821977654068146599,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-5.0,22.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4909350123806022131,{"inputs":[{"Node":{"node_id":15498700602024283966,"output_index":0}},{"Node":{"node_id":16536768589601337644,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10190227675276560561,{"inputs":[{"Node":{"node_id":2682920349304670808,"output_index":0}},{"Node":{"node_id":16434255153991868080,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10424806499648491677,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":17147975601187022720,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14598755603287563819,{"inputs":[{"Node":{"node_id":7466034304713056391,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8230694129617719636,{"inputs":[{"Node":{"node_id":4909350123806022131,"output_index":0}},{"Node":{"node_id":16805628435335819723,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16175421708184657649,{"inputs":[{"Node":{"node_id":8698602280607307123,"output_index":0}},{"Node":{"node_id":514796034658094296,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18422317423856403288,{"inputs":[{"Node":{"node_id":10133176481349663495,"output_index":0}},{"Node":{"node_id":12594527670567285670,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15395954548128560685,{"inputs":[{"Node":{"node_id":13475705179546695973,"output_index":0}},{"Node":{"node_id":16767482995096345179,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11464423670065789907,{"inputs":[{"Node":{"node_id":8644924780109919177,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5269304445610080925,{"inputs":[{"Node":{"node_id":3686761601672683183,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14012583111791538162,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[3,[603.3333333333335,744.6666666666666]],[1,[248.00000000000009,884.0]],[2,[380.00000000000006,806.0]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[70.80694036316174,-19.49756328840681]]],"handle_end":[[1,[-92.00000000000006,25.333333333333258]],[2,[-71.33333333333326,24.0]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4784708315242877950,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[4,[468.14814814814815,1025.382716049383]],[1,[902.6666666666669,446.66666666666674]],[5,[464.5925925925926,1025.382716049383]],[6,[592.0,845.3333333333333]],[2,[808.5333333333333,683.1555555555556]],[3,[592.4000000000001,852.3999999999999]],[7,[807.0666666666666,680.1333333333332]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[3,3],[6,6],[1,1],[4,4],[2,2],[5,5],[7,7]],"end_point":[[6,7],[2,3],[7,1],[3,4],[4,5],[1,2],[5,6]],"handle_primary":[[3,[-91.33798434535026,86.27035509501377]],[5,[0.0,0.0]],[4,[0.0,0.0]],[6,[93.94069526511169,-85.35957406301043]],[2,[-81.33333333333337,100.88888888888891]],[7,[62.39957279246403,-72.271586423759]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[5,[-102.71604938271612,93.3333333333336]],[7,[-3.466666666666697,51.33333333333326]],[4,[0.0,0.0]],[2,[85.857044886376,-81.09351003138556]],[1,[97.81027061870486,-121.32749415544254]],[6,[-87.55555555555577,101.4074074074075]]],"stroke":[[2,0],[7,0],[1,0],[5,0],[4,0],[3,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8375495949882478840,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[8,[675.3580246913581,68.74074074074075]],[2,[617.4278311233043,51.042625616013815]],[5,[650.6227709190673,52.93827160493828]],[10,[650.9056546258192,56.62876594015139]],[6,[662.1234567901236,64.96570644718793]],[7,[673.0096021947875,65.84362139917695]],[4,[642.6077325610934,47.29035208047554]],[1,[616.0751917898693,61.31097901742621]],[3,[628.5871056241429,46.71808159325306]],[9,[662.1234567901236,66.9849108367627]],[11,[641.3168724279836,48.02194787379973]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"start_point":[[10,10],[11,11],[5,5],[8,8],[7,7],[4,4],[6,6],[1,1],[2,2],[3,3],[9,9]],"end_point":[[1,2],[5,6],[7,8],[10,11],[8,9],[6,7],[11,1],[9,10],[2,3],[4,5],[3,4]],"handle_primary":[[1,[-0.7315957933242316,0.01300614743686168]],[11,[-8.252400548696869,-0.8779149519890339]],[3,[4.873654303444027,-0.3091793289098348]],[10,[-2.0025980353477735,-3.5689865976493422]],[4,[2.784561671457709,0.5265657466421629]],[5,[3.160493827160508,4.6529492455418335]],[7,[0.0,0.0]],[6,[5.4430727023319605,2.545953360768181]],[8,[0.0,0.0]],[9,[-4.389574759945162,-2.106995884773667]],[2,[2.1833209230284183,-3.0691100638496778]]],"handle_end":[[7,[0.0,0.0]],[2,[-5.145487535686698,0.32642413354457744]],[5,[-5.4430727023319605,-2.545953360768181]],[8,[4.389574759945162,2.106995884773667]],[1,[-2.4595700304455477,3.4574354386312436]],[4,[-3.160493827160508,-4.6529492455418335]],[9,[2.6272417822486887,4.682213077274824]],[11,[2.0257074632933154,-0.6893258141543512]],[10,[6.086554705109506,0.6475058196925048]],[6,[0.0,0.0]],[3,[-2.7845616714574817,-0.5265657466421203]]],"stroke":[[7,0],[5,0],[2,0],[4,0],[9,0],[3,0],[11,0],[10,0],[1,0],[6,0],[8,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":11}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11677503666435782605,{"inputs":[{"Node":{"node_id":12049041947382267086,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16536768589601337644,{"inputs":[{"Node":{"node_id":4222034829755771252,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2087303479944421366,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[365.6296296296296,1025.4814814814813]],[3,[368.59259259259255,1025.1851851851852]],[2,[443.2592592592592,882.0740740740739]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[1,2],[2,3]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[2,[31.111111111111143,-96.29629629629642]],[1,[-48.59259259259255,50.07407407407413]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17426609415699324395,{"inputs":[{"Node":{"node_id":15896921950407486754,"output_index":0}},{"Node":{"node_id":11464423670065789907,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16450742929146919960,{"inputs":[{"Node":{"node_id":14887821801874852671,"output_index":0}},{"Node":{"node_id":11899713172487274471,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8595304668947966919,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[810.1333333333333,731.4666666666668]],[2,[798.4000000000001,879.4666666666668]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[1,2],[2,1]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[-1.8666666666665608,-67.46666666666658]],[2,[-18.13333333333333,82.66666666666674]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11451028343967836482,{"inputs":[{"Node":{"node_id":2422139482859833437,"output_index":0}},{"Node":{"node_id":12531351117929704587,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[314278016428495768,{"inputs":[{"Node":{"node_id":6282972142629473139,"output_index":0}},{"Node":{"node_id":5020096817747898028,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17971411534648521628,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14862049226133442027,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13014628586360765651,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":2175432926627256613,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14778750092903591172,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[155.98219408731924,204.757705978404]],[3,[146.5679012345679,204.44444444444449]],[2,[149.0793650793651,202.5537918871252]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[2,3],[3,1],[1,2]],"handle_primary":[[1,[-2.6135873853791907,-0.8494167367814498]],[2,[-2.2695727277346123,-0.643804298125275]],[3,[0.9278738161427498,1.2447087777524644]]],"handle_end":[[2,[-1.156966490299823,-1.5520282186949146]],[1,[1.7022700834823468,0.48287890620272833]],[3,[-0.32172621516085087,3.1233079488176827]]],"stroke":[[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18015048324114736039,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"remove":[],"delta":[[29,[705.1851851851852,106.27160493827162]],[22,[785.9753086419753,197.13580246913585]],[1,[687.4074074074074,99.1604938271605]],[24,[746.8641975308642,175.40740740740742]],[27,[722.1728395061729,147.1604938271605]],[11,[596.9382716049383,85.13580246913581]],[17,[757.7283950617285,217.48148148148147]],[26,[752.1975308641976,172.83950617283952]],[12,[603.4567901234568,92.8395061728395]],[20,[805.1358024691358,260.34567901234567]],[3,[675.3580246913581,68.74074074074075]],[23,[760.8888888888889,175.80246913580248]],[15,[664.8888888888889,140.64197530864195]],[10,[597.530864197531,73.08641975308642]],[5,[639.8024691358025,44.24691358024691]],[25,[737.7777777777778,170.07407407407408]],[18,[799.2098765432099,253.23456790123456]],[6,[617.283950617284,44.641975308641975]],[21,[805.925925925926,230.9135802469136]],[4,[654.4197530864197,54.91358024691358]],[16,[672.5925925925926,176.5925925925926]],[19,[797.8271604938273,246.1234567901235]],[13,[616.2962962962963,115.16049382716052]],[8,[613.3333333333334,44.24691358024691]],[28,[730.2716049382716,169.4814814814815]],[7,[607.2098765432099,55.308641975308646]],[2,[683.0617283950618,104.2962962962963]],[14,[630.716049382716,132.3456790123457]],[9,[609.3827160493827,43.65432098765433]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29],"remove":[],"start_point":[[29,29],[12,12],[21,21],[24,24],[11,11],[6,6],[27,27],[13,13],[23,23],[7,7],[10,10],[26,26],[25,25],[9,9],[18,18],[22,22],[1,1],[3,3],[20,20],[5,5],[16,16],[28,28],[2,2],[14,14],[4,4],[15,15],[8,8],[19,19],[17,17]],"end_point":[[22,23],[27,28],[13,14],[21,22],[7,8],[24,25],[6,7],[16,17],[18,19],[2,3],[28,29],[5,6],[19,20],[20,21],[29,1],[14,15],[17,18],[9,10],[11,12],[12,13],[8,9],[26,27],[25,26],[15,16],[1,2],[4,5],[3,4],[10,11],[23,24]],"handle_primary":[[11,[3.3580246913580822,1.9753086419753176]],[20,[0.0,0.0]],[16,[29.23456790123464,10.666666666666686]],[19,[4.543209876543187,5.925925925925952]],[2,[-8.120713305898448,-14.573388203017842]],[10,[-6.320987654320902,4.740740740740733]],[28,[0.0,0.0]],[24,[-5.3333333333332575,-2.5679012345678984]],[29,[-13.234567901234527,-3.3580246913580396]],[25,[0.0,0.0]],[27,[0.0,0.0]],[14,[5.728395061728293,2.370370370370381]],[8,[-1.1851851851851052,-1.1851851851851904]],[13,[2.370370370370324,7.308641975308632]],[6,[-8.09876543209873,4.740740740740733]],[5,[-9.48148148148141,0.9876543209876516]],[1,[-2.1728395061728634,1.5802469135802255]],[3,[-15.209876543209816,-1.7777777777777717]],[15,[6.913580246913625,9.87654320987656]],[4,[-2.3703703703704377,-3.555555555555557]],[17,[20.594048174910657,8.937919170354007]],[23,[-2.5679012345678984,-0.592592592592581]],[22,[-7.506172839506121,-7.901234567901298]],[12,[5.728395061728406,16.98765432098766]],[21,[-2.5679012345678984,-9.481481481481469]],[9,[-14.024691358024713,15.802469135802482]],[7,[-0.9876543209876444,-4.740740740740733]],[26,[0.0,0.0]],[18,[0.0,-2.172839506172835]]],"handle_end":[[12,[0.0,0.0]],[23,[5.3333333333332575,2.5679012345678984]],[26,[19.35802469135808,26.864197530864203]],[22,[2.5679012345678984,0.592592592592581]],[27,[-3.7530864197531177,-7.506172839506178]],[25,[-4.740740740740762,0.790123456790127]],[16,[-20.59404817491054,-8.937919170353979]],[11,[0.0,0.0]],[7,[0.0,0.0]],[3,[2.3703703703704377,3.555555555555557]],[20,[2.5679012345678984,9.481481481481438]],[24,[0.0,0.0]],[28,[17.580246913580254,58.07407407407402]],[17,[0.0,0.0]],[14,[-6.913580246913625,-9.876543209876502]],[18,[0.0,0.0]],[29,[0.0,0.0]],[2,[0.0,0.0]],[6,[0.0,0.0]],[10,[-3.3580246913580822,-1.9753086419753176]],[1,[0.0,0.0]],[13,[-5.728395061728293,-2.370370370370381]],[15,[0.0,0.0]],[4,[9.48148148148141,-0.9876543209876444]],[9,[0.0,0.0]],[8,[0.0,0.0]],[19,[0.0,0.0]],[21,[7.506172839506121,7.901234567901213]],[5,[0.0,0.0]]],"stroke":[[16,0],[29,0],[24,0],[14,0],[9,0],[3,0],[13,0],[8,0],[12,0],[22,0],[11,0],[21,0],[28,0],[7,0],[25,0],[20,0],[5,0],[19,0],[23,0],[1,0],[17,0],[18,0],[15,0],[4,0],[6,0],[10,0],[2,0],[26,0],[27,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":29}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13975451746581400000,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[901.6,572.8]],[1,[835.7333333333332,786.4000000000001]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[1,2],[2,1]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[47.4666666666667,-108.26666666666664]],[1,[-22.399999999999977,109.06666666666648]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13035777574951374461,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[896.0,440.44444444444446]],[3,[696.8888888888889,697.3333333333333]],[2,[833.7777777777778,573.3333333333333]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,3]],"handle_primary":[[2,[-68.0,92.88888888888891]],[1,[0.0,0.0]]],"handle_end":[[1,[68.0,-92.88888888888891]],[2,[0.0,0.0]]],"stroke":[[2,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3827449344952693766,{"inputs":[{"Node":{"node_id":2440895173483452224,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11565160497886435388,{"inputs":[{"Node":{"node_id":7893851488963635918,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":6.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10336592647221792772,{"inputs":[{"Node":{"node_id":16051539163551573193,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3535178979443201645,{"inputs":[{"Node":{"node_id":12838133055063962839,"output_index":0}},{"Node":{"node_id":8240895922641772563,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14675232891471617236,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[652.8888888888889,822.6666666666666]],[2,[480.7407407407408,1026.6666666666663]],[3,[483.9506172839506,1026.7654320987656]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[2,2],[3,3]],"end_point":[[2,3],[3,1],[1,2]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[3,[-143.85185185185185,150.07407407407413]],[1,[26.66666666666669,-58.666666666666515]]],"stroke":[[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14035980686649077716,{"inputs":[{"Node":{"node_id":6666260895482068061,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[421715625023770179,{"inputs":[{"Node":{"node_id":3670529450440935325,"output_index":0}},{"Node":{"node_id":3150436463719911922,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2044103368441997753,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[7,[710.7160493827162,200.09876543209884]],[6,[756.7407407407409,223.40740740740748]],[2,[723.3580246913581,337.97530864197535]],[3,[747.6543209876543,394.6666666666667]],[1,[710.5185185185186,302.2222222222223]],[8,[694.5185185185187,204.8395061728396]],[5,[793.6790123456792,258.7654320987655]],[4,[796.4444444444446,278.12345679012356]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[8,8],[2,2],[1,1],[5,5],[7,7],[4,4],[6,6],[3,3]],"end_point":[[3,4],[1,2],[6,7],[4,5],[8,1],[7,8],[5,6],[2,3]],"handle_primary":[[6,[-22.518518518518476,-12.641975308641976]],[2,[0.0,0.0]],[4,[0.0,0.0]],[7,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[8,[0.0,0.0]],[5,[-5.135802469135797,-10.271604938271594]]],"handle_end":[[5,[22.518518518518476,12.641975308641976]],[6,[0.0,0.0]],[2,[-10.864197530864203,-35.5555555555556]],[7,[8.117474523314513,-0.7895812719984008]],[1,[1.3827160493826796,-12.641975308641976]],[3,[-12.049382716049422,68.54320987654324]],[8,[7.111111111110972,-82.76543209876547]],[4,[5.135802469135797,10.271604938271594]]],"stroke":[[6,0],[5,0],[4,0],[7,0],[2,0],[3,0],[1,0],[8,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6124821161363551058,{"inputs":[{"Node":{"node_id":10420981328998103391,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6749771744300551215,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[3,[726.6666666666666,765.3333333333333]],[2,[660.4444444444443,878.2222222222222]],[5,[585.3333333333333,1025.7777777777778]],[4,[620.8888888888888,943.5555555555557]],[1,[589.3333333333333,1025.3333333333333]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[4,4],[1,1],[2,2],[5,5],[3,3]],"end_point":[[3,4],[5,1],[2,3],[4,5],[1,2]],"handle_primary":[[1,[0.0,0.0]],[5,[0.0,0.0]],[3,[0.0,0.0]],[2,[31.11111111111109,-50.66666666666663]],[4,[-29.333333333333258,59.11111111111097]]],"handle_end":[[1,[-31.863450886870623,51.89190573004646]],[3,[29.333333333333258,-59.1111111111112]],[2,[0.0,0.0]],[4,[0.0,0.0]],[5,[-0.4444444444443434,0.8888888888889142]]],"stroke":[[5,0],[3,0],[1,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2440895173483452224,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[30.814814814814767,578.0740740740739]],[3,[33.18518518518515,636.148148148148]],[1,[93.037037037037,526.8148148148147]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[-9.185185185185162,39.703703703703695]]],"handle_end":[[2,[0.0,0.0]],[1,[9.185185185185162,-39.703703703703695]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11356586238302409958,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[4,[777.7777777777778,375.7037037037037]],[6,[792.2962962962963,188.74074074074073]],[2,[783.1111111111111,348.74074074074065]],[3,[732.148148148148,432.2962962962963]],[1,[811.5555555555555,250.96296296296296]],[5,[811.8518518518518,273.18518518518516]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[5,5],[4,4],[3,3],[2,2],[1,1]],"end_point":[[2,3],[3,4],[1,2],[5,6],[4,5]],"handle_primary":[[5,[3.7834358363461433,-27.565032521950258]],[4,[10.310300340717504,-19.181954122264813]],[2,[-14.6604291210798,34.80924611318039]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[-4.148148148148152,30.22222222222223]],[2,[26.666666666666515,-35.555555555555486]],[1,[14.6604291210798,-34.809246113180336]],[5,[26.074074074074133,33.18518518518516]],[3,[-12.740740740740875,23.703703703703695]]],"stroke":[[3,0],[2,0],[5,0],[4,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13231685386999438557,{"inputs":[{"Node":{"node_id":1659518581611333812,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9371909264427723282,{"inputs":[{"Node":{"node_id":8595304668947966919,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.84705883,"green":0.5372549,"blue":0.38431373,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9782123335421401489,{"inputs":[{"Node":{"node_id":11656581020969095354,"output_index":0}},{"Node":{"node_id":1019037285881657884,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2780251074492832077,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[644.0435005900861,214.94345295604788]],[1,[620.0443231093315,208.38630063890184]],[4,[654.5349442975197,224.51689533908117]],[3,[679.189837009989,239.99177480754585]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[4,4],[2,2]],"end_point":[[4,1],[2,3],[3,4],[1,2]],"handle_primary":[[4,[-14.688021190407198,-10.884872846462486]],[2,[17.048596024579638,8.262011919603992]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[1,[-9.660678057982182,-4.68171321271447]],[2,[-15.868308607493532,-9.835728475719122]],[4,[0.1311430463429133,0.13114304634288487]],[3,[13.4932102981968,9.999432631699392]]],"stroke":[[4,0],[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17118107476414252025,{"inputs":[{"Node":{"node_id":6645255982686652881,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[74.2222222222222,480.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[40.0,40.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3627710206997006419,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[152.49382716049382,262.71604938271605]],[3,[154.2366898148148,257.4780574845679]],[2,[149.94787379972564,262.84773662551436]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[1,1],[3,3],[2,2]],"end_point":[[1,2],[2,3],[3,1]],"handle_primary":[[1,[0.0,0.0]],[2,[-0.2633744855966995,-0.4389574759944139]],[3,[4.31137018907981,-2.5386217986682027]]],"handle_end":[[3,[2.8421709430404014e-14,0.0]],[1,[0.4650366425890411,0.7750610709815646]],[2,[-3.3775342902714556,1.988760370600971]]],"stroke":[[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12838133055063962839,{"inputs":[{"Node":{"node_id":13644138583806412631,"output_index":0}},{"Node":{"node_id":6973438081601736688,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7922156219537051964,{"inputs":[{"Node":{"node_id":13594670583065022897,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15446793500614592278,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[7,[718.3100137174213,77.2565157750343]],[6,[724.6310013717421,85.86008230452676]],[8,[697.5034293552812,77.4320987654321]],[1,[694.3429355281208,73.8326474622771]],[2,[702.244170096022,76.11522633744856]],[5,[718.2222222222222,97.09739368998628]],[4,[725.5967078189301,90.3374485596708]],[3,[722.3484224965707,77.2565157750343]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[4,4],[2,2],[1,1],[3,3],[5,5],[8,8],[6,6],[7,7]],"end_point":[[3,4],[7,8],[6,7],[2,3],[4,5],[5,6],[8,1],[1,2]],"handle_primary":[[6,[-0.7023319615914261,-5.091906721536347]],[7,[-6.236870142765838,-1.74052190030676]],[4,[-1.9392278971834005,5.143169640356035]],[1,[0.0,0.0]],[3,[3.456189131014753,3.3025807251918877]],[8,[-3.5116598079559935,-1.6680384087791396]],[2,[5.267489711934218,-0.7023319615912129]],[5,[0.0,0.0]]],"handle_end":[[7,[3.5116598079559935,1.6680384087791396]],[1,[-5.267489711934218,0.7023319615912129]],[3,[2.0192043895747247,-5.355281207133089]],[2,[-3.950617283950578,-3.775034293552821]],[6,[3.7750342935527215,1.0534979423868265]],[5,[0.6823799889585871,4.947254919948108]],[8,[0.08779149519887142,0.08779149519891405]],[4,[0.0,0.0]]],"stroke":[[7,0],[3,0],[1,0],[2,0],[5,0],[4,0],[8,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9684857454501250999,{"inputs":[{"Node":{"node_id":8699675339613677057,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13444661581815146533,{"inputs":[{"Node":{"node_id":16450742929146919960,"output_index":0}},{"Node":{"node_id":10792166025753022402,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14993053984267866751,{"inputs":[{"Node":{"node_id":13907578809542898348,"output_index":0}},{"Node":{"node_id":9863310024364795214,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16195626650123806176,{"inputs":[{"Node":{"node_id":14057307926677215422,"output_index":0}},{"Node":{"node_id":1869448627329502330,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18279507457571359732,{"inputs":[{"Node":{"node_id":8697043784435445845,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3121275823460307102,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[705.7777777777778,698.6666666666666]],[2,[612.0,780.0]],[4,[449.77777777777777,1025.7777777777778]],[5,[595.5555555555555,791.1111111111111]],[3,[452.88888888888886,1025.3333333333333]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[2,2],[5,5],[4,4],[1,1],[3,3]],"end_point":[[1,2],[3,4],[4,5],[5,1],[2,3]],"handle_primary":[[3,[0.0,0.0]],[5,[54.93054949731868,-52.22097082256312]],[2,[-35.111111111111086,34.66666666666663]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[35.111111111111086,-34.66666666666663]],[4,[-99.11111111111104,94.22222222222229]],[2,[59.111111111111086,-144.8888888888889]],[5,[-1.1368683772161605e-13,-0.5925925925926094]]],"stroke":[[2,0],[4,0],[5,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13269760558336088742,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[265.3333333333333,312.0]],[3,[595.1111111111111,439.55555555555554]],[4,[698.2222222222222,483.1111111111111]],[5,[756.4444444444443,438.22222222222223]],[2,[447.1111111111111,332.44444444444446]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[2,2],[1,1]],"end_point":[[4,5],[1,2],[3,4],[2,3]],"handle_primary":[[4,[22.46059594926794,-9.800987323316916]],[2,[83.95959630801838,35.04735442215451]],[3,[20.8888888888888,20.444444444444457]],[1,[0.0,0.0]]],"handle_end":[[3,[-48.888888888888914,21.33333333333331]],[4,[-22.222222222222285,23.111111111111143]],[1,[-96.88888888888886,-40.44444444444446]],[2,[-20.8888888888888,-20.444444444444457]]],"stroke":[[2,0],[3,0],[4,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11590691579869262546,{"inputs":[{"Node":{"node_id":11553850607251055696,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13481022631108980683,{"inputs":[{"Node":{"node_id":9182448229950585507,"output_index":0}},{"Node":{"node_id":12224498203743157414,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14797986717815207528,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[80.0,557.0]],[2,[425.0,650.0]],[3,[665.7777777777778,658.6666666666667]],[5,[868.0,380.44444444444446]],[4,[826.6666666666665,552.4444444444443]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[1,2],[3,4],[2,3],[4,5]],"handle_primary":[[1,[134.0,-75.0]],[4,[59.11111111111131,-70.66666666666652]],[3,[0.0,0.0]],[2,[105.59298295237464,48.735222901095995]]],"handle_end":[[1,[-104.0,-48.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[-59.11111111111131,70.66666666666652]]],"stroke":[[2,0],[1,0],[4,0],[3,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5861306074868809692,{"inputs":[{"Node":{"node_id":10190227675276560561,"output_index":0}},{"Node":{"node_id":3636653585682494814,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13907578809542898348,{"inputs":[{"Node":{"node_id":12313564802550122052,"output_index":0}},{"Node":{"node_id":15827578515555598997,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[581013017684525986,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[803.5555555555554,878.6666666666665]],[2,[852.0,631.1111111111111]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[2,1],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[-41.77777777777783,81.77777777777771]]],"handle_end":[[1,[-37.77777777777783,80.88888888888903]],[2,[0.0,-0.4444444444443434]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3670529450440935325,{"inputs":[{"Node":{"node_id":1384427686127078856,"output_index":0}},{"Node":{"node_id":8543051864256131356,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12030171742672119253,{"inputs":[{"Node":{"node_id":12801133692316734622,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7450965328305122110,{"inputs":[{"Node":{"node_id":2659768650911099730,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.4},"exposed":false}},{"Value":{"tagged_value":{"F64":2.5},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1806828617441445250,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[32.0,1025.3333333333333]],[1,[395.3333333333333,758.0]],[2,[304.6666666666667,765.3333333333333]],[3,[147.33333333333334,814.0000000000001]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[2,3],[1,2],[3,4]],"handle_primary":[[2,[-32.666666666666686,0.6666666666667425]],[1,[0.0,0.0]],[3,[-50.13723402627032,36.301698579412914]]],"handle_end":[[1,[32.666666666666686,-0.6666666666667425]],[2,[50.137234026270335,-36.301698579412914]],[3,[-0.6666666666666892,-122.66666666666686]]],"stroke":[[1,0],[2,0],[3,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13475705179546695973,{"inputs":[{"Node":{"node_id":11451028343967836482,"output_index":0}},{"Node":{"node_id":501401493219507773,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2594533001540454577,{"inputs":[{"Node":{"node_id":15518174914032911052,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":8.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9276497172451351253,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[605.9173906416706,103.71101966163694]],[1,[606.8928516994359,102.3453741807651]],[2,[607.1269623532997,114.75323883554336]],[3,[605.1760402377686,111.78783721993597]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[1,1],[4,4],[2,2]],"end_point":[[4,1],[2,3],[1,2],[3,4]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[-0.585276634659408,-2.419143423258646]],[4,[0.27360881696279193,-0.7182231445274425]]],"handle_end":[[2,[0.585276634659408,2.4191434232586317]],[3,[-0.6242950769699291,1.6387745770462772]],[4,[0.0,0.03901844231063478]],[1,[-1.3656454808717626,-5.306508154244753]]],"stroke":[[3,0],[1,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7821977654068146599,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[917.0,471.6]],[2,[826.5068586621596,856.9308484975209]],[3,[825.9524005971,863.6469292802573]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[1,1],[2,2]],"end_point":[[2,3],[1,2],[3,1]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[1,[94.89314133784036,-231.73084849752092]],[3,[-0.39999999999997726,191.19999999999985]]],"stroke":[[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15126865253122550765,{"inputs":[{"Node":{"node_id":13014628586360765651,"output_index":0}},{"Node":{"node_id":4307303572241320716,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2682920349304670808,{"inputs":[{"Node":{"node_id":10928540355449103287,"output_index":0}},{"Node":{"node_id":16324258033206362312,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13368990606109678244,{"inputs":[{"Node":{"node_id":421715625023770179,"output_index":0}},{"Node":{"node_id":15961046538654083626,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16290933138334939444,{"inputs":[{"Node":{"node_id":17426609415699324395,"output_index":0}},{"Node":{"node_id":14888395629683671889,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12496143061817048445,{"inputs":[{"Node":{"node_id":7525593029671097583,"output_index":0}},{"Node":{"node_id":7654665057468818389,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12880230498984021417,{"inputs":[{"Node":{"node_id":15949658764632267703,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14883504161508594099,{"inputs":[{"Node":{"node_id":13368990606109678244,"output_index":0}},{"Node":{"node_id":11025165626998987360,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7262199696924786895,{"inputs":[{"Node":{"node_id":14029368390543839187,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[952330505278607301,{"inputs":[{"Node":{"node_id":15038739378867834454,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5302437193964714993,{"inputs":[{"Node":{"node_id":1235106489581249820,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10792166025753022402,{"inputs":[{"Node":{"node_id":2780251074492832077,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16649851742084147477,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[1,[870.6666666666665,383.55555555555554]],[2,[838.6666666666666,564.0]]]},"segments":{"add":[1],"remove":[],"start_point":[[1,1]],"end_point":[[1,2]],"handle_primary":[[1,[16.000000000000227,37.33333333333337]]],"handle_end":[[1,[48.44444444444446,-91.11111111111109]]],"stroke":[[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1272070255512697108,{"inputs":[{"Node":{"node_id":14012648643507848353,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17147975601187022720,{"inputs":[{"Node":{"node_id":18015048324114736039,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15518174914032911052,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[851.5555555555557,370.66666666666663]],[3,[639.1111111111112,614.6666666666666]],[4,[429.7777777777778,551.5555555555555]],[2,[814.2222222222223,498.66666666666663]],[6,[129.77777777777777,406.2222222222222]],[5,[262.6666666666667,423.5555555555556]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1],[5,5]],"end_point":[[1,2],[2,3],[4,5],[3,4],[5,6]],"handle_primary":[[4,[-74.22222222222217,-57.77777777777783]],[2,[-43.55555555555554,54.66666666666663]],[5,[-58.2222222222222,-21.77777777777783]],[1,[0.0,0.0]],[3,[-83.11111111111109,3.111111111111086]]],"handle_end":[[1,[43.55555555555554,-54.66666666666663]],[4,[66.87431172777582,25.01405553176352]],[2,[83.11111111111109,-3.111111111111086]],[3,[74.22222222222217,57.77777777777783]],[5,[57.333333333333314,-5.777777777777828]]],"stroke":[[4,0],[1,0],[5,0],[2,0],[3,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17078740291337047697,{"inputs":[{"Node":{"node_id":3406722917122601552,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.84765625,"green":0.5384252,"blue":0.3874054,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.84765625,"green":0.5384252,"blue":0.3874054,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10264089084180279094,{"inputs":[{"Node":{"node_id":5213978458941436169,"output_index":0}},{"Node":{"node_id":4332145463108161926,"output_index":0}},{"Value":{"tagged_value":{"F64":1.0},"exposed":false}},{"Value":{"tagged_value":{"F64":60.0},"exposed":false}},{"Value":{"tagged_value":{"F64":-100.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4859656512650360562,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[249.3333333333334,898.0]],[1,[163.33333333333343,1025.3333333333333]],[3,[416.66666666666663,803.3333333333333]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[40.66666666666666,-40.666666666666515]]],"handle_end":[[1,[-45.09988913511887,45.099889135118815]],[2,[-77.99999999999994,22.666666666666742]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13594670583065022897,{"inputs":[{"Node":{"node_id":13302269488061286120,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4265165189651403984,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":10264089084180279094,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12428327489525325219,{"inputs":[{"Node":{"node_id":14209241002058525241,"output_index":0}},{"Node":{"node_id":1984475088429379731,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16767482995096345179,{"inputs":[{"Node":{"node_id":6532401937876437300,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5278509881589546420,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[899.1111111111111,600.0000000000001]],[2,[824.4444444444445,850.2222222222223]],[3,[823.7037037037037,861.8666666666667]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[1,2],[2,3],[3,1]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[39.55555555555554,-105.8222222222222]],[2,[0.0,0.0]],[3,[-26.31111111111113,120.79999999999984]]],"stroke":[[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7659717355245331967,{"inputs":[{"Node":{"node_id":18422317423856403288,"output_index":0}},{"Node":{"node_id":4479074488343511985,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8697043784435445845,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"remove":[],"delta":[[5,[616.4444444444443,170.22222222222223]],[15,[155.85185185185185,253.03703703703707]],[23,[185.37661941777165,263.56957780826093]],[3,[679.9012345679013,198.716049382716]],[2,[701.7777777777777,252.0]],[18,[195.1604938271605,228.54320987654324]],[33,[602.2716049382716,229.5308641975309]],[6,[553.7777777777777,195.11111111111111]],[22,[195.95061728395063,253.8271604938272]],[34,[647.5061728395062,240.79012345679013]],[17,[183.50617283950615,231.70370370370372]],[30,[425.4814814814815,246.71604938271605]],[7,[452.0,206.22222222222223]],[26,[227.55555555555557,246.51851851851853]],[12,[199.11111111111111,214.51851851851853]],[32,[526.0246913580247,240.79012345679013]],[20,[217.87654320987656,231.90123456790127]],[31,[463.01234567901247,246.71604938271605]],[16,[172.44444444444446,239.40740740740745]],[29,[369.3827160493828,240.19753086419755]],[8,[413.77777777777777,199.55555555555551]],[9,[326.22222222222223,208.0]],[21,[216.8888888888889,238.22222222222223]],[10,[271.1111111111111,207.55555555555551]],[11,[208.44444444444443,212.0]],[24,[188.90085842299663,268.4351595864769]],[35,[680.888888888889,281.48148148148147]],[4,[647.5555555555554,171.55555555555557]],[19,[205.23456790123456,227.55555555555557]],[27,[251.06172839506175,233.283950617284]],[1,[699.5555555555554,303.55555555555554]],[13,[173.03703703703707,226.962962962963]],[25,[201.87654320987656,262.12345679012344]],[14,[155.06172839506175,249.08641975308643]],[28,[278.9135802469136,223.80246913580248]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"remove":[],"start_point":[[11,11],[14,14],[7,7],[15,15],[5,5],[9,9],[1,1],[3,3],[25,25],[28,28],[30,30],[24,24],[17,17],[26,26],[35,35],[8,8],[29,29],[21,21],[6,6],[20,20],[34,34],[33,33],[23,23],[4,4],[31,31],[12,12],[32,32],[19,19],[13,13],[18,18],[27,27],[10,10],[22,22],[2,2],[16,16]],"end_point":[[31,32],[16,17],[25,26],[5,6],[28,29],[29,30],[30,31],[13,14],[35,1],[24,25],[15,16],[6,7],[1,2],[20,21],[27,28],[22,23],[33,34],[26,27],[19,20],[4,5],[3,4],[21,22],[18,19],[9,10],[32,33],[2,3],[34,35],[14,15],[8,9],[23,24],[10,11],[12,13],[17,18],[11,12],[7,8]],"handle_primary":[[26,[8.493827160493822,-2.765432098765416]],[33,[24.098765432098844,-2.5679012345678984]],[35,[10.469135802469168,11.851851851851848]],[24,[3.3430068414448044,-0.5735531240474074]],[11,[0.0,0.0]],[34,[10.074074074074131,11.85185185185182]],[13,[-9.28395061728395,7.703703703703695]],[18,[4.148148148148124,-1.3827160493827364]],[2,[-2.913580246913398,-22.66666666666669]],[17,[2.7654320987654444,-0.790123456790127]],[9,[-30.22222222222223,1.3333333333333712]],[27,[6.518518518518505,-6.518518518518562]],[14,[-1.61975308641982,1.935802469135723]],[6,[-23.11111111111109,9.777777777777771]],[5,[-12.0,3.555555555555543]],[30,[11.061728395061778,0.7901234567900985]],[28,[14.81481481481478,1.9753086419753176]],[22,[-8.16460905349794,4.4115226337448235]],[1,[0.0,0.0]],[23,[-0.9364426154549506,2.4191434232586175]],[8,[-25.33333333333331,1.7777777777778567]],[15,[3.7530864197531177,-1.580246913580254]],[4,[-10.222222222222172,-3.5555555555555713]],[16,[5.530864197530889,-7.111111111111143]],[7,[-8.444444444444457,-2.2222222222222285]],[32,[23.90123456790127,-2.765432098765416]],[10,[-12.888888888888856,1.7777777777778567]],[25,[4.938271604938279,-3.160493827160451]],[3,[-17.576025737442137,-14.306067460708704]],[12,[-5.53086419753086,3.3580246913580254]],[29,[29.4320987654321,3.358024691358054]],[31,[19.753086419753004,-4.543209876543159]],[19,[4.74074074074079,0.9876543209876728]],[20,[2.3703703703704093,1.185185185185162]],[21,[-3.753086419753061,3.5555555555555713]]],"handle_end":[[33,[-10.074074074074131,-11.851851851851848]],[5,[23.11111111111109,-9.777777777777745]],[7,[25.33333333333331,-1.777777777777743]],[30,[-19.753086419753004,4.543209876543187]],[4,[12.0,-3.555555555555543]],[8,[30.22222222222223,-1.3333333333333712]],[26,[-6.518518518518505,6.518518518518505]],[2,[8.493827160493879,6.913580246913597]],[3,[10.222222222222172,3.5555555555555713]],[11,[5.530864197530917,-3.3580246913580254]],[18,[-4.740740740740705,-0.9876543209876728]],[17,[-4.148148148148152,1.3827160493827648]],[31,[-23.90123456790127,2.7654320987653875]],[19,[-2.3703703703704093,-1.185185185185162]],[9,[12.888888888888856,-1.777777777777743]],[23,[-1.24660051630255,0.213876804468498]],[25,[-8.493827160493822,2.765432098765416]],[10,[20.88888888888889,-1.4814814814814952]],[27,[-14.81481481481478,-1.9753086419753176]],[21,[9.952891875905069,-5.377772223271279]],[22,[0.752878950104872,-1.9449372877709263]],[14,[-3.7530864197531177,1.580246913580254]],[34,[-10.469135802469168,-11.851851851851848]],[6,[8.444444444444457,2.222222222222257]],[16,[-2.765432098765416,0.790123456790127]],[20,[3.753086419753089,-3.5555555555556]],[24,[-4.938271604938279,3.160493827160451]],[32,[-24.098765432098844,2.5679012345678984]],[13,[1.4782632300064904,-1.7667048358613044]],[1,[2.822923929132685,21.961391245287817]],[35,[0.0,5.684341886080804e-14]],[28,[-29.4320987654321,-3.358024691357997]],[15,[-5.530864197530889,7.111111111111086]],[12,[9.283950617283978,-7.703703703703695]],[29,[-11.061728395061778,-0.790123456790127]]],"stroke":[[17,0],[26,0],[4,0],[5,0],[22,0],[10,0],[18,0],[15,0],[25,0],[19,0],[28,0],[7,0],[14,0],[8,0],[34,0],[2,0],[20,0],[31,0],[1,0],[12,0],[23,0],[35,0],[27,0],[3,0],[29,0],[33,0],[32,0],[13,0],[24,0],[16,0],[11,0],[21,0],[30,0],[9,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":35}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4236845268521674740,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[397.6296296296296,1025.185185185185]],[3,[393.1851851851852,1025.4814814814813]],[2,[568.8888888888889,785.4814814814813]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[2,3],[3,1],[1,2]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[1,[-153.1851851851851,112.88888888888891]],[3,null],[2,[33.777777777777885,-150.22222222222194]]],"stroke":[[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1984475088429379731,{"inputs":[{"Node":{"node_id":1621196991038859321,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9271343782272072828,{"inputs":[{"Node":{"node_id":4078100635676202528,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.8980392,"green":0.8,"blue":0.6117647,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[514796034658094296,{"inputs":[{"Node":{"node_id":13352561089252322209,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8698602280607307123,{"inputs":[{"Node":{"node_id":14098374807212007572,"output_index":0}},{"Node":{"node_id":14285767317419627814,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10770443343193024138,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[5,[671.3086419753088,28.641975308641975]],[1,[616.0987654320988,23.01234567901235]],[2,[621.0370370370372,23.01234567901235]],[4,[656.6913580246915,28.049382716049383]],[3,[634.172839506173,30.814814814814817]],[6,[656.4609053497943,30.375857338820303]],[7,[634.1618655692731,33.7997256515775]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[6,6],[1,1],[4,4],[5,5],[3,3],[2,2],[7,7]],"end_point":[[7,1],[4,5],[3,4],[1,2],[6,7],[2,3],[5,6]],"handle_primary":[[4,[4.345679012345727,-0.39506172839505993]],[7,[-6.408779149519887,-0.8340192043895769]],[5,[0.0,0.0]],[1,[0.0,0.0]],[6,[-10.31550068587103,2.4142661179698237]],[2,[1.1851851851851052,1.5802469135802468]],[3,[6.024691358024711,0.4938271604938329]]],"handle_end":[[1,[-1.1851851851851052,-1.5802469135802468]],[7,[4.455418381344316,5.4759945130315515]],[5,[10.31550068587103,-2.4142661179698237]],[3,[-4.345679012345727,0.39506172839506704]],[4,[-0.39506172839503506,-0.5925925925925917]],[2,[-6.024691358024711,-0.49382716049382935]],[6,[6.408779149519887,0.8340192043895769]]],"stroke":[[4,0],[6,0],[7,0],[3,0],[5,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1019037285881657884,{"inputs":[{"Node":{"node_id":11481949351661484921,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8410534738018320047,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2],"remove":[],"delta":[[2,[762.5185185185184,667.5061728395063]],[1,[834.6666666666665,551.8024691358028]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[2,2],[1,1]],"end_point":[[2,1],[1,2]],"handle_primary":[[2,[44.88888888888857,-64.49382716049388]],[1,[0.0,0.0]]],"handle_end":[[1,[47.85185185185162,-63.160493827160394]],[2,null]],"stroke":[[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":2}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2397243911096708995,{"inputs":[{"Node":{"node_id":10587073897090054035,"output_index":0}},{"Node":{"node_id":7505360855062237520,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[541002100261582638,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[536.8888888888889,544.4444444444445]],[4,[648.4444444444443,543.5555555555555]],[1,[456.88888888888886,483.55555555555554]],[3,[609.7777777777777,559.5555555555555]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[3,4],[2,3],[1,2]],"handle_primary":[[3,[20.0,-7.555555555555543]],[2,[25.777777777777715,11.555555555555545]],[1,[0.0,0.0]]],"handle_end":[[1,[-25.777777777777715,-11.555555555555545]],[2,[-20.0,7.555555555555543]],[3,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5009664118231399060,{"inputs":[{"Node":{"node_id":3226457726231232839,"output_index":0}},{"Node":{"node_id":17207895962122263432,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1378578509112405,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[2,[599.5281207133061,50.3923182441701]],[4,[594.6410608139003,75.57872275567746]],[1,[602.6886145404666,50.91906721536352]],[3,[590.4855967078191,66.80932784636488]],[5,[593.3924706599604,60.59564090839812]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[2,2],[3,3],[5,5],[1,1],[4,4]],"end_point":[[1,2],[3,4],[5,1],[2,3],[4,5]],"handle_primary":[[3,[1.9314128943758533,7.3257125438195345]],[4,[0.0,0.0]],[5,[1.248590153939972,-3.9798811156835896]],[2,[-1.843621399176982,0.5267489711934203]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[-1.704168058538812,5.432035686592322]],[5,[-4.379820149367788,0.9754610577655498]],[2,[-2.7532629181224593,-10.4429315732828]],[1,[1.843621399176982,-0.5267489711934203]]],"stroke":[[1,0],[2,0],[3,0],[4,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[501401493219507773,{"inputs":[{"Node":{"node_id":9425359632144678256,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.7529412,"green":0.15686275,"blue":0.13333334,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1235106489581249820,{"inputs":[{"Node":{"node_id":3970516859959908758,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2394762731964337494,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":4422453582814483232,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1024.0,1024.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Import":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4341772758799935306,{"inputs":[{"Node":{"node_id":1785173043494067496,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3226457726231232839,{"inputs":[{"Node":{"node_id":4493274523708782092,"output_index":0}},{"Node":{"node_id":7922156219537051964,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6645255982686652881,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,0.5]],[3,[0.5,1.0]],[2,[1.0,0.5]],[1,[0.5,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[1,1],[2,2]],"end_point":[[3,4],[1,2],[4,1],[2,3]],"handle_primary":[[1,[0.27589238888950707,0.0]],[2,[0.0,0.27589238888950707]],[3,[-0.275892388889507,0.0]],[4,[0.0,-0.275892388889507]]],"handle_end":[[1,[0.0,-0.275892388889507]],[2,[0.27589238888950707,0.0]],[4,[-0.275892388889507,0.0]],[3,[0.0,0.27589238888950707]]],"stroke":[[1,0],[4,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1162381870526064378,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":9271343782272072828,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7447657690776686262,{"inputs":[{"Node":{"node_id":3649809135741361946,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9698363115186534174,{"inputs":[{"Node":{"node_id":1661691009086487874,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5471152581000334146,{"inputs":[{"Node":{"node_id":12761901161949743155,"output_index":0}},{"Node":{"node_id":952330505278607301,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15827578515555598997,{"inputs":[{"Node":{"node_id":15656854169166220905,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14539627480594383748,{"inputs":[{"Node":{"node_id":581013017684525986,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2282726379014798660,{"inputs":[{"Node":{"node_id":454416440369338250,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11417901103965737900,{"inputs":[{"Node":{"node_id":13269760558336088742,"output_index":0}},{"Value":{"tagged_value":{"PointSpacingType":"Separation"},"exposed":false}},{"Value":{"tagged_value":{"F64":5.0},"exposed":false}},{"Value":{"tagged_value":{"U32":100},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"Bool":false},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":2,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SubpathSegmentLengthsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MemoNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::misc::PointSpacingType","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"u32","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":5}},{"Import":{"import_type":{"Concrete":{"name":"bool","alias":null}},"import_index":6}},{"Node":{"node_id":0,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::SamplePolylineNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15637103575662751567,{"inputs":[{"Node":{"node_id":314278016428495768,"output_index":0}},{"Node":{"node_id":4350324834849900949,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10375238420217738812,{"inputs":[{"Node":{"node_id":2282726379014798660,"output_index":0}},{"Node":{"node_id":17078740291337047697,"output_index":0}},{"Value":{"tagged_value":{"F64":1.2},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"U32":0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"core_types::vector::CopyToPointsNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[2780251074492832077,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3414873131936208778,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9954843247420111867,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2641530639940889619,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16324258033206362312,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11268046366284173800,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11025165626998987360,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7141088190930752823,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"blank_assist":true,"unit":" px","min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":2.0,"is_integer":true,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"is_integer":false,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16551385471328831128,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12880230498984021417,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[541002100261582638,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3992858139802231032,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5002654561220917457,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"blank_assist":true,"range_max":100.0,"min":0.01,"range_min":1.0,"is_integer":false,"mode":"Range"},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-312.5,-48.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,38.0,473.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[12131058586835568367,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13557369662261607646,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13269760558336088742,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6666260895482068061,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12049041947382267086,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16805628435335819723,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17426609415699324395,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4222034829755771252,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14797986717815207528,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11021243031011826737,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4131094614457622424,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","min":0.0,"is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":2.0,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","blank_assist":true,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"blank_assist":true,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-228.5,-108.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,122.0,413.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3150436463719911922,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11356586238302409958,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14993053984267866751,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10928540355449103287,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8543051864256131356,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12387541320114693418,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1621196991038859321,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","blank_assist":true,"min":0.0,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"mode":"Increment","is_integer":true,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"mode":"Increment","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1713644030979611623,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16649851742084147477,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17324767436949538365,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14883504161508594099,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,295]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17336535036064625290,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11199691961479466803,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11194653561109699287,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16446146761452576438,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12062649793560663566,{"persistent_metadata":{"reference":"Merge","display_name":"Solid Red Skirt","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":3}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10127467043900015225,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[615144098061106242,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9529195152569434392,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13907578809542898348,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3970516859959908758,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[172538270105470471,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12385950900718181935,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12030171742672119253,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15656854169166220905,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14539627480594383748,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15982852655074258238,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6124821161363551058,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","blank_assist":true,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":false,"min":0.0,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"unit":" px","mode":"Increment","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16195626650123806176,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10264089084180279094,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17699121037850769131,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14991324592500870173,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7505360855062237520,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5861306074868809692,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14888395629683671889,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8375495949882478840,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10420981328998103391,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14098374807212007572,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2878992817082507910,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12224498203743157414,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10432831427187785843,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7922156219537051964,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2126710823743005151,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6580280438672662494,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12313564802550122052,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7747398671834040298,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"range_min":1.0,"is_integer":false,"blank_assist":true,"mode":"Range","min":0.01,"range_max":100.0},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","is_integer":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-312.5,-48.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,38.0,473.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[13644138583806412631,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8698602280607307123,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15961046538654083626,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2044103368441997753,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4265165189651403984,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11058365317860779469,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11804065810513502701,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3170924135668664007,{"persistent_metadata":{"reference":"Merge","display_name":"Pointing Arm","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10514847656270897393,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3971837674569123876,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13045087323693407920,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2659768650911099730,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"unit":" px","mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"unit":" px","mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13975451746581400000,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1272070255512697108,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12838133055063962839,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4832236468224231783,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5269304445610080925,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15735375935164094402,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16536768589601337644,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5455777299776842371,{"persistent_metadata":{"reference":"Merge","display_name":"Beaded Skirt","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":78}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5040278174920511484,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13444661581815146533,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,97]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11630078441485655672,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10587073897090054035,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10586744777717861556,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15239301303367148581,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15460109068588328521,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12219771677493189964,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1157261387411722141,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14537754528543289381,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7821977654068146599,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14035980686649077716,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17078740291337047697,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-31,208]}}},"network_metadata":null}}],[13231685386999438557,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9740500978584792725,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4859656512650360562,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2282726379014798660,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"is_integer":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"unit":" px","mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"mode":"Increment","unit":" px","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5020096817747898028,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9276497172451351253,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13475705179546695973,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4577638792388493935,{"persistent_metadata":{"reference":"Merge","display_name":"Head and Neck","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":78}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11481949351661484921,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"unit":" px","mode":"Increment","min":0.0,"is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9271343782272072828,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12554368619682347699,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11451028343967836482,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9425359632144678256,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18319784717194273926,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10689298484366290551,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10270446074640675342,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":["Data"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[514796034658094296,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14012648643507848353,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7262199696924786895,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"min":0.0,"is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16137033772363318157,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10424806499648491677,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15896921950407486754,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14894569344576297448,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11677503666435782605,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11656581020969095354,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12801133692316734622,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":2.0,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","unit":" px","blank_assist":true,"is_integer":false,"min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11565160497886435388,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"unit":" px","is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":2.0,"is_integer":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"unit":" px","min":0.0,"blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":false,"min":0.0,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2397243911096708995,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11417901103965737900,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"unit":" px","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"mode":"Increment","is_integer":true,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"unit":" px","mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8091904580702893317,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12876462860151722087,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14887821801874852671,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17967471489196302183,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12428327489525325219,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15395954548128560685,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6532401937876437300,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1235106489581249820,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"unit":" px","min":0.0,"is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"is_integer":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","unit":" px","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2594533001540454577,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"blank_assist":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":false,"mode":"Increment","unit":" px","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[314278016428495768,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15286091228862934481,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1167210731467447244,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11616089678400336955,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6749771744300551215,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17529660518597229229,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13594670583065022897,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","blank_assist":true,"min":0.0,"mode":"Increment"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"is_integer":true,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","mode":"Increment","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"mode":"Increment","unit":" px","is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5140869461760168364,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7659717355245331967,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17133591775058457007,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16614450796751955858,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14345191642063772510,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8595304668947966919,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4341772758799935306,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"unit":" px","is_integer":false,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4236845268521674740,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14079496619264986678,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14012583111791538162,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8230694129617719636,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1204243038352113866,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11659756061767599421,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3802858053991775169,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"range_max":100.0,"range_min":1.0,"blank_assist":true,"min":0.01,"is_integer":false,"mode":"Range"},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":true,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-312.5,-48.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,38.0,473.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[15177845878727456758,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17945736750161448391,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17207895962122263432,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3649809135741361946,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5326536612985524219,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"range_max":100.0,"min":0.01,"range_min":1.0,"is_integer":false,"blank_assist":true,"mode":"Range"},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":true,"min":0.0},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-312.5,-48.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,38.0,473.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[13014916927589286309,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.01,"range_max":100.0,"range_min":1.0,"mode":"Range","blank_assist":true},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"is_integer":true,"min":0.0},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-312.5,-48.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,38.0,473.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[431994205232245356,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,7]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5278509881589546420,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16767482995096345179,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18067513817508158001,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","min":2.0,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","min":0.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","blank_assist":true,"is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14209241002058525241,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[907841922684377912,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18190631752493248867,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15578929303912288394,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10918055532782314571,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18015048324114736039,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16732130236852371275,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"is_integer":false,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"blank_assist":true,"mode":"Increment","is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","blank_assist":true,"is_integer":false,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","min":0.0,"unit":" px","blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13352561089252322209,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14946189826912398678,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17364155187784942740,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10415872992231003638,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1689789805659535712,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14817659161913199655,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4493274523708782092,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13163272246010991228,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13368990606109678244,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18422317423856403288,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9371909264427723282,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16796171662855500935,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2959546142916532439,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1162381870526064378,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12496143061817048445,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16530658574540156160,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11553850607251055696,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6973438081601736688,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17064046832210629373,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3165571685352930240,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14831840560430171946,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10795820039540504703,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10086073308516686449,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[952330505278607301,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[13481022631108980683,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9698363115186534174,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9374264173303233490,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","blank_assist":true,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"blank_assist":true,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"min":0.0,"is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","is_integer":false,"unit":" px","min":0.0},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17207349373429328029,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7654665057468818389,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6282972142629473139,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6988349135757634271,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4479074488343511985,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7466034304713056391,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8814059393325469059,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5471152581000334146,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1378578509112405,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3827449344952693766,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"mode":"Increment","blank_assist":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7385465194555106679,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,211]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3670529450440935325,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15518174914032911052,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14778750092903591172,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15798070933198867970,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5185036609290210853,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7320676248579211727,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11666664915283969027,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4332145463108161926,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-31,292]}}},"network_metadata":null}}],[9782123335421401489,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16339345235172368839,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15446793500614592278,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10421722418968896452,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6672826052605647592,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14598755603287563819,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1984475088429379731,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4372998635946271235,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8413863870096329943,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5302437193964714993,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[542361600097372754,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4307303572241320716,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,319]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1659518581611333812,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4105711298139980122,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2175432926627256613,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,328]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4787732047489141819,{"persistent_metadata":{"reference":"Merge","display_name":"Tucked Arm","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":24}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4422453582814483232,{"persistent_metadata":{"reference":"Merge","display_name":"Hair and Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-7,4]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13261814586176172586,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3627710206997006419,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15637103575662751567,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[501401493219507773,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8644924780109919177,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"blank_assist":true,"min":0.0,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"mode":"Increment","blank_assist":true,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":0.0,"blank_assist":true,"unit":" px","is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9470742171134780193,{"persistent_metadata":{"reference":"Merge","display_name":"Dotted Skirt","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":81}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3686761601672683183,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"unit":" px","mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"is_integer":true,"min":2.0,"mode":"Increment"},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4572557574846980832,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7893851488963635918,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17147975601187022720,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1785173043494067496,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3226457726231232839,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12594527670567285670,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15126865253122550765,{"persistent_metadata":{"reference":"Merge","display_name":"Dotted Bodice","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":21}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6645255982686652881,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15827578515555598997,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10599660455959346550,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13045580349734858212,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"blank_assist":true,"range_min":1.0,"min":0.01,"is_integer":false,"mode":"Range","range_max":100.0},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","is_integer":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-312.5,-48.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,38.0,473.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[11632506522064533635,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1661691009086487874,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"blank_assist":true,"mode":"Increment","unit":" px","is_integer":false},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","blank_assist":true,"is_integer":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","blank_assist":true,"is_integer":false,"mode":"Increment"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","blank_assist":true,"min":0.0,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18207065424980079673,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"mode":"Increment","blank_assist":true,"min":2.0},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","unit":" px","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","min":0.0,"is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6416452251137958677,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2087303479944421366,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17494926338451345058,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5174744389209053970,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15498700602024283966,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2422139482859833437,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16290933138334939444,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17118107476414252025,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-144.5,-72.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,206.0,449.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4577174813962563383,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15949658764632267703,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"unit":" px","mode":"Increment","is_integer":false,"blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","min":2.0,"is_integer":true,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"mode":"Increment","is_integer":false,"blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"unit":" px","mode":"Increment","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2682920349304670808,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4784708315242877950,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10375238420217738812,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5213978458941436169,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"min":0.01,"is_integer":false,"range_max":100.0,"blank_assist":true,"mode":"Range","range_min":1.0},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":0.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-312.5,-48.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,38.0,473.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[5009664118231399060,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15492651270767932214,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16756940771483104467,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2660652185019504730,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"min":0.0,"is_integer":false,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"min":2.0,"mode":"Increment","blank_assist":true,"is_integer":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"unit":" px","mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"unit":" px","min":0.0,"mode":"Increment","is_integer":false},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7447657690776686262,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","blank_assist":true,"mode":"Increment","min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"is_integer":true,"min":2.0,"mode":"Increment","blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"unit":" px","min":0.0,"mode":"Increment","blank_assist":true,"is_integer":false},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"blank_assist":true,"mode":"Increment","min":0.0,"is_integer":false,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2440895173483452224,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14057307926677215422,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[581013017684525986,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9863310024364795214,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14029368390543839187,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16434255153991868080,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3636653585682494814,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4663768795652429571,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8934999452649011837,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,130]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16175421708184657649,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8697043784435445845,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14225285635863713990,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13014628586360765651,{"persistent_metadata":{"reference":"Merge","display_name":"Dotted Aura","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5555007473125503522,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18214377096178867498,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10619788176782820865,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15038739378867834454,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9847383247226990698,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8410534738018320047,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14675232891471617236,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3121275823460307102,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10133176481349663495,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16051539163551573193,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15857077552290328068,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[8766106989344197438,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3535178979443201645,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15303587427289959766,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12473080738469616517,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10336592647221792772,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1384427686127078856,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10860592954464951000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10190227675276560561,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1806828617441445250,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4453139144069993994,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9182448229950585507,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4350324834849900949,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9684857454501250999,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6867142265138950838,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11464423670065789907,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10253927692147706615,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2394762731964337494,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":true},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":true,"y":"H","x":"W"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-3,1]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17971411534648521628,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13035777574951374461,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11590691579869262546,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4909350123806022131,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17378885078543074499,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9778375740427894463,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8240895922641772563,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3406722917122601552,{"persistent_metadata":{"reference":"Circle","display_name":"Circle","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Primary","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Radius","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-38,208]}}},"network_metadata":null}}],[18279507457571359732,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[454416440369338250,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2698266912167150713,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12761901161949743155,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7525593029671097583,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1019037285881657884,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6292009934909381201,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,88]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14862049226133442027,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12531351117929704587,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11899713172487274471,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4078100635676202528,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15466714490303763249,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17815494794630739611,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[10792166025753022402,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1889157037801767612,{"persistent_metadata":{"reference":"Scatter Points","display_name":"Scatter Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"mode":"Range","range_max":100.0,"blank_assist":true,"is_integer":false,"min":0.01,"range_min":1.0},"widget_override":"number","input_name":"Separation Disk Diameter","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"mode":"Increment","min":0.0,"blank_assist":true},"widget_override":"number","input_name":"Seed","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Poisson-Disk Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[-312.5,-48.5],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,38.0,473.0],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[]],"selection_redo_history":[]}}}}],[8699675339613677057,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7450965328305122110,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[421715625023770179,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17891208858820401648,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10770443343193024138,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14285767317419627814,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1869448627329502330,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15815816861435910950,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4248321400839848160,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-17,124]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14982414026754548178,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16450742929146919960,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11479098559726891734,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3955326429435439190,{"persistent_metadata":{"reference":"Copy to Points","display_name":"Copy to Points","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Points","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Instance","input_description":"Artwork to be copied and placed at each point.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Min","input_description":"Minimum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Max","input_description":"Maximum range of randomized sizes given to each instance.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Bias","input_description":"Bias for the probability distribution of randomized sizes (0 is uniform, negatives favor more of small sizes, positives favor more of large sizes).\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Scale Seed","input_description":"Seed to determine unique variations on all the randomized instance sizes.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation","input_description":"Range of randomized angles given to each instance, in degrees ranging from furthest clockwise to counterclockwise.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Random Rotation Seed","input_description":"Seed to determine unique variations on all the randomized instance angles.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11573595155909211511,{"persistent_metadata":{"reference":"Sample Polyline","display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The shape to be resampled and converted into a polyline."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Spacing","input_description":"Use a point sampling density controlled by a distance between, or specific number of, points."}},{"persistent_metadata":{"input_data":{"is_integer":false,"mode":"Increment","unit":" px","blank_assist":true,"min":0.0},"widget_override":"number","input_name":"Separation","input_description":"Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."}},{"persistent_metadata":{"input_data":{"mode":"Increment","is_integer":true,"min":2.0,"blank_assist":true},"widget_override":"number","input_name":"Quantity","input_description":"Number of points to place along the path."}},{"persistent_metadata":{"input_data":{"is_integer":false,"min":0.0,"blank_assist":true,"mode":"Increment","unit":" px"},"widget_override":"number","input_name":"Start Offset","input_description":"Exclude some distance from the start of the path before the first instance."}},{"persistent_metadata":{"input_data":{"min":0.0,"is_integer":false,"mode":"Increment","blank_assist":true,"unit":" px"},"widget_override":"number","input_name":"Stop Offset","input_description":"Exclude some distance from the end of the path after the last instance."}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Adaptive Spacing","input_description":"Round 'Separation' to a nearby value that divides into the path length evenly."}}],"output_names":["Vector"],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Sample Polyline","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Subpath Segment Lengths","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,7]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Memoize","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[14,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13302269488061286120,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[709.0808337143742,-713.6328227404273],"tilt":0.0,"zoom":0.6328125,"flip":false},"node_graph_to_viewport":[0.6328125,0.0,0.0,0.6328125,799.0,70.00000000000006],"node_graph_top_right":[700.7999877929688,0.0]},"selection_undo_history":[[17426704671299246894],[2699408592782313690],[4493274523708782092],[14031411536409518176],[13263961817794116841],[835795066714655983],[11477846841203274509],[727544715487174952],[6480666310383891203],[15086626938904467381],[12994398686940961368],[15086626938904467381],[],[12994398686940961368],[],[5140869461760168364],[11677503666435782605],[776454851019809551],[],[10662978266497754900],[],[13201515093260842314],[],[3932608775253338292],[],[8090442493082590595],[],[17545135276965178247],[4332145463108161926],[],[4332145463108161926],[],[4332145463108161926],[],[11356586238302409958,10086073308516686449],[],[4332145463108161926],[],[3406722917122601552],[4332145463108161926],[],[4332145463108161926],[],[10086073308516686449],[17545135276965178247],[],[17078740291337047697],[3457800614598085282],[3457800614598085282,17426704671299246894],[3457800614598085282,17426704671299246894,2699408592782313690],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,15239301303367148581],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,15239301303367148581,13263961817794116841],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,15239301303367148581,13263961817794116841],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076,9531720291230511752],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076,9531720291230511752,12792838691218304039],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076,9531720291230511752,12792838691218304039,5102308641931177440],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076,9531720291230511752,12792838691218304039,5102308641931177440,14480644719732559657],[3457800614598085282,17426704671299246894,2699408592782313690,14031411536409518176,13263961817794116841,835795066714655983,11477846841203274509,727544715487174952,6480666310383891203,10550662778443296023,13185163654003144011,3559656994078944914,12747708470463124971,898580338082782932,17099718003896986529,1510915657479425828,770786980744949903,5742628441455317378,12579808169500774530,862014397356527450,13790235862723082076,9531720291230511752,12792838691218304039,5102308641931177440,14480644719732559657,3601587624047636241],[],[17078740291337047697],[3406722917122601552],[],[9470742171134780193],[14883504161508594099],[],[13163272246010991228],[],[4332145463108161926],[17078740291337047697],[],[],[17078740291337047697,3406722917122601552],[],[9470742171134780193],[13368990606109678244],[9470742171134780193],[14883504161508594099],[421715625023770179],[3670529450440935325],[4265165189651403984],[17064046832210629373],[4131094614457622424]],"selection_redo_history":[]}}},"collapsed":[4422453582814483233,4577638792388493936,3170924135668664008,4787732047489141820,12062649793560663567,5455777299776842372,9470742171134780194,15126865253122550766,13014628586360765652],"commit_hash":"8fa46ba63a69bb5fa18a49194cf112d963a2d43b","document_ptz":{"pan":[-512.5,-515.648496025349],"tilt":0.0,"zoom":1.0,"flip":false},"document_mode":"DesignMode","render_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":false,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file diff --git a/demo-artwork/valley-of-spires.graphite b/demo-artwork/valley-of-spires.graphite index 72bc45168..5f0bc5fe9 100644 --- a/demo-artwork/valley-of-spires.graphite +++ b/demo-artwork/valley-of-spires.graphite @@ -1 +1 @@ -{"network_interface":{"network":{"exports":[{"Node":{"node_id":16815500381887058038,"output_index":0,"lambda":false}}],"nodes":[[202,{"inputs":[{"Node":{"node_id":206,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[404,{"inputs":[{"Node":{"node_id":402,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[93,{"inputs":[{"Node":{"node_id":94,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[851.1666666666667,668.5377104806669]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[39.677869315599935,39.67786931560005]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[155,{"inputs":[{"Node":{"node_id":159,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.7529412,"green":0.34117648,"blue":0.2,"alpha":1.0}],[1.0,{"red":0.6431373,"green":0.31764707,"blue":0.21176471,"alpha":1.0}]],"gradient_type":"Linear","start":[0.9001916129448388,0.7881778212017586],"end":[0.8902470335613286,0.6662432828529555],"transform":[603.3437683597715,0.0,0.0,426.45833333333366,450.87499999999994,340.8749999999998]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.7529412,"green":0.34117648,"blue":0.2,"alpha":1.0}],[1.0,{"red":0.6431373,"green":0.31764707,"blue":0.21176471,"alpha":1.0}]],"gradient_type":"Linear","start":[0.9001916129448388,0.7881778212017586],"end":[0.8902470335613286,0.6662432828529555],"transform":[603.3437683597715,0.0,0.0,426.45833333333366,450.87499999999994,340.8749999999998]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[497,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.0,0.0]],[4,[0.0,1.0]],[2,[1.0,0.0]],[3,[1.0,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[3,3],[2,2]],"end_point":[[1,2],[4,1],[3,4],[2,3]],"handle_primary":[[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[1,0],[4,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[8861964493222160710,{"inputs":[{"Node":{"node_id":16894739051789815098,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":0.0390625}]],"gradient_type":"Radial","start":[0.49999999999999994,0.5000000000000009],"end":[0.9003149237651733,0.5000000000000009],"transform":[1153.5000000000016,0.0,0.0,116.99999999999352,390.5000000000018,782.9999999999995]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":0.0390625}]],"gradient_type":"Radial","start":[0.49999999999999994,0.5000000000000009],"end":[0.9003149237651733,0.5000000000000009],"transform":[1153.5000000000016,0.0,0.0,116.99999999999352,390.5000000000018,782.9999999999995]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[248,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"delta":[[6,[944.141561350963,527.7098765432099]],[12,[965.0432098765434,605.3395061728396]],[7,[986.8703703703704,552.6481481481483]],[14,[944.3024691358024,613.8333333333334]],[1,[866.5679012345681,572.641975308642]],[3,[884.6481481481485,571.7592592592594]],[13,[955.9567901234568,612.4506172839507]],[16,[922.574074074074,606.9197530864199]],[18,[884.845679012346,621.141975308642]],[19,[867.9970278920896,620.4835390946502]],[9,[1026.277777777778,628.0555555555557]],[20,[850.4753086419754,600.0720164609053]],[11,[991.9074074074076,607.667262767384]],[2,[890.3765432098768,558.3271604938273]],[4,[898.8703703703707,571.5617283950618]],[15,[935.0185185185186,608.3024691358025]],[17,[915.067901234568,618.7716049382716]],[5,[923.956790123457,545.6851851851852]],[8,[1025.882716049383,576.7015952852717]],[10,[999.8086419753088,626.6728395061729]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"start_point":[[11,11],[19,19],[3,3],[1,1],[9,9],[16,16],[7,7],[2,2],[8,8],[10,10],[5,5],[6,6],[13,13],[4,4],[18,18],[14,14],[15,15],[17,17],[20,20],[12,12]],"end_point":[[15,16],[9,10],[17,18],[20,1],[3,4],[14,15],[1,2],[2,3],[4,5],[10,11],[7,8],[6,7],[8,9],[19,20],[13,14],[12,13],[11,12],[18,19],[16,17],[5,6]],"handle_primary":[[6,[0.0,0.0]],[2,[0.0,0.0]],[9,[0.0,0.0]],[1,[0.0,0.0]],[20,[0.0,0.0]],[15,[0.0,0.0]],[10,[-2.96296296296282,-1.1851851851851052]],[5,[0.0,0.5925925925926094]],[11,[0.0,0.0]],[7,[22.254029366644772,13.337995427526266]],[13,[0.0,0.0]],[17,[0.0,0.0]],[4,[0.0,0.0]],[14,[0.0,0.0]],[3,[0.0,0.0]],[8,[0.0,0.0]],[18,[0.0,0.0]],[16,[0.0,0.0]],[12,[0.0,0.0]],[19,[-11.881115683584769,-0.11705532693190436]]],"handle_end":[[11,[18.567901234567785,4.543209876543301]],[16,[2.3703703703704377,-1.7777777777778283]],[20,[0.0,0.0]],[12,[2.7654320987655865,-2.7624450928566375]],[9,[2.962962962963047,1.1851851851851052]],[19,[0.0,0.0]],[1,[-10.271604938271707,4.543209876543187]],[18,[11.881115683584769,0.11705532693190436]],[4,[-7.703703703703809,15.604938271604851]],[8,[0.0,0.0]],[15,[5.135802469136024,0.9876543209877582]],[2,[0.5925925925926094,-3.555555555555543]],[10,[0.3950617283951487,3.117880051334623]],[13,[2.1728395061727497,0.39506172839503506]],[6,[-11.851851851851848,-16.036008230452808]],[14,[4.740740740740762,0.7901234567901838]],[7,[0.0,0.0]],[5,[0.0,0.0]],[3,[-8.69135802469134,0.39506172839503506]],[17,[20.5432098765433,0.1975308641974607]]],"stroke":[[6,0],[4,0],[17,0],[7,0],[19,0],[13,0],[1,0],[11,0],[18,0],[8,0],[20,0],[5,0],[14,0],[15,0],[12,0],[9,0],[3,0],[16,0],[2,0],[10,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":20}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[419,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,1.0]],[1,[0.0,0.0]],[3,[1.0,1.0]],[2,[1.0,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[3,3],[2,2]],"end_point":[[2,3],[4,1],[1,2],[3,4]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[1,0],[4,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[77,{"inputs":[{"Node":{"node_id":78,"output_index":0,"lambda":false}},{"Node":{"node_id":448,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[108,{"inputs":[{"Node":{"node_id":109,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[858.7905598373798,601.6041802310946]},"exposed":false}},{"Value":{"tagged_value":{"F64":1.2246469000000002e-16},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.1014123874504275,0.11427520552998474]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.3799770244301692e-16,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[450,{"inputs":[{"Node":{"node_id":451,"output_index":0,"lambda":false}},{"Node":{"node_id":467,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[310,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[5,[710.9477975918305,613.6358024691357]],[2,[734.9571457603006,587.5194584158918]],[3,[698.0912208504803,600.3792866941013]],[7,[779.7592592592597,612.6204267490609]],[1,[744.3996087994717,586.9732002235432]],[6,[729.3449931412895,610.3875171467763]],[4,[706.1680384087791,607.8415637860082]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[1,1],[7,7],[3,3],[2,2],[6,6],[5,5],[4,4]],"end_point":[[3,4],[7,1],[5,6],[2,3],[1,2],[6,7],[4,5]],"handle_primary":[[2,[0.0,0.0]],[5,[7.452522481329197,2.721536351166037]],[7,[0.0,0.0]],[6,[15.119646395366544,2.853223593964344]],[1,[0.0,0.0]],[4,[2.1947873799731497,4.691071467853249]],[3,[0.0,0.0]]],"handle_end":[[6,[0.0,0.0]],[4,null],[1,[0.0,0.0]],[7,[9.28638926992835,13.56378600823075]],[3,[-2.494608558449272,-5.331900091455282]],[5,null],[2,[6.496570644718986,-11.149519890260422]]],"stroke":[[7,0],[1,0],[3,0],[6,0],[4,0],[5,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[481,{"inputs":[{"Node":{"node_id":485,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.8980392,"green":0.67058825,"blue":0.28235295,"alpha":1.0}],[1.0,{"red":0.73333335,"green":0.3764706,"blue":0.2,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5563229660866629,0.005130077289715984],"end":[0.5563229660866629,0.9884201225302],"transform":[105.93178001350952,0.0,0.0,640.7349028554129,1148.0677179400443,125.71298042613309]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.8980392,"green":0.67058825,"blue":0.28235295,"alpha":1.0}],[1.0,{"red":0.73333335,"green":0.3764706,"blue":0.2,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5563229660866629,0.005130077289715984],"end":[0.5563229660866629,0.9884201225302],"transform":[105.93178001350952,0.0,0.0,640.7349028554129,1148.0677179400443,125.71298042613309]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[170,{"inputs":[{"Node":{"node_id":171,"output_index":0,"lambda":false}},{"Node":{"node_id":196,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4913361824430066698,{"inputs":[{"Node":{"node_id":11807598261442997948,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14080831508667499826,{"inputs":[{"Node":{"node_id":11377169273880889832,"output_index":0,"lambda":false}},{"Node":{"node_id":14113040319560793790,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[232,{"inputs":[{"Node":{"node_id":236,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[434,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[0.8076864692090735,-0.4339622641509434]],[1,[0.5926327057682128,-0.43396226415094336]],[3,[1.0069833844920426,0.9999999999999988]],[4,[0.4436233919998075,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1]],"end_point":[[3,4],[2,3],[4,1],[1,2]],"handle_primary":[[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[465,{"inputs":[{"Node":{"node_id":469,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.8784314,"green":0.63529414,"blue":0.24313726,"alpha":1.0}],[1.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.543973941368078,0.19174161896974656],"end":[0.373641330960254,0.5573628465419693],"transform":[302.3829616698968,-53.04285523745623,140.87168719958515,803.0713618290636,568.5525435223506,63.555059935554134]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.8784314,"green":0.63529414,"blue":0.24313726,"alpha":1.0}],[1.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.543973941368078,0.19174161896974656],"end":[0.373641330960254,0.5573628465419693],"transform":[302.3829616698968,-53.04285523745623,140.87168719958515,803.0713618290636,568.5525435223506,63.555059935554134]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7148230379224894975,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"delta":[[17,[448.3683127572017,617.6340115836006]],[10,[496.50000000000006,582.6234567901236]],[7,[495.90740740740733,567.882982777016]],[19,[468.05555555555594,550.6710486206383]],[8,[502.6234567901235,563.1154930650816]],[2,[497.8388203017833,534.5393613778391]],[20,[480.89506172839504,532.4323654930657]],[6,[490.17901234567904,556.0043819539711]],[9,[510.261316872428,573.2078189300412]],[13,[516.8017832647463,593.4437585733884]],[1,[506.7057613168725,531.9348803536052]],[16,[478.9197530864198,618.6875095259874]],[18,[438.2283950617284,585.5544307531777]],[11,[504.00617283950623,588.9444444444446]],[5,[500.4506172839507,547.5105547934772]],[15,[496.30246913580254,612.3006782502672]],[3,[488.5329218106997,551.6587029416252]],[12,[513.3888888888889,585.5544307531777]],[4,[500.77983539094663,544.0208428593207]],[14,[496.49999999999994,603.4117893613783]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"start_point":[[2,2],[8,8],[18,18],[6,6],[17,17],[3,3],[10,10],[20,20],[7,7],[11,11],[12,12],[5,5],[4,4],[1,1],[14,14],[19,19],[13,13],[9,9],[15,15],[16,16]],"end_point":[[7,8],[11,12],[19,20],[14,15],[18,19],[10,11],[9,10],[8,9],[4,5],[1,2],[13,14],[3,4],[15,16],[17,18],[6,7],[16,17],[2,3],[12,13],[20,1],[5,6]],"handle_primary":[[19,[0.0,0.0]],[16,[0.0,0.0]],[5,[-6.737997256515712,3.1824417009599983]],[2,[-7.188100137174104,2.6138545953361927]],[12,[0.0,0.0]],[20,[7.46503467504715,-4.02781143068205]],[8,[0.0,0.0]],[10,[0.0,0.0]],[11,[0.0,0.0]],[4,null],[3,[4.565157750342848,-4.301783264746064]],[17,[0.0,0.0]],[9,[0.0,0.0]],[14,[0.0,0.0]],[6,[0.0,0.0]],[1,[0.0,0.0]],[18,[0.0,0.0]],[7,[0.0,0.0]],[15,[0.0,0.0]],[13,[0.0,0.0]]],"handle_end":[[11,[-3.851851851851848,0.7581344568814075]],[1,[3.4386245260820374,-1.250408918575317]],[3,null],[14,[-0.7901234567900701,-4.938271604938336]],[19,[-3.394604481024089,3.2873037646699004]],[4,null],[5,[0.0,0.0]],[17,[0.0,0.0]],[9,[6.716049382716108,-8.49382716049422]],[12,[-0.39506172839503506,-1.975308641975289]],[2,[0.27087722942241044,-5.120145445603839]],[10,[-2.765432098765416,-3.555555555555543]],[15,[0.0,0.0]],[8,[-1.7777777777777717,-5.728395061728406]],[6,[-2.508333333333439,-2.0902777777778283]],[13,[0.0,0.0]],[18,[0.0,0.0]],[16,[0.0,0.0]],[7,[-3.6872427983540206,1.4485596707820605]],[20,[0.0,0.0]]],"stroke":[[7,0],[11,0],[12,0],[15,0],[1,0],[6,0],[8,0],[2,0],[19,0],[18,0],[20,0],[5,0],[16,0],[13,0],[10,0],[3,0],[9,0],[17,0],[14,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":20}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[325,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9],"remove":[],"delta":[[4,[695.8333333333333,239.16666666666663]],[1,[744.0,592.0]],[9,[677.1666666666666,609.1666666666666]],[5,[660.5,187.83333333333331]],[6,[619.8333333333333,207.83333333333331]],[2,[733.1666666666666,489.16666666666663]],[8,[631.8333333333333,608.5]],[3,[708.5,335.16666666666663]],[7,[619.8333333333333,577.1666666666666]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9],"remove":[],"start_point":[[7,7],[6,6],[5,5],[8,8],[3,3],[4,4],[1,1],[9,9],[2,2]],"end_point":[[4,5],[2,3],[6,7],[7,8],[5,6],[1,2],[3,4],[9,1],[8,9]],"handle_primary":[[5,[-36.0,-6.666666666666686]],[3,[-6.6666666666667425,-57.333333333333314]],[2,[-4.666666666666629,-50.666666666666686]],[4,[-3.3333333333332575,-21.33333333333331]],[1,[0.0,0.0]],[8,[12.666666666666742,4.666666666666629]],[9,[18.66666666666663,-5.3333333333332575]],[6,[0.0,16.666666666666686]],[7,[0.0,12.666666666666742]]],"handle_end":[[2,[6.6666666666667425,57.333333333333314]],[6,[0.0,-12.666666666666742]],[5,[0.0,-16.666666666666686]],[7,[-12.666666666666742,-4.666666666666629]],[4,[36.0,6.666666666666657]],[3,[3.3333333333332575,21.33333333333331]],[9,[0.0,0.0]],[8,[-18.66666666666663,5.3333333333332575]],[1,[4.666666666666629,50.66666666666663]]],"stroke":[[8,0],[4,0],[6,0],[2,0],[1,0],[7,0],[9,0],[3,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":9}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[496,{"inputs":[{"Node":{"node_id":497,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1024.0,600.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11377169273880889832,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14433811491576609500,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11891167879168294182,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[6,[119.98422496570645,609.4218106995885]],[5,[118.93072702331962,598.7990397805213]],[3,[148.91152263374485,614.1625514403293]],[4,[126.900438957476,611.0020576131687]],[1,[112.52194787379976,598.7990397805213]],[2,[104.00617283950618,624.6097393689986]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[5,5],[2,2],[1,1],[3,3],[6,6],[4,4]],"end_point":[[4,5],[1,2],[5,6],[2,3],[3,4],[6,1]],"handle_primary":[[3,null],[1,[-2.370370370370395,22.25514403292175]],[4,[-2.058260034882977,-0.6051267923739942]],[6,[-4.477366255144005,-1.843621399176868]],[5,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[6,[0.0,0.0]],[5,[0.7023319615912413,-1.9314128943758533]],[3,null],[4,[0.0,0.0]],[2,[-21.11385459533605,1.053497942386798]],[1,[0.0,0.0]]],"stroke":[[5,0],[3,0],[6,0],[1,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[418,{"inputs":[{"Node":{"node_id":419,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[83.16666666666677,614.179527199694]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[294.3945373546583,138.32047280030588]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[76,{"inputs":[{"Node":{"node_id":77,"output_index":0,"lambda":false}},{"Node":{"node_id":16164610528699022118,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[449,{"inputs":[{"Node":{"node_id":450,"output_index":0,"lambda":false}},{"Node":{"node_id":6015109908395573189,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14113040319560793790,{"inputs":[{"Node":{"node_id":9603838021022368374,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[138,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[116.38477366255144,723.5946502057614]],[3,[90.17901234567904,708.7139917695472]],[2,[105.84979423868312,685.0102880658435]],[1,[126.55144032921808,714.7983539094649]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[1,1],[4,4],[2,2]],"end_point":[[4,1],[3,4],[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[-2.4237705319430347,10.543401813951732]]],"handle_end":[[4,[3.6604938271605647,11.166666666666742]],[1,[16.460905349794245,13.695473251028716]],[3,[0.0,0.0]],[2,[2.6337448559670804,-11.456790123456472]]],"stroke":[[2,0],[4,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[169,{"inputs":[{"Node":{"node_id":170,"output_index":0,"lambda":false}},{"Node":{"node_id":190,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[200,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[7,[988.9444444444443,571.9567901234568]],[10,[1010.492379210486,553.0791800030486]],[9,[1001.2407407407406,568.2037037037037]],[6,[988.3518518518518,565.8333333333333]],[5,[990.3271604938273,558.7222222222222]],[1,[1004.392496062592,536.8475080018289]],[8,[994.0802469135804,561.8388203017832]],[4,[972.0555555555557,547.0185185185185]],[3,[974.574074074074,539.3148148148148]],[2,[993.9814814814814,530.7222222222222]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[7,7],[10,10],[3,3],[9,9],[1,1],[2,2],[5,5],[8,8],[6,6],[4,4]],"end_point":[[6,7],[4,5],[2,3],[7,8],[5,6],[3,4],[1,2],[9,10],[8,9],[10,1]],"handle_primary":[[7,[0.0,0.0]],[5,[1.1368683772161605e-13,0.0]],[10,[0.0,0.0]],[9,[0.0,0.0]],[1,[0.0,0.0]],[6,[0.0,0.0]],[4,[5.818749999999909,2.0456767733078323]],[2,[0.0,0.0]],[3,[0.0,0.0]],[8,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[9,[0.0,0.0]],[7,[0.0,0.0]],[6,[0.0,0.0]],[3,[5.171433893884796,-5.185320665887616]],[8,[1.1368683772161605e-13,0.0]],[5,[0.0,0.0]],[10,[2.600823045267589,7.538372631948732]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[10,0],[7,0],[8,0],[1,0],[3,0],[5,0],[9,0],[2,0],[4,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6015109908395573189,{"inputs":[{"Node":{"node_id":459,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-8.0,2.6666666666000083]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[402,{"inputs":[{"Node":{"node_id":406,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15552693212536925398,{"inputs":[{"Node":{"node_id":1598976462838094167,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.328125,"green":0.19633627,"blue":0.17047119,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3458831403130609,0.8154173283216788],"end":[0.29832402234636923,0.9999999999999992],"transform":[596.6666666666671,0.0,0.0,669.6474899687091,706.9999999999995,7.352510031290876]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.328125,"green":0.19633627,"blue":0.17047119,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3458831403130609,0.8154173283216788],"end":[0.29832402234636923,0.9999999999999992],"transform":[596.6666666666671,0.0,0.0,669.6474899687091,706.9999999999995,7.352510031290876]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[262,{"inputs":[{"Node":{"node_id":266,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[433,{"inputs":[{"Node":{"node_id":434,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[628.6154039265571,697.6163522012579]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[206.6666666666667,70.66666666666666]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[122,{"inputs":[{"Node":{"node_id":126,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.5,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.8261898755429384,0.6803505808618764],"end":[0.9730393010117852,0.6150128281109604],"transform":[674.1599409321643,0.0,0.0,374.9746351607879,311.0158823052205,208.88578915988776]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.5,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.8261898755429384,0.6803505808618764],"end":[0.9730393010117852,0.6150128281109604],"transform":[674.1599409321643,0.0,0.0,374.9746351607879,311.0158823052205,208.88578915988776]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7135480377162524224,{"inputs":[{"Node":{"node_id":487,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[28.82327697714288,-49.808276940773226]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.057504143999955744},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[184,{"inputs":[{"Node":{"node_id":188,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[75,{"inputs":[{"Node":{"node_id":76,"output_index":0,"lambda":false}},{"Node":{"node_id":161,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[277,{"inputs":[{"Node":{"node_id":1453710883947581217,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.92156863,"green":0.7294118,"blue":0.2784314,"alpha":1.0}],[1.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}]],"gradient_type":"Linear","start":[1.0246769250512615,0.027819435424882025],"end":[0.2667933279762451,0.9665428076110212],"transform":[152.18301372607758,-26.46547846507388,122.86581252135512,706.5086564778592,1104.6435199127652,59.354620942005326]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.92156863,"green":0.7294118,"blue":0.2784314,"alpha":1.0}],[1.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}]],"gradient_type":"Linear","start":[1.0246769250512615,0.027819435424882025],"end":[0.2667933279762451,0.9665428076110212],"transform":[152.18301372607758,-26.46547846507388,122.86581252135512,706.5086564778592,1104.6435199127652,59.354620942005326]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[448,{"inputs":[{"Node":{"node_id":449,"output_index":0,"lambda":false}},{"Node":{"node_id":455,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11155094820673141470,{"inputs":[{"Node":{"node_id":97478832511923699,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.08732233199581252,0.5212000945774993],"end":[0.9287098983518448,0.5070261975055625],"transform":[139.824941251317,-21.014379437271643,45.64496496886203,416.4689172758892,1005.0,432.99999999999955]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.08732233199581252,0.5212000945774993],"end":[0.9287098983518448,0.5070261975055625],"transform":[139.824941251317,-21.014379437271643,45.64496496886203,416.4689172758892,1005.0,432.99999999999955]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17257434333682934071,{"inputs":[{"Node":{"node_id":13606781735926093266,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[168,{"inputs":[{"Node":{"node_id":169,"output_index":0,"lambda":false}},{"Node":{"node_id":184,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[230,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1.134036317002156,1.0722882682186752]],[4,[0.2700473236113544,1.0652669412541609]],[2,[0.935534758874228,0.06746859421299994]],[1,[-0.03624142718978522,-0.003682959682299257]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[1,1],[4,4]],"end_point":[[4,1],[3,4],[2,3],[1,2]],"handle_primary":[[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[90,{"inputs":[{"Node":{"node_id":93,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.5999119243817099,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.3201759714645238,0.5902044022091868],"end":[1.025282605251574,0.18308301136073535],"transform":[138.98607005532313,0.0,0.0,138.98607005532352,1193.5000000000005,570.5540117570772]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.5999119243817099,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.3201759714645238,0.5902044022091868],"end":[1.025282605251574,0.18308301136073535],"transform":[138.98607005532313,0.0,0.0,138.98607005532352,1193.5000000000005,570.5540117570772]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[463,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[129.38888888888889,628.0555555555557]],[3,[80.05555555555559,484.94444444444446]],[2,[-4.833333333333332,345.83333333333326]],[1,[-4.833333333333348,600.0555555555555]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[2,2],[1,1],[4,4]],"end_point":[[3,4],[2,3],[4,1],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[32.038317168599576,69.73045501401077]]],"handle_end":[[2,[-45.33333333333338,-98.66666666666669]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[1,0],[3,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[292,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":312,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17414691604179185270,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[530.2777777777771,564.9115226337452]],[3,[539.3641975308641,608.7633744855966]],[4,[547.6604938271604,606.7880658436213]],[1,[546.1069958847736,566.7818930041152]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[3,3],[2,2]],"end_point":[[1,2],[3,4],[4,1],[2,3]],"handle_primary":[[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[2,0],[3,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[323,{"inputs":[{"Node":{"node_id":321,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[214,{"inputs":[{"Node":{"node_id":218,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[6272196533192700024,{"inputs":[{"Node":{"node_id":481,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[28.815503095243457,-49.74366671015599]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.057504143999955744},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[74,{"inputs":[{"Node":{"node_id":75,"output_index":0,"lambda":false}},{"Node":{"node_id":81,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[105,{"inputs":[{"Node":{"node_id":108,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.7721675713724807,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.401555786122616,0.773953065673463],"end":[0.898982212168407,0.4370729973098963],"transform":[490.52480371748175,6.007196307749977e-14,0.0,325.3699488483585,982.0269268305848,323.7895812222803]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.7721675713724807,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.401555786122616,0.773953065673463],"end":[0.898982212168407,0.4370729973098963],"transform":[490.52480371748175,6.007196307749977e-14,0.0,325.3699488483585,982.0269268305848,323.7895812222803]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[17173383864410319040,{"inputs":[{"Node":{"node_id":15277819403265847073,"output_index":0,"lambda":false}},{"Node":{"node_id":15552693212536925398,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[478,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7135480377162524224,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1635416892097245588,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":11472292186872186521,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6926019345498826421,{"inputs":[{"Node":{"node_id":989999757220954936,"output_index":0,"lambda":false}},{"Node":{"node_id":17020523203516467057,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17911294938421300842,{"inputs":[{"Node":{"node_id":17414691604179185270,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[400,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[4,[487.3148148148147,333.24074074074076]],[9,[378.57407407407413,324.0555555555556]],[1,[531.0946502057612,568.230452674897]],[8,[381.7345679012346,268.5493827160494]],[5,[482.47530864197535,316.35185185185185]],[3,[499.1666666666666,380.94444444444446]],[11,[378.8703703703703,545.3888888888889]],[6,[457.9814814814815,279.4135802469136]],[2,[513.0925925925925,455.6111111111111]],[10,[378.8703703703703,472.7962962962963]],[12,[399.3148148148148,564.0555555555555]],[7,[411.7592592592593,261.83333333333337]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"start_point":[[11,11],[6,6],[3,3],[4,4],[10,10],[9,9],[5,5],[1,1],[12,12],[8,8],[2,2],[7,7]],"end_point":[[10,11],[4,5],[5,6],[9,10],[8,9],[3,4],[6,7],[1,2],[12,1],[7,8],[2,3],[11,12]],"handle_primary":[[4,[0.0,0.0]],[3,[-1.7777777777777717,-12.444444444444455]],[5,[-2.1728395061728065,-7.703703703703695]],[1,[0.0,0.0]],[11,[0.0,6.518518518518476]],[8,[-6.716049382716051,13.62962962962962]],[7,[-5.925925925925924,-0.9876543209876444]],[12,[22.22222222222223,-1.1851851851852189]],[10,[-0.8888888888888573,38.81481481481478]],[2,[-6.51851851851859,-35.55555555555554]],[9,[0.1975308641974607,16.395061728395035]],[6,[-20.345679012345727,-8.691358024691397]]],"handle_end":[[11,[-22.22222222222223,1.1851851851852189]],[9,[0.8888888888888573,-38.81481481481478]],[10,[0.0,-6.518518518518476]],[2,[1.7777777777777717,12.444444444444455]],[12,[-37.99794238683137,-21.306584362139915]],[5,[20.345679012345784,8.691358024691397]],[8,[-0.1975308641974607,-16.395061728395035]],[6,[5.925925925925924,0.9876543209876444]],[7,[6.716049382716051,-13.62962962962962]],[4,[2.1728395061728065,7.703703703703695]],[1,[6.51851851851859,35.55555555555554]],[3,[8.888888888888971,23.407407407407447]]],"stroke":[[11,0],[10,0],[3,0],[7,0],[12,0],[6,0],[8,0],[5,0],[9,0],[1,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":12}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[229,{"inputs":[{"Node":{"node_id":227,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[829.8099807176391,565.8945401302792]},"exposed":false}},{"Value":{"tagged_value":{"F64":-1.958532},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[3.920156284886552,12.362329004080864]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.12623993859136304,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4454263454059119441,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1.0,0.5]],[3,[0.5,1.0]],[4,[0.0,0.5]],[1,[0.5,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[2,2],[1,1]],"end_point":[[4,1],[1,2],[3,4],[2,3]],"handle_primary":[[1,[0.27589238888950707,0.0]],[4,[0.0,-0.275892388889507]],[3,[-0.275892388889507,0.0]],[2,[0.0,0.27589238888950707]]],"handle_end":[[4,[-0.275892388889507,0.0]],[1,[0.0,-0.275892388889507]],[3,[0.0,0.27589238888950707]],[2,[0.27589238888950707,0.0]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[260,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[3,[1.1461889241405476,1.0977967891967286]],[2,[0.8103689541744266,-0.2611110184526325]],[4,[0.4707515606101555,1.0016674771193048]],[5,[0.05417500861004592,0.8211321210533473]],[1,[-0.06772020100134477,-0.27125764892979654]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[1,1],[3,3],[2,2],[5,5],[4,4]],"end_point":[[4,5],[5,1],[2,3],[1,2],[3,4]],"handle_primary":[[2,[0.0,0.0]],[4,[-0.4165765520001096,-0.1805353560659575]],[3,[-2.220446049250313e-16,-2.220446049250313e-16]],[1,[0.0,0.0]],[5,[0.0,0.0]]],"handle_end":[[3,[0.2875939062231115,0.06333186265853907]],[5,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,null]],"stroke":[[4,0],[1,0],[5,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[120,{"inputs":[{"Node":{"node_id":1635416892097245588,"output_index":0,"lambda":false}},{"Node":{"node_id":140,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10486443711686704000,{"inputs":[{"Node":{"node_id":5714505144727602368,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.15803798551484238,0.5113172122965266],"end":[0.8867475285247997,0.49951059174236745],"transform":[86.14721272187913,-121.25388422552253,404.54387368785456,312.49837227690176,602.5352222980036,467.4253353064524]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.15803798551484238,0.5113172122965266],"end":[0.8867475285247997,0.49951059174236745],"transform":[86.14721272187913,-121.25388422552253,404.54387368785456,312.49837227690176,602.5352222980036,467.4253353064524]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[291,{"inputs":[{"Node":{"node_id":292,"output_index":0,"lambda":false}},{"Node":{"node_id":306,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[493,{"inputs":[{"Node":{"node_id":496,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.16152954,"green":0.5000886,"blue":0.5234375,"alpha":1.0}],[0.33108336235841895,{"red":0.2509804,"green":0.54509807,"blue":0.5176471,"alpha":1.0}],[0.6158954287284122,{"red":0.48235294,"green":0.5568628,"blue":0.4,"alpha":1.0}],[1.0,{"red":0.73333335,"green":0.49411765,"blue":0.23137255,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5224609375,-0.000170829498767594],"end":[0.5224609375,0.9116247106204544],"transform":[1024.0,0.0,0.0,595.075070611153,559.0,78.92492938884703]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.16152954,"green":0.5000886,"blue":0.5234375,"alpha":1.0}],[0.33108336235841895,{"red":0.2509804,"green":0.54509807,"blue":0.5176471,"alpha":1.0}],[0.6158954287284122,{"red":0.48235294,"green":0.5568628,"blue":0.4,"alpha":1.0}],[1.0,{"red":0.73333335,"green":0.49411765,"blue":0.23137255,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5224609375,-0.000170829498767594],"end":[0.5224609375,0.9116247106204544],"transform":[1024.0,0.0,0.0,595.075070611153,559.0,78.92492938884703]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11807598261442997948,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[527.0733882030179,547.0898491083676]],[6,[530.2777777777774,564.9115226337451]],[4,[495.38065843621376,614.5137174211251]],[3,[481.882716049383,533.8333333333337]],[2,[500.121399176955,531.6385459533608]],[5,[541.9979423868313,611.7921810699589]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[1,1],[6,6],[5,5],[4,4],[2,2]],"end_point":[[4,5],[5,6],[3,4],[2,3],[1,2],[6,1]],"handle_primary":[[3,[0.0,0.0]],[2,[5.684341886080804e-14,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]]],"handle_end":[[6,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]],[1,[16.644617182340255,-0.4357059391355733]]],"stroke":[[4,0],[6,0],[3,0],[2,0],[1,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[182,{"inputs":[{"Node":{"node_id":12768614558324028960,"output_index":0,"lambda":false}},{"Node":{"node_id":268,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3930114406985796561,{"inputs":[{"Node":{"node_id":4454263454059119441,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":50.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[12875520257830460085,{"inputs":[{"Node":{"node_id":11891167879168294182,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[9778003574990260202,{"inputs":[{"Node":{"node_id":6926019345498826421,"output_index":0,"lambda":false}},{"Node":{"node_id":5364427239360309137,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[244,{"inputs":[{"Node":{"node_id":248,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[415,{"inputs":[{"Node":{"node_id":418,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":1.0}],[0.5,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":0.80859375}],[1.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":0.0}]],"gradient_type":"Radial","start":[0.30473369160482133,-0.27613184386946],"end":[0.66690549049424,0.16136781742013184],"transform":[294.3945373546583,0.0,0.0,138.32047280030588,578.6666666666667,646.679527199694]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":1.0}],[0.5,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":0.80859375}],[1.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":0.0}]],"gradient_type":"Radial","start":[0.30473369160482133,-0.27613184386946],"end":[0.66690549049424,0.16136781742013184],"transform":[294.3945373546583,0.0,0.0,138.32047280030588,578.6666666666667,646.679527199694]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[275,{"inputs":[{"Node":{"node_id":11427960919145580782,"output_index":0,"lambda":false}},{"Node":{"node_id":283,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[446,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1.0,0.0]],[3,[1.0,1.0]],[4,[0.0,1.0]],[1,[0.0,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[2,2],[1,1]],"end_point":[[1,2],[4,1],[2,3],[3,4]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[2,0],[1,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[477,{"inputs":[{"Node":{"node_id":478,"output_index":0,"lambda":false}},{"Node":{"node_id":6272196533192700024,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[306,{"inputs":[{"Node":{"node_id":310,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[166,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":393,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11472292186872186521,{"inputs":[{"Node":{"node_id":4452902364641883403,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-1367.319046874664,107.29818643577867]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[4.24444444444444,0.8618453375356869]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[88,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":96,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[259,{"inputs":[{"Node":{"node_id":257,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[894.1788584769913,562.0196920444174]},"exposed":false}},{"Value":{"tagged_value":{"F64":-2.3255084},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[15.813534861768243,49.86845076365074]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.12623993859136165,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[430,{"inputs":[{"Node":{"node_id":433,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.71875,"green":0.37165833,"blue":0.20214844,"alpha":1.0}],[0.09210526315789476,{"red":0.7254902,"green":0.41960785,"blue":0.2,"alpha":1.0}],[1.0,{"red":0.79607844,"green":0.49411765,"blue":0.22745098,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0],"transform":[261.96239650888936,0.0,0.0,227.99999999999997,1386.0376034911103,614.0]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.71875,"green":0.37165833,"blue":0.20214844,"alpha":1.0}],[0.09210526315789476,{"red":0.7254902,"green":0.41960785,"blue":0.2,"alpha":1.0}],[1.0,{"red":0.79607844,"green":0.49411765,"blue":0.22745098,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0],"transform":[261.96239650888936,0.0,0.0,227.99999999999997,1386.0376034911103,614.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[119,{"inputs":[{"Node":{"node_id":120,"output_index":0,"lambda":false}},{"Node":{"node_id":134,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[290,{"inputs":[{"Node":{"node_id":291,"output_index":0,"lambda":false}},{"Node":{"node_id":300,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[321,{"inputs":[{"Node":{"node_id":325,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.9254902,"green":0.7176471,"blue":0.28627452,"alpha":1.0}],[1.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6317852697063873,0.02415325870852081],"end":[0.05910622380623476,0.9861828395407052],"transform":[279.388605442177,0.0,0.0,960.4694267308416,951.4863945578228,120.80153345454534]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.9254902,"green":0.7176471,"blue":0.28627452,"alpha":1.0}],[1.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6317852697063873,0.02415325870852081],"end":[0.05910622380623476,0.9861828395407052],"transform":[279.388605442177,0.0,0.0,960.4694267308416,951.4863945578228,120.80153345454534]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5364427239360309137,{"inputs":[{"Node":{"node_id":12325841371509826180,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[181,{"inputs":[{"Node":{"node_id":182,"output_index":0,"lambda":false}},{"Node":{"node_id":262,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14335659566300901430,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14579754335592291854,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[212,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[8,[965.6358024691358,465.1913580246914]],[6,[990.3271604938273,526.5246913580247]],[3,[925.6111111111112,527.7098765432099]],[5,[977.4876543209878,545.4876543209878]],[7,[984.9112747301664,495.90740740740745]],[1,[957.8271604938273,462.1234567901235]],[4,[922.2777777777778,549.4629629629628]],[2,[948.746913580247,472.10493827160496]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[6,6],[7,7],[4,4],[2,2],[8,8],[5,5],[1,1],[3,3]],"end_point":[[4,5],[1,2],[2,3],[6,7],[8,1],[7,8],[5,6],[3,4]],"handle_primary":[[6,[0.0,0.0]],[8,[0.0,0.0]],[2,[-6.123456790123441,10.962962962962932]],[4,[0.0,0.0]],[7,[0.0,0.0]],[1,[0.0,0.0]],[3,[-2.469135802469168,9.975308641975287]],[5,[0.0,0.0]]],"handle_end":[[6,[0.0,0.0]],[3,[0.0,0.0]],[1,[6.123456790123441,-10.96296296296299]],[2,[2.469135802468827,-9.975308641975287]],[7,[7.407407407407391,6.814814814814838]],[8,[0.0,0.0]],[5,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[1,0],[8,0],[6,0],[5,0],[4,0],[3,0],[2,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14433811491576609500,{"inputs":[{"Node":{"node_id":9570557034533539493,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[274,{"inputs":[{"Node":{"node_id":275,"output_index":0,"lambda":false}},{"Node":{"node_id":277,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[445,{"inputs":[{"Node":{"node_id":446,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[83.1666666666668,614.1795271996941]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[941.3333333333331,154.32047280030588]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[103,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":111,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[134,{"inputs":[{"Node":{"node_id":138,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[165,{"inputs":[{"Node":{"node_id":166,"output_index":0,"lambda":false}},{"Node":{"node_id":16821952675128396603,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[10278740841813346388,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[5,[710.9477975918305,613.6358024691357]],[3,[698.0912208504803,600.3792866941013]],[7,[779.7592592592597,612.6204267490609]],[4,[706.1680384087791,607.8415637860082]],[1,[744.3996087994717,586.9732002235432]],[6,[729.3449931412895,610.3875171467763]],[2,[734.9571457603006,587.5194584158918]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[4,4],[2,2],[3,3],[5,5],[1,1],[6,6],[7,7]],"end_point":[[3,4],[7,1],[6,7],[5,6],[1,2],[2,3],[4,5]],"handle_primary":[[1,[0.0,0.0]],[6,[15.119646395366544,2.853223593964344]],[7,[0.0,0.0]],[5,[7.452522481329197,2.721536351166037]],[2,[0.0,0.0]],[4,[2.1947873799731497,4.691071467853249]],[3,[0.0,0.0]]],"handle_end":[[3,[-2.494608558449272,-5.331900091455282]],[6,[0.0,0.0]],[2,[6.496570644718986,-11.149519890260422]],[4,null],[7,[9.28638926992835,13.56378600823075]],[5,null],[1,[0.0,0.0]]],"stroke":[[2,0],[3,0],[6,0],[1,0],[5,0],[4,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[196,{"inputs":[{"Node":{"node_id":200,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[398,{"inputs":[{"Node":{"node_id":396,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[227,{"inputs":[{"Node":{"node_id":230,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[87,{"inputs":[{"Node":{"node_id":88,"output_index":0,"lambda":false}},{"Node":{"node_id":90,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[118,{"inputs":[{"Node":{"node_id":119,"output_index":0,"lambda":false}},{"Node":{"node_id":128,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[491,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[903.3333333333331,336.44444444444446]],[3,[858.2777777777777,377.8333333333333]],[4,[851.3888888888889,542.2777777777777]],[6,[908.5000000000005,581.0432098765432]],[2,[867.3888888888889,344.05555555555554]],[5,[876.9444444444443,582.1008216600221]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[4,4],[2,2],[1,1],[3,3],[6,6],[5,5]],"end_point":[[6,1],[2,3],[1,2],[4,5],[3,4],[5,6]],"handle_primary":[[5,[0.0,0.0]],[3,[-0.4444444444444571,14.444444444444455]],[4,[-2.888888888888914,28.66666666666663]],[1,[0.0,0.0]],[6,[0.0,0.0]],[2,[-9.555555555555657,12.444444444444455]]],"handle_end":[[6,[0.16666666666685614,-0.2777777777777146]],[1,[9.555555555555657,-12.444444444444455]],[4,[0.0,0.0]],[2,[0.4444444444444571,-14.444444444444455]],[5,[0.0,0.0]],[3,[2.888888888888914,-28.66666666666663]]],"stroke":[[5,0],[3,0],[6,0],[4,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[180,{"inputs":[{"Node":{"node_id":181,"output_index":0,"lambda":false}},{"Node":{"node_id":256,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11345069121502219134,{"inputs":[{"Node":{"node_id":12068777759187203228,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[413,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":436,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[242,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[842.2716049382715,561.8070416095107]],[5,[837.913808870599,583.4355281207133]],[3,[819.0679012345677,520.2695473251028]],[2,[821.8187014174667,518.4112940100595]],[4,[812.5713305898489,549.7821216278006]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[3,3],[4,4],[5,5],[2,2],[1,1]],"end_point":[[3,4],[5,1],[2,3],[4,5],[1,2]],"handle_primary":[[3,[-1.4046639231823974,2.1801554641060648]],[5,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[5,[0.0,0.0]],[2,[1.4046639231823974,-2.1801554641060648]],[1,[10.88614540466392,16.621856424325642]],[3,[0.0,0.0]]],"stroke":[[1,0],[4,0],[3,0],[2,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[102,{"inputs":[{"Node":{"node_id":103,"output_index":0,"lambda":false}},{"Node":{"node_id":105,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[475,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[4,[85.15294924554185,45.49314128943759]],[1,[22.827133919383556,312.5]],[6,[102.27777777777776,528.0555555555553]],[5,[172.5,512.0555555555555]],[3,[81.20964791952444,29.23708276177412]],[2,[46.49999999999994,177.5]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[4,4],[1,1],[2,2],[5,5],[6,6]],"end_point":[[3,4],[5,6],[4,5],[2,3],[6,1],[1,2]],"handle_primary":[[2,[15.777777777777828,-79.0]],[5,[0.0,0.0]],[1,[0.0,0.0]],[6,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[1,[-14.820678206547353,74.20776200602205]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[5,[0.0,0.0]],[6,[0.0,0.0]]],"stroke":[[6,0],[5,0],[1,0],[4,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[304,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[4,[699.4958847736627,594.497256515775]],[7,[702.5246913580245,600.8931773149878]],[1,[645.3333333333333,614.013717421125]],[8,[708.7139917695473,601.783950617284]],[10,[712.0500685871053,614.4420508944315]],[9,[713.2108672458469,610.5533455265964]],[6,[717.5809327846364,593.2681755829904]],[3,[680.2695473251027,600.730452674897]],[2,[658.574074074074,609.6851851851851]],[5,[744.3996087994716,586.9732002235431]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[6,6],[10,10],[8,8],[7,7],[3,3],[5,5],[1,1],[9,9],[2,2],[4,4]],"end_point":[[7,8],[6,7],[10,1],[1,2],[3,4],[8,9],[2,3],[9,10],[4,5],[5,6]],"handle_primary":[[5,[0.0,0.0]],[2,[4.740740740740762,-4.148148148148152]],[6,[-10.886145404663694,2.8971193415636662]],[10,[-58.35223289132739,3.851425709744945]],[7,[0.0,0.0]],[3,[7.374485596707928,-0.92181069958815]],[1,[0.0,0.0]],[8,[0.0,0.0]],[4,[4.444444444444002,-5.662551440328798]],[9,[0.0,0.0]]],"handle_end":[[6,[0.0,0.0]],[8,[-2.5361987501905787,-3.706752019509281]],[9,[-0.08779149519853036,-2.2109123484780184]],[7,[-2.89711934156378,-1.975308641975289]],[4,[-5.794238683127446,-2.0192043895747247]],[10,null],[5,[10.516302710276136,-2.79869346321857]],[2,[-6.174173455107166,0.7717716818881399]],[3,[-1.6866098186769705,2.1488658430550913]],[1,[-4.740740740740762,4.148148148148152]]],"stroke":[[4,0],[10,0],[3,0],[6,0],[5,0],[9,0],[2,0],[8,0],[7,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[164,{"inputs":[{"Node":{"node_id":165,"output_index":0,"lambda":false}},{"Node":{"node_id":318,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[226,{"inputs":[{"Node":{"node_id":229,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.24641848672125644,0.5269240260497682],"end":[0.8641268166855021,0.5169975680471844],"transform":[-100.21499095458871,-245.37810800253257,714.8940033002694,-259.11571915794843,778.0,832.9999999999964]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.24641848672125644,0.5269240260497682],"end":[0.8641268166855021,0.5169975680471844],"transform":[-100.21499095458871,-245.37810800253257,714.8940033002694,-259.11571915794843,778.0,832.9999999999964]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[428,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[0.8076864692090735,-0.4339622641509434]],[3,[0.7349403737393546,1.0000000000000002]],[1,[0.17362079214327678,-0.41509433962264153]],[4,[0.1596715565350542,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[2,2],[4,4]],"end_point":[[2,3],[1,2],[4,1],[3,4]],"handle_primary":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[4,0],[2,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[257,{"inputs":[{"Node":{"node_id":260,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[10544930474333783117,{"inputs":[{"Node":{"node_id":17173383864410319040,"output_index":0,"lambda":false}},{"Node":{"node_id":4633399390154487467,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[117,{"inputs":[{"Node":{"node_id":118,"output_index":0,"lambda":false}},{"Node":{"node_id":122,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[459,{"inputs":[{"Node":{"node_id":463,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[319,{"inputs":[{"Node":{"node_id":290,"output_index":0,"lambda":false}},{"Node":{"node_id":329,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12068777759187203228,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[4,[699.4958847736627,594.497256515775]],[3,[680.2695473251027,600.730452674897]],[5,[744.3996087994716,586.9732002235431]],[9,[713.2108672458469,610.5533455265964]],[6,[717.5809327846364,593.2681755829904]],[1,[645.3333333333333,614.013717421125]],[8,[708.7139917695473,601.783950617284]],[7,[702.5246913580245,600.8931773149878]],[2,[658.574074074074,609.6851851851851]],[10,[712.0500685871053,614.4420508944315]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[5,5],[4,4],[8,8],[3,3],[2,2],[1,1],[7,7],[9,9],[6,6],[10,10]],"end_point":[[7,8],[2,3],[10,1],[9,10],[5,6],[4,5],[8,9],[6,7],[1,2],[3,4]],"handle_primary":[[7,[0.0,0.0]],[8,[0.0,0.0]],[6,[-10.886145404663694,2.8971193415636662]],[2,[4.740740740740762,-4.148148148148152]],[1,[0.0,0.0]],[9,[0.0,0.0]],[10,[-58.35223289132739,3.851425709744945]],[5,[0.0,0.0]],[3,[7.374485596707928,-0.92181069958815]],[4,[4.444444444444002,-5.662551440328798]]],"handle_end":[[9,[-0.08779149519853036,-2.2109123484780184]],[2,[-6.174173455107166,0.7717716818881399]],[1,[-4.740740740740762,4.148148148148152]],[3,[-1.6866098186769705,2.1488658430550913]],[6,[0.0,0.0]],[8,[-2.5361987501905787,-3.706752019509281]],[5,[10.516302710276136,-2.79869346321857]],[10,null],[7,[-2.89711934156378,-1.975308641975289]],[4,[-5.794238683127446,-2.0192043895747247]]],"stroke":[[6,0],[3,0],[2,0],[1,0],[5,0],[4,0],[10,0],[8,0],[9,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[179,{"inputs":[{"Node":{"node_id":180,"output_index":0,"lambda":false}},{"Node":{"node_id":250,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16815500381887058038,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":74,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1024.0,768.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Network":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Network":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[412,{"inputs":[{"Node":{"node_id":413,"output_index":0,"lambda":false}},{"Node":{"node_id":421,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[272,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[872.6913580246915,564.7407407407408]],[2,[885.701646090535,534.2283950617283]],[3,[896.2037037037037,507.6111111111111]],[6,[873.7839506172841,571.9567901234568]],[5,[927.7592592592592,537.8333333333333]],[4,[919.7592592592592,507.7592592592593]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[1,1],[4,4],[5,5],[6,6],[2,2]],"end_point":[[2,3],[6,1],[3,4],[1,2],[5,6],[4,5]],"handle_primary":[[5,[0.0,0.0]],[1,[8.404909667028619,-14.163252363220296]],[6,[0.0,0.0]],[3,[5.629629629629449,-5.185185185185162]],[2,[2.6337448559671657,-9.349794238682987]],[4,[9.641681333516315,12.166883587532825]]],"handle_end":[[1,null],[2,[-6.29752559155645,5.8003525185389435]],[4,[0.0,0.0]],[6,[0.0,0.0]],[3,[-6.222222222222285,-7.851851851851904]],[5,[0.0,0.0]]],"stroke":[[4,0],[2,0],[5,0],[6,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[132,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[3,[153.6522633744856,666.8374485596709]],[1,[172.61522633744855,706.3436213991771]],[4,[158.12962962962962,718.0637860082305]],[2,[158.95389422344155,655.6901143957208]],[5,[170.5082304526749,714.508230452675]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[4,4],[1,1],[3,3],[2,2],[5,5]],"end_point":[[1,2],[5,1],[3,4],[2,3],[4,5]],"handle_primary":[[4,[0.0,0.0]],[3,[-1.8436213991769537,9.744855967078138]],[2,[0.0,0.0]],[5,[3.160493827160508,-3.5555555555554292]],[1,[0.0,0.0]]],"handle_end":[[2,[1.8436213991768968,-9.744855967078138]],[5,null],[3,[0.0,0.0]],[4,[-3.403056460676396,3.828438518260782]],[1,[10.930041152263357,25.448559670781947]]],"stroke":[[2,0],[5,0],[4,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[18142347460553706128,{"inputs":[{"Node":{"node_id":3719764965605527929,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[5714505144727602368,{"inputs":[{"Node":{"node_id":18142347460553706128,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[742.4503588311712,593.3522045638366]},"exposed":false}},{"Value":{"tagged_value":{"F64":-0.9530782},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[11.868580002725764,37.42791872115287]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.12623993859136118,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3719764965605527929,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[0.9294778693529006,0.07804966382593222]],[5,[0.5092009949861728,0.9569233045341342]],[2,[0.5284291926980893,-0.05749241759918103]],[1,[0.024789182815927936,-0.19742232174172225]],[6,[-0.007635827307500006,0.8135210708932508]],[4,[1.0925954941660798,1.0006513038165834]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[4,4],[6,6],[3,3],[5,5],[2,2],[1,1]],"end_point":[[2,3],[6,1],[5,6],[4,5],[1,2],[3,4]],"handle_primary":[[6,[0.0,0.0]],[5,[-0.28124758738050376,-0.047835328360902984]],[1,[0.0,0.0]],[2,[0.21441988872806772,0.05895880273641681]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[6,[0.0,0.0]],[5,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.26857587477611267,0.04568009019878494]],[1,[-0.16942059711236046,-0.046585396643413435]],[2,[0.0,0.0]]],"stroke":[[5,0],[6,0],[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[194,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[3,[0.7287108039915611,0.06963660702488284]],[1,[-0.15531318767467384,0.11366419216517]],[4,[0.9388148027481048,0.674134940686276]],[2,[0.2647731761418837,0.17920265855050785]],[5,[0.038029134760865314,0.7285470752399478]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3],[5,5]],"end_point":[[5,1],[2,3],[3,4],[1,2],[4,5]],"handle_primary":[[2,[0.12249986382303002,-0.04615791866776875]],[3,[-0.06001521816071698,0.06545334966568245]],[4,[0.0,0.0]],[5,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[-0.1993257782423989,0.03454533724430142]],[4,[0.0,0.0]],[5,[0.0,0.0]],[2,[-0.2265909018579063,0.03511994027079236]],[3,[0.0,0.0]]],"stroke":[[3,0],[4,0],[5,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17020523203516467057,{"inputs":[{"Node":{"node_id":7148230379224894975,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.328125,"green":0.19633627,"blue":0.17047119,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3458831403130609,0.8154173283216788],"end":[0.29832402234636923,0.9999999999999992],"transform":[596.6666666666671,0.0,0.0,669.6474899687091,706.9999999999995,7.352510031290876]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.328125,"green":0.19633627,"blue":0.17047119,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3458831403130609,0.8154173283216788],"end":[0.29832402234636923,0.9999999999999992],"transform":[596.6666666666671,0.0,0.0,669.6474899687091,706.9999999999995,7.352510031290876]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[396,{"inputs":[{"Node":{"node_id":400,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}],[1.0,{"red":0.9098039,"green":0.6862745,"blue":0.27058825,"alpha":1.0}]],"gradient_type":"Linear","start":[0.03910157250347135,0.9695090157857073],"end":[0.36170698072938423,0.042039957474503786],"transform":[340.38852944828716,-58.91966522272131,118.39875359080357,684.0089377789295,972.9016141723532,145.55594755688992]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}],[1.0,{"red":0.9098039,"green":0.6862745,"blue":0.27058825,"alpha":1.0}]],"gradient_type":"Linear","start":[0.03910157250347135,0.9695090157857073],"end":[0.36170698072938423,0.042039957474503786],"transform":[340.38852944828716,-58.91966522272131,118.39875359080357,684.0089377789295,972.9016141723532,145.55594755688992]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[85,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":155,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[427,{"inputs":[{"Node":{"node_id":428,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[583.9293351067386,697.6163522012579]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[206.6666666666667,70.66666666666666]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[256,{"inputs":[{"Node":{"node_id":259,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.19879202692409503,0.5201781689919184],"end":[0.8398128222157668,0.5168778892557565],"transform":[-149.7970504069467,-159.28457060198534,587.8340874439789,-510.0857997683857,879.0000000000035,834.0]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.19879202692409503,0.5201781689919184],"end":[0.8398128222157668,0.5168778892557565],"transform":[-149.7970504069467,-159.28457060198534,587.8340874439789,-510.0857997683857,879.0000000000035,834.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[287,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[4,[910.06378600823,174.98559670781898]],[3,[913.619341563786,134.1625514403292]],[5,[904.5,283.46296296296293]],[6,[898.2777777777778,520.5]],[1,[954.864197530864,116.14814814814812]],[7,[944.7962962962962,568.2037037037037]],[2,[934.9526748971192,114.67283950617282]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[7,7],[1,1],[5,5],[6,6],[4,4],[3,3],[2,2]],"end_point":[[5,6],[4,5],[3,4],[6,7],[2,3],[7,1],[1,2]],"handle_primary":[[3,[-2.2386831275719032,10.008230452674894]],[5,[-3.5555555555556566,34.37037037037038]],[4,[-0.7901234567891606,29.102880658436305]],[7,[0.0,0.0]],[1,[0.0,0.0]],[6,[0.0,0.0]],[2,[-9.481481481481635,1.8436213991769392]]],"handle_end":[[7,[0.0,0.0]],[5,[0.0,0.0]],[2,[2.677546335770103,-11.970207148147836]],[3,[0.370701337431683,-13.654165928739786]],[4,[3.5555555555554292,-34.37037037037038]],[1,[9.481481481481635,-1.8436213991769392]],[6,[0.0,0.0]]],"stroke":[[4,0],[2,0],[3,0],[6,0],[1,0],[5,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[318,{"inputs":[{"Node":{"node_id":319,"output_index":0,"lambda":false}},{"Node":{"node_id":323,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[178,{"inputs":[{"Node":{"node_id":179,"output_index":0,"lambda":false}},{"Node":{"node_id":244,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16821952675128396603,{"inputs":[{"Node":{"node_id":3885641499621884510,"output_index":0,"lambda":false}},{"Node":{"node_id":36935169817407978,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[36935169817407978,{"inputs":[{"Node":{"node_id":15848750910363784662,"output_index":0,"lambda":false}},{"Node":{"node_id":11279424538712841875,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[411,{"inputs":[{"Node":{"node_id":412,"output_index":0,"lambda":false}},{"Node":{"node_id":415,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[442,{"inputs":[{"Node":{"node_id":445,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.50980395,"green":0.26666668,"blue":0.2,"alpha":1.0}],[0.14354235440709684,{"red":0.5882353,"green":0.30588236,"blue":0.20392157,"alpha":1.0}],[0.5,{"red":0.6784314,"green":0.33333334,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.76953125,"green":0.4772935,"blue":0.21943665,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5063739376770537,0.01352247091271197],"end":[0.5049575070821529,1.015819012091678],"transform":[1412.0,0.0,0.0,231.4807092004588,351.0000000000001,588.5192907995412]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.50980395,"green":0.26666668,"blue":0.2,"alpha":1.0}],[0.14354235440709684,{"red":0.5882353,"green":0.30588236,"blue":0.20392157,"alpha":1.0}],[0.5,{"red":0.6784314,"green":0.33333334,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.76953125,"green":0.4772935,"blue":0.21943665,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5063739376770537,0.01352247091271197],"end":[0.5049575070821529,1.015819012091678],"transform":[1412.0,0.0,0.0,231.4807092004588,351.0000000000001,588.5192907995412]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[14205611254835578455,{"inputs":[{"Node":{"node_id":14335659566300901430,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[-1339.7031164295145,65.50112655997924]},"exposed":false}},{"Value":{"tagged_value":{"F64":-0.042402443},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[4.244995417859058,0.8619572141015625]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[4.90381723950611e-18,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[100,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[-0.03917736275965821,1.5785983631388945e-15]],[2,[0.9501947601024644,0.0]],[4,[0.0,1.0]],[3,[1.0,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[3,3],[4,4],[1,1]],"end_point":[[3,4],[1,2],[4,1],[2,3]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[1,0],[3,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[162,{"inputs":[{"Node":{"node_id":164,"output_index":0,"lambda":false}},{"Node":{"node_id":274,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9422094883894860610,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[481.882716049383,533.8333333333337]],[1,[527.0733882030179,547.0898491083676]],[2,[500.121399176955,531.6385459533608]],[6,[530.2777777777774,564.9115226337451]],[5,[541.9979423868313,611.7921810699589]],[4,[495.38065843621376,614.5137174211251]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[4,4],[6,6],[2,2],[5,5],[1,1],[3,3]],"end_point":[[6,1],[3,4],[5,6],[2,3],[4,5],[1,2]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]],[4,[0.0,0.0]],[2,[5.684341886080804e-14,0.0]]],"handle_end":[[6,[0.0,0.0]],[5,[0.0,0.0]],[1,[16.644617182340255,-0.4357059391355733]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[1,0],[5,0],[3,0],[6,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[193,{"inputs":[{"Node":{"node_id":191,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[965.2687196297846,544.9034434174798]},"exposed":false}},{"Value":{"tagged_value":{"F64":-1.7199705},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[17.59013219658168,55.471003102038694]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.12623993859136257,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[224,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"delta":[[1,[741.4602194787379,611.9677640603566]],[5,[819.0679012345677,520.2695473251028]],[18,[876.3518518518517,620.2201646090534]],[14,[864.6316872427983,543.3148148148147]],[15,[874.7716049382715,566.491769547325]],[11,[830.3930041152262,568.5987654320987]],[17,[877.4053497942385,607.1831275720164]],[6,[819.3312757201645,537.1255144032921]],[10,[827.364197530864,555.9567901234567]],[4,[790.0967078189299,592.170781893004]],[2,[773.1090534979423,610.0802469135801]],[7,[817.6193415637858,545.6851851851851]],[3,[779.9567901234567,598.5451457288699]],[16,[858.4423868312756,599.2818930041151]],[19,[742.2503429355281,620.0445816186556]],[9,[825.2572016460904,550.6893004115226]],[13,[852.648148148148,535.9403292181069]],[8,[825.5205761316871,544.7633744855966]],[12,[837.1090534979422,574.2613168724279]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"start_point":[[18,18],[1,1],[8,8],[4,4],[13,13],[7,7],[16,16],[11,11],[17,17],[19,19],[2,2],[9,9],[14,14],[10,10],[15,15],[3,3],[6,6],[5,5],[12,12]],"end_point":[[4,5],[15,16],[2,3],[12,13],[19,1],[1,2],[6,7],[7,8],[10,11],[14,15],[17,18],[3,4],[11,12],[18,19],[9,10],[8,9],[13,14],[16,17],[5,6]],"handle_primary":[[8,[0.0,0.0]],[1,[0.0,0.0]],[17,[0.0,0.0]],[2,[4.609053497942341,-0.9218106995883772]],[14,[3.68724279835385,7.90123456790127]],[7,[1.4485596707819468,2.633744855967052]],[4,[1.0534979423869115,-4.345679012345613]],[5,[0.0,0.0]],[3,[5.530864197530832,-1.8969975807218589]],[12,[0.0,0.0]],[10,[1.7119341563786747,1.316872427983526]],[13,[0.0,0.0]],[9,[0.0,0.0]],[15,[0.0,0.0]],[6,[0.0,0.0]],[16,[0.0,0.0]],[19,[-21.66213092273972,1.775584501863932]],[11,[0.658436213991763,2.1698525002639144]],[18,[-1.843621399176982,1.975308641975289]]],"handle_end":[[8,[1.1851851851852189,-2.502057613168745]],[19,[0.0,0.0]],[7,[-5.135802469135797,4.609053497942341]],[1,[-4.609053497942341,0.9218106995883772]],[10,[-0.658436213991763,-2.1698525002639144]],[16,[-5.1358024691359105,-5.00411522633749]],[3,[-1.0534979423869115,4.345679012345613]],[15,[2.765432098765359,-11.851851851851848]],[13,[-3.68724279835385,-7.90123456790127]],[17,[1.843621399176982,-1.975308641975289]],[18,[21.421124828532356,-1.7558299039781105]],[9,[-1.7119341563786747,-1.316872427983526]],[12,[-7.637860082304542,12.641975308641918]],[5,[-0.39506172839503506,-3.160493827160508]],[6,[-1.4485596707819468,-2.633744855967052]],[2,[-5.530864197530832,1.8969975807218589]],[11,[-2.10699588477371,-0.3950617283951487]],[4,[-16.987654320987644,28.049382716049426]],[14,[0.0,0.0]]],"stroke":[[13,0],[18,0],[16,0],[17,0],[1,0],[5,0],[10,0],[3,0],[12,0],[19,0],[15,0],[7,0],[6,0],[14,0],[8,0],[4,0],[11,0],[9,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":19}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[14579754335592291854,{"inputs":[{"Node":{"node_id":1644624352314732667,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":0.0}]],"gradient_type":"Radial","start":[0.49999999999999994,0.5000000000000009],"end":[0.9003149237651733,0.5000000000000009],"transform":[1153.5000000000016,0.0,0.0,116.99999999999352,390.5000000000018,782.9999999999995]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":0.0}]],"gradient_type":"Radial","start":[0.49999999999999994,0.5000000000000009],"end":[0.9003149237651733,0.5000000000000009],"transform":[1153.5000000000016,0.0,0.0,116.99999999999352,390.5000000000018,782.9999999999995]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[7134154821675013808,{"inputs":[{"Node":{"node_id":408,"output_index":0,"lambda":false}},{"Node":{"node_id":14205611254835578455,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[457,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[80.05555555555559,484.94444444444446]],[3,[129.38888888888889,628.0555555555557]],[1,[-4.833333333333332,345.83333333333326]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[32.038317168599576,69.73045501401077]]],"handle_end":[[2,[0.0,0.0]],[1,[-45.33333333333338,-98.66666666666669]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[115,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,1.0]],[2,[1.0,0.0]],[1,[-0.04384002017081715,1.8188575645616826e-15]],[3,[1.0,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[3,3],[1,1]],"end_point":[[3,4],[4,1],[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6710503329407068595,{"inputs":[{"Node":{"node_id":16831252454255560063,"output_index":0,"lambda":false}},{"Node":{"node_id":10486443711686704000,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9570557034533539493,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[767.1831275720166,614.1625514403293]],[1,[740.3456790123458,588.2030178326476]],[3,[794.0473251028808,582.3820301783265]],[2,[755.3312757201647,586.2448559670783]],[6,[751.1172839506169,611.1776406035664]],[4,[789.2187928669412,601.4967933823075]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[6,6],[2,2],[1,1],[3,3],[5,5],[4,4]],"end_point":[[6,1],[5,6],[3,4],[2,3],[4,5],[1,2]],"handle_primary":[[3,[0.0,0.0]],[5,[-11.149519890260535,0.2794994541025062]],[4,[-8.427983539094612,8.539557783673331]],[6,[0.0,0.0]],[1,[0.0,0.0]],[2,[9.481481481481524,0.4824094931645959]]],"handle_end":[[4,[11.149519890260535,-0.2794994541025062]],[1,[-9.481481481481524,-0.4824094931645959]],[2,[-9.305898491083669,-1.1412894375856697]],[5,[0.0,0.0]],[6,[0.0,0.0]],[3,[8.427983539094612,-8.539557783673331]]],"stroke":[[5,0],[4,0],[3,0],[6,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5175066652268973319,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,1.0]],[2,[0.8379395417513005,-0.05940639119491883]],[3,[1.0362898771040632,0.9994054840058096]],[1,[-0.09890842105846484,-0.06578040790199424]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[3,3],[2,2]],"end_point":[[4,1],[3,4],[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[2,0],[4,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[177,{"inputs":[{"Node":{"node_id":178,"output_index":0,"lambda":false}},{"Node":{"node_id":238,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[208,{"inputs":[{"Node":{"node_id":212,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[15277819403265847073,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":4913361824430066698,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[99,{"inputs":[{"Node":{"node_id":100,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[827.4018790826805,704.5]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[74.57030178326477,63.99999999999989]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[161,{"inputs":[{"Node":{"node_id":162,"output_index":0,"lambda":false}},{"Node":{"node_id":168,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[17245613731534563958,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.5,0.0]],[4,[0.0,0.5]],[2,[1.0,0.5]],[3,[0.5,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[1,1],[2,2]],"end_point":[[2,3],[1,2],[4,1],[3,4]],"handle_primary":[[1,[0.27589238888950707,0.0]],[3,[-0.275892388889507,0.0]],[4,[0.0,-0.275892388889507]],[2,[0.0,0.27589238888950707]]],"handle_end":[[2,[0.27589238888950707,0.0]],[4,[-0.275892388889507,0.0]],[1,[0.0,-0.275892388889507]],[3,[0.0,0.27589238888950707]]],"stroke":[[4,0],[2,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[394,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":404,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[254,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[4,[1004.3518518518516,600.7306004720272]],[1,[887.506172839506,620.2933732713938]],[3,[1012.648148148148,620.7933732713938]],[2,[999.8086419753088,626.6728395061729]],[5,[910.5246913580244,598.202467627757]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[5,5],[4,4],[2,2],[1,1],[3,3]],"end_point":[[3,4],[5,1],[1,2],[4,5],[2,3]],"handle_primary":[[1,[0.0,0.0]],[5,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[1,[-43.25925925925878,-1.3827160493827932]],[5,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[2,0],[5,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[83,{"inputs":[{"Node":{"node_id":85,"output_index":0,"lambda":false}},{"Node":{"node_id":117,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[114,{"inputs":[{"Node":{"node_id":115,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[926.5490676442352,657.3888888888888]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[97.92901234567933,111.111111111111]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[487,{"inputs":[{"Node":{"node_id":491,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5546875,"green":0.30678105,"blue":0.24050903,"alpha":1.0}],[1.0,{"red":0.41015625,"green":0.26908994,"blue":0.22590637,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6510643291021605,0.0026199374677413345],"end":[0.6510643291021605,0.8853991419751945],"transform":[171.95146556847033,0.0,0.0,739.7405389344278,1183.0485344315307,119.06192604563851]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5546875,"green":0.30678105,"blue":0.24050903,"alpha":1.0}],[1.0,{"red":0.41015625,"green":0.26908994,"blue":0.22590637,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6510643291021605,0.0026199374677413345],"end":[0.6510643291021605,0.8853991419751945],"transform":[171.95146556847033,0.0,0.0,739.7405389344278,1183.0485344315307,119.06192604563851]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[316,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[6,[751.1172839506169,611.1776406035664]],[4,[789.2187928669412,601.4967933823075]],[3,[794.0473251028808,582.3820301783265]],[5,[767.1831275720166,614.1625514403293]],[2,[755.3312757201647,586.2448559670783]],[1,[740.3456790123458,588.2030178326476]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[6,6],[2,2],[1,1],[5,5],[4,4],[3,3]],"end_point":[[2,3],[3,4],[6,1],[1,2],[4,5],[5,6]],"handle_primary":[[1,[0.0,0.0]],[5,[-11.149519890260535,0.2794994541025062]],[4,[-8.427983539094612,8.539557783673331]],[2,[9.481481481481524,0.4824094931645959]],[3,[0.0,0.0]],[6,[0.0,0.0]]],"handle_end":[[2,[-9.305898491083669,-1.1412894375856697]],[1,[-9.481481481481524,-0.4824094931645959]],[3,[8.427983539094612,-8.539557783673331]],[6,[0.0,0.0]],[4,[11.149519890260535,-0.2794994541025062]],[5,[0.0,0.0]]],"stroke":[[2,0],[4,0],[6,0],[5,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[97478832511923699,{"inputs":[{"Node":{"node_id":2999157202967297847,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[486.78967826851385,539.8989473007496]},"exposed":false}},{"Value":{"tagged_value":{"F64":-0.14917418},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[24.603566707484493,77.5880766500041]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.12623993859136096,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[176,{"inputs":[{"Node":{"node_id":177,"output_index":0,"lambda":false}},{"Node":{"node_id":232,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12717405604755313921,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":15483449862348058100,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1644624352314732667,{"inputs":[{"Node":{"node_id":3930114406985796561,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[337.1982047610469,692.7466487935636]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[50.0,50.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[409,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":442,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[238,{"inputs":[{"Node":{"node_id":242,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[3707802522175443254,{"inputs":[{"Node":{"node_id":10278740841813346388,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[440,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1.0,0.0]],[4,[0.0387096774193552,1.0]],[1,[0.0,0.0]],[3,[1.035483870967742,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[1,1],[2,2]],"end_point":[[1,2],[4,1],[3,4],[2,3]],"handle_primary":[[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9603838021022368374,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[3,[698.0912208504803,600.3792866941013]],[4,[706.1680384087791,607.8415637860082]],[7,[779.7592592592597,612.6204267490609]],[1,[744.3996087994717,586.9732002235432]],[2,[734.9571457603006,587.5194584158918]],[5,[710.9477975918305,613.6358024691357]],[6,[729.3449931412895,610.3875171467763]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[7,7],[4,4],[1,1],[5,5],[3,3],[6,6],[2,2]],"end_point":[[6,7],[7,1],[1,2],[3,4],[2,3],[4,5],[5,6]],"handle_primary":[[3,[0.0,0.0]],[7,[0.0,0.0]],[5,[7.452522481329197,2.721536351166037]],[6,[15.119646395366544,2.853223593964344]],[1,[0.0,0.0]],[4,[2.1947873799731497,4.691071467853249]],[2,[0.0,0.0]]],"handle_end":[[2,[6.496570644718986,-11.149519890260422]],[6,[0.0,0.0]],[1,[0.0,0.0]],[3,[-2.494608558449272,-5.331900091455282]],[7,[9.28638926992835,13.56378600823075]],[4,null],[5,null]],"stroke":[[2,0],[3,0],[7,0],[4,0],[5,0],[1,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[471,{"inputs":[{"Node":{"node_id":475,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[300,{"inputs":[{"Node":{"node_id":304,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[331,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[8,[446.6563786008233,618.9032921810701]],[5,[540.9444444444443,605.8710283878144]],[10,[750.8539094650207,617.9375857338821]],[9,[661.5370370370372,619.7592592592594]],[11,[675.4629629629632,591.0185185185186]],[3,[588.0884773662551,227.52880658436212]],[6,[523.3861454046643,611.9385002286241]],[4,[563.1666666666666,433.38888888888886]],[1,[659.4434537418081,187.67146776406028]],[2,[622.9855967078189,184.4670781893004]],[7,[486.7770919067218,613.3724279835391]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"start_point":[[7,7],[8,8],[10,10],[4,4],[9,9],[2,2],[6,6],[5,5],[1,1],[3,3],[11,11]],"end_point":[[11,1],[4,5],[1,2],[8,9],[10,11],[7,8],[3,4],[2,3],[6,7],[5,6],[9,10]],"handle_primary":[[11,[0.0,0.0]],[7,[-3.511659807956221,0.819387288523103]],[5,[0.0,0.0]],[8,[0.0,0.0]],[6,[0.0,0.0]],[3,[-3.950617283950692,42.13991769547326]],[4,[-10.222222222222172,79.55555555555549]],[9,[43.09465020576113,-0.9876543209876444]],[2,[-6.716049382716051,0.9218106995884908]],[1,[-3.9798811156837246,-1.1315348270080108]],[10,[1.1851851851849915,-37.53086419753106]]],"handle_end":[[5,[5.5601280292639785,-9.422953818016254]],[6,[5.110425979711636,-1.1924327285993286]],[10,[0.0,0.0]],[9,[-22.386831275720624,5.3991769547326385]],[4,[0.0,0.0]],[11,null],[8,[-14.51772944216873,0.33272107201298695]],[1,[6.716049382716051,-0.9218106995884624]],[2,[3.950617283950692,-42.13991769547323]],[7,[1.5363511659809888,-3.599451303154865]],[3,[10.222222222222172,-79.55555555555549]]],"stroke":[[10,0],[8,0],[9,0],[11,0],[2,0],[4,0],[7,0],[5,0],[6,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":11}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[191,{"inputs":[{"Node":{"node_id":194,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[6980979116665635870,{"inputs":[{"Node":{"node_id":5175066652268973319,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[486.78967826851385,539.8989473007496]},"exposed":false}},{"Value":{"tagged_value":{"F64":-0.14917418},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[24.603566707484493,77.5880766500041]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.12623993859136096,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[393,{"inputs":[{"Node":{"node_id":394,"output_index":0,"lambda":false}},{"Node":{"node_id":398,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[424,{"inputs":[{"Node":{"node_id":427,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.72265625,"green":0.3808298,"blue":0.2117157,"alpha":1.0}],[0.07456140350877193,{"red":0.827451,"green":0.42352942,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.84705883,"green":0.48235294,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0],"transform":[301.3269343934191,0.0,0.0,227.99999999999997,1490.0,614.0]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.72265625,"green":0.3808298,"blue":0.2117157,"alpha":1.0}],[0.07456140350877193,{"red":0.827451,"green":0.42352942,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.84705883,"green":0.48235294,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0],"transform":[301.3269343934191,0.0,0.0,227.99999999999997,1490.0,614.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[82,{"inputs":[{"Node":{"node_id":83,"output_index":0,"lambda":false}},{"Node":{"node_id":102,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[455,{"inputs":[{"Node":{"node_id":453,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":6.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[144,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.5,0.0]],[3,[0.5,1.0]],[2,[1.0,0.5]],[4,[0.0,0.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[3,3],[2,2]],"end_point":[[4,1],[2,3],[1,2],[3,4]],"handle_primary":[[2,[0.0,0.27589238888950707]],[4,[0.0,-0.275892388889507]],[3,[-0.275892388889507,0.0]],[1,[0.27589238888950707,0.0]]],"handle_end":[[4,[-0.275892388889507,0.0]],[1,[0.0,-0.275892388889507]],[3,[0.0,0.27589238888950707]],[2,[0.27589238888950707,0.0]]],"stroke":[[4,0],[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[175,{"inputs":[{"Node":{"node_id":176,"output_index":0,"lambda":false}},{"Node":{"node_id":226,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[206,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"remove":[],"delta":[[8,[972.5274348422496,495.6732967535437]],[2,[988.351851851852,494.72222222222223]],[14,[974.574074074074,539.3148148148148]],[1,[1009.6296296296296,552.8888888888889]],[7,[965.9814814814814,501.38888888888886]],[9,[973.0925925925924,496.5]],[3,[971.3148148148148,466.5740740740741]],[6,[967.9074074074072,482.8703703703703]],[5,[963.3148148148148,466.8703703703703]],[13,[967.3148148148148,531.9074074074074]],[4,[956.3024691358024,462.55639384240214]],[10,[968.2037037037036,504.05555555555554]],[11,[975.1666666666664,511.3148148148148]],[12,[981.6851851851852,523.1666666666666]],[15,[1001.8333333333334,567.0185185185184]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"remove":[],"start_point":[[11,11],[15,15],[1,1],[7,7],[3,3],[13,13],[12,12],[6,6],[2,2],[5,5],[4,4],[9,9],[14,14],[8,8],[10,10]],"end_point":[[13,14],[12,13],[2,3],[9,10],[1,2],[5,6],[11,12],[15,1],[7,8],[10,11],[14,15],[4,5],[8,9],[3,4],[6,7]],"handle_primary":[[13,[0.0,0.0]],[6,[-5.333333333333144,8.296296296296305]],[2,[-6.51851851851859,-12.148148148148152]],[5,[2.814814814814781,3.7037037037036953]],[10,[0.0,0.0]],[3,[-4.395061728394808,-4.740740740740705]],[11,[3.703703703703809,-0.7407407407407618]],[15,[0.0,0.0]],[7,[0.0,0.0]],[1,[0.0,0.0]],[9,[0.0,0.0]],[14,[0.0,0.0]],[4,[0.0,0.0]],[8,[0.0,0.0]],[12,[-4.888888888889028,8.59259259259261]]],"handle_end":[[12,[0.0,0.0]],[13,[-4.296296296296418,-2.6666666666666288]],[3,[3.265062349348341,-2.124337414689535]],[9,[0.7407407407407618,-4.0]],[1,[6.51851851851859,12.148148148148152]],[11,[4.8888888888888005,-8.59259259259261]],[4,[-2.814814814814781,-3.7037037037036953]],[14,[-3.4074074074073906,-0.7407407407407618]],[2,[3.786081133230596,4.083862795394623]],[7,[-2.6666666666667425,0.740740740740705]],[10,[-3.7037037037035816,0.7407407407407618]],[8,[-0.009144947416189098,-0.38774577046183367]],[15,[-3.796296296296191,11.166666666666517]],[5,[5.333333333333485,-8.296296296296305]],[6,[-1.7777777777778283,-0.8888888888889142]]],"stroke":[[2,0],[15,0],[7,0],[10,0],[12,0],[6,0],[9,0],[11,0],[5,0],[13,0],[8,0],[1,0],[3,0],[4,0],[14,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":15}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[408,{"inputs":[{"Node":{"node_id":409,"output_index":0,"lambda":false}},{"Node":{"node_id":411,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1453710883947581217,{"inputs":[{"Node":{"node_id":281,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[268,{"inputs":[{"Node":{"node_id":272,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[439,{"inputs":[{"Node":{"node_id":440,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[344.5177419354837,697.8333333333333]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[206.6666666666667,70.66666666666666]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12768614558324028960,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":6710503329407068595,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[128,{"inputs":[{"Node":{"node_id":132,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[159,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[2,[153.0925925925926,632.7962962962963]],[5,[-2.6666666666666856,770.8703703703704]],[1,[-2.6666666666667,581.3333333333333]],[3,[266.2777777777779,704.4077331232156]],[4,[249.09259259259255,770.8703703703704]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[4,4],[3,3],[1,1],[5,5],[2,2]],"end_point":[[3,4],[5,1],[1,2],[4,5],[2,3]],"handle_primary":[[5,[0.0,0.0]],[1,[0.0,0.0]],[2,[69.92592592592595,31.40740740740773]],[3,[8.273042653236644,16.012340619167617]],[4,[0.0,0.0]]],"handle_end":[[5,[0.0,0.0]],[1,[-105.44980253803315,-47.36304690267639]],[2,[-9.18518518518522,-17.777777777777715]],[3,[19.407407407407447,-32.148148148148266]],[4,[0.0,0.0]]],"stroke":[[3,0],[2,0],[1,0],[5,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2489761779922717592,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[5,[338.4753086419753,574.1296296296297]],[9,[447.46059205066985,619.9047655337092]],[7,[455.2160493827161,586.8374485596709]],[10,[288.6975308641976,620.1543209876544]],[1,[156.18106995884773,623.2098765432096]],[6,[468.0555555555556,551.0185185185187]],[4,[282.37654320987656,585.9814814814815]],[8,[481.88271604938296,600.2037037037037]],[2,[161.81687242798355,618.7716049382714]],[3,[205.93209876543213,600.5987654320988]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[1,1],[4,4],[2,2],[7,7],[10,10],[6,6],[8,8],[9,9],[5,5],[3,3]],"end_point":[[5,6],[1,2],[4,5],[10,1],[8,9],[3,4],[6,7],[7,8],[9,10],[2,3]],"handle_primary":[[1,[0.0,0.0]],[10,[-70.32098765432102,1.975308641975289]],[2,[5.925925925925924,-2.370370370370324]],[4,[22.71604938271605,-4.9382716049382225]],[9,[0.0,0.0]],[5,[0.0,0.0]],[6,[-0.19753086419751753,-0.19753086419757435]],[3,[21.135802469135797,-7.703703703703695]],[8,[0.0,0.0]],[7,[0.0,0.0]]],"handle_end":[[1,[-5.925925925925924,2.370370370370324]],[4,[0.0,0.0]],[2,[-21.135802469135797,7.703703703703695]],[10,[41.77160493827162,-2.8703703703704377]],[7,[-8.691358024691567,-7.308641975308547]],[5,[-40.09876543209879,-8.09876543209873]],[9,[70.32098765432102,-1.975308641975289]],[3,[-22.71604938271605,4.9382716049382225]],[6,[4.345679012345613,-25.481481481481524]],[8,[11.358024691357969,-11.390946502057773]]],"stroke":[[9,0],[8,0],[6,0],[5,0],[4,0],[10,0],[3,0],[7,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[190,{"inputs":[{"Node":{"node_id":193,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.1331892468887066,0.5346273584022614],"end":[0.8687039445257865,0.5091081472114145],"transform":[-218.7504556627755,-14.37593189759248,43.932245743957935,-414.3431050369427,1186.6527692956029,632.7498382754235]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.1331892468887066,0.5346273584022614],"end":[0.8687039445257865,0.5091081472114145],"transform":[-218.7504556627755,-14.37593189759248,43.932245743957935,-414.3431050369427,1186.6527692956029,632.7498382754235]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[11427960919145580782,{"inputs":[{"Node":{"node_id":6873123446543957690,"output_index":0,"lambda":false}},{"Node":{"node_id":11345069121502219134,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15848750910363784662,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":17911294938421300842,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[81,{"inputs":[{"Node":{"node_id":82,"output_index":0,"lambda":false}},{"Node":{"node_id":87,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[15483449862348058100,{"inputs":[{"Node":{"node_id":5382879283978921947,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[283,{"inputs":[{"Node":{"node_id":16360261423333265502,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[143,{"inputs":[{"Node":{"node_id":144,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[22.81427346112025,718.7256085656885]},"exposed":false}},{"Value":{"tagged_value":{"F64":-0.028919384},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[114.60967448512612,10.883703174332329]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.002522502109903075,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[6873123446543957690,{"inputs":[{"Node":{"node_id":12717405604755313921,"output_index":0,"lambda":false}},{"Node":{"node_id":3707802522175443254,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[485,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[4,[873.611111111111,465.6111111111111]],[5,[874.2777777777776,540.5]],[2,[881.6925011431184,340.0384849870446]],[7,[907.1666666666664,501.16666666666663]],[6,[879.873428946497,552.0307817039356]],[3,[873.1913580246915,359.61111111111114]],[1,[901.7869989330896,337.4632677945435]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[6,6],[3,3],[5,5],[4,4],[1,1],[7,7],[2,2]],"end_point":[[4,5],[5,6],[7,1],[1,2],[2,3],[3,4],[6,7]],"handle_primary":[[5,[1.086419753086716,4.000000000000114]],[7,[2.888888888889028,-35.111111111111086]],[2,[-5.885745135394927,5.678500588373993]],[3,[0.09876543209873034,9.87654320987656]],[6,[4.0,1.7777777777777146]],[1,[0.0,0.0]],[4,[-0.22222222222228535,37.77777777777777]]],"handle_end":[[7,[0.0,0.0]],[2,[-0.09876543209873034,-9.87654320987656]],[1,[5.5406188081085475,-5.34552659655543]],[3,[0.22222222222228535,-37.77777777777777]],[4,[-0.9901901223357754,-3.645699995871837]],[5,[-4.0,-1.7777777777777146]],[6,[-2.8888888888888005,35.111111111111086]]],"stroke":[[2,0],[3,0],[6,0],[1,0],[4,0],[5,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[174,{"inputs":[{"Node":{"node_id":175,"output_index":0,"lambda":false}},{"Node":{"node_id":220,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[4633399390154487467,{"inputs":[{"Node":{"node_id":11155094820673141470,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false}],[236,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[4,[828.8127572016463,566.4259259259259]],[5,[826.9691358024693,580.1543209876544]],[2,[837.9320987654322,560.7962962962963]],[6,[838.425925925926,581.0432098765433]],[3,[832.8950617283951,560.829218106996]],[1,[842.2716049382717,560.2962962962963]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[4,4],[5,5],[1,1],[6,6],[2,2]],"end_point":[[5,6],[1,2],[3,4],[2,3],[4,5],[6,1]],"handle_primary":[[6,[0.0,0.0]],[1,[-4.339506172839492,0.5]],[5,[0.0,0.0]],[2,[0.0,0.0]],[3,[-2.1728395061728634,1.4814814814815236]],[4,[-3.649513397469832,2.8283728830390373]]],"handle_end":[[1,null],[6,[0.0,0.0]],[5,[0.0,0.0]],[4,[0.0,0.0]],[3,[2.633744855967052,-2.0411522633744426]],[2,[2.1728395061728634,-1.4814814814815236]]],"stroke":[[3,0],[2,0],[4,0],[6,0],[5,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[1598976462838094167,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"delta":[[3,[488.5329218106997,551.6587029416252]],[12,[513.3888888888889,585.5544307531777]],[4,[500.77983539094663,544.0208428593207]],[11,[504.00617283950623,588.9444444444446]],[17,[448.3683127572017,617.6340115836006]],[14,[496.49999999999994,603.4117893613783]],[20,[480.89506172839504,532.4323654930657]],[7,[495.90740740740733,567.882982777016]],[8,[502.6234567901235,563.1154930650816]],[10,[496.50000000000006,582.6234567901236]],[19,[468.05555555555594,550.6710486206383]],[2,[497.8388203017833,534.5393613778391]],[16,[478.9197530864198,618.6875095259874]],[15,[496.30246913580254,612.3006782502672]],[6,[490.17901234567904,556.0043819539711]],[9,[510.261316872428,573.2078189300412]],[1,[506.7057613168725,531.9348803536052]],[5,[500.4506172839507,547.5105547934772]],[13,[516.8017832647463,593.4437585733884]],[18,[438.2283950617284,585.5544307531777]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"start_point":[[10,10],[2,2],[5,5],[17,17],[20,20],[19,19],[9,9],[8,8],[18,18],[4,4],[14,14],[1,1],[11,11],[7,7],[15,15],[12,12],[6,6],[3,3],[13,13],[16,16]],"end_point":[[20,1],[16,17],[10,11],[7,8],[5,6],[18,19],[8,9],[2,3],[19,20],[1,2],[9,10],[11,12],[4,5],[13,14],[6,7],[3,4],[12,13],[14,15],[15,16],[17,18]],"handle_primary":[[18,[0.0,0.0]],[13,[0.0,0.0]],[12,[0.0,0.0]],[16,[0.0,0.0]],[20,[7.46503467504715,-4.02781143068205]],[5,[-6.737997256515712,3.1824417009599983]],[6,[0.0,0.0]],[15,[0.0,0.0]],[19,[0.0,0.0]],[1,[0.0,0.0]],[2,[-7.188100137174104,2.6138545953361927]],[17,[0.0,0.0]],[9,[0.0,0.0]],[4,null],[3,[4.565157750342848,-4.301783264746064]],[14,[0.0,0.0]],[8,[0.0,0.0]],[7,[0.0,0.0]],[11,[0.0,0.0]],[10,[0.0,0.0]]],"handle_end":[[16,[0.0,0.0]],[3,null],[14,[-0.7901234567900701,-4.938271604938336]],[10,[-2.765432098765416,-3.555555555555543]],[17,[0.0,0.0]],[19,[-3.394604481024089,3.2873037646699004]],[8,[-1.7777777777777717,-5.728395061728406]],[18,[0.0,0.0]],[11,[-3.851851851851848,0.7581344568814075]],[12,[-0.39506172839503506,-1.975308641975289]],[20,[0.0,0.0]],[1,[3.4386245260820374,-1.250408918575317]],[7,[-3.6872427983540206,1.4485596707820605]],[4,null],[13,[0.0,0.0]],[5,[0.0,0.0]],[9,[6.716049382716108,-8.49382716049422]],[2,[0.27087722942241044,-5.120145445603839]],[15,[0.0,0.0]],[6,[-2.508333333333439,-2.0902777777778283]]],"stroke":[[6,0],[4,0],[12,0],[2,0],[5,0],[1,0],[15,0],[14,0],[16,0],[8,0],[9,0],[18,0],[19,0],[13,0],[10,0],[3,0],[17,0],[20,0],[7,0],[11,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":20}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12435496696188763850,{"inputs":[{"Node":{"node_id":9286544882258200464,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[96,{"inputs":[{"Node":{"node_id":99,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.7594724231651877,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.0,0.5],"end":[1.0,0.0],"transform":[167.78317901234573,0.0,0.0,143.99999999999977,1158.5733024691351,715.0]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.7594724231651877,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.0,0.5],"end":[1.0,0.0],"transform":[167.78317901234573,0.0,0.0,143.99999999999977,1158.5733024691351,715.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[469,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13],"remove":[],"delta":[[11,[177.83333333333343,384.49999999999994]],[10,[137.68518518518513,236.64814814814815]],[3,[-7.030559365950182,200.5]],[1,[137.75,641.0]],[6,[110.91975308641976,406.62345679012344]],[4,[50.72222222222222,278.78532235939633]],[13,[223.25,608.7633744855967]],[5,[81.68518518518522,338.8703703703703]],[7,[129.38888888888886,443.61235349483104]],[2,[-7.000000000000025,626.675562328647]],[12,[199.1666666666667,473.1666666666667]],[9,[111.83431058292848,134.6107990062408]],[8,[82.0,29.5]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13],"remove":[],"start_point":[[12,12],[5,5],[9,9],[2,2],[7,7],[8,8],[1,1],[4,4],[3,3],[11,11],[10,10],[6,6],[13,13]],"end_point":[[4,5],[10,11],[9,10],[11,12],[2,3],[3,4],[13,1],[7,8],[12,13],[8,9],[5,6],[6,7],[1,2]],"handle_primary":[[2,[0.0,0.0]],[3,[31.078939476013172,37.97283968100555]],[8,[0.0,0.0]],[5,[6.73334689148848,12.881185357630102]],[4,[7.654320987654309,14.850480109739408]],[12,[11.42335240155694,63.4630688975397]],[1,[0.0,0.0]],[11,[6.410520201070284,29.915760938327992]],[13,[0.0,0.0]],[9,[5.9990227504048335,27.666978771536947]],[7,[-20.788075479416264,-70.61235349483104]],[10,[12.334360893667936,45.715346431469186]],[6,[8.537957281505157,20.688127259031944]]],"handle_end":[[6,[0.0,0.0]],[11,[-5.999999999999915,-33.33333333333343]],[4,[-9.08641975308646,-17.382716049382736]],[10,[-12.0,-55.99999999999994]],[1,[0.0,0.0]],[3,[-14.856706650648782,-28.82414089604376]],[12,[0.0,0.0]],[7,[14.499999999999943,172.0]],[13,[0.0,0.0]],[8,[-13.354098963944438,-61.58795989288773]],[9,[-13.510174692931455,-48.54050114169854]],[5,[-10.271604938271594,-24.88888888888897]],[2,[0.0,0.0]]],"stroke":[[3,0],[1,0],[2,0],[12,0],[8,0],[9,0],[13,0],[10,0],[7,0],[11,0],[4,0],[6,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":13}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[11279424538712841875,{"inputs":[{"Node":{"node_id":2489761779922717592,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[329,{"inputs":[{"Node":{"node_id":327,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[4452902364641883403,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":8861964493222160710,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16894739051789815098,{"inputs":[{"Node":{"node_id":17245613731534563958,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"DVec2":[337.1982047610469,692.7466487935636]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[50.0,50.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.5,0.5]},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Network":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Network":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[220,{"inputs":[{"Node":{"node_id":224,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[422,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":430,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[453,{"inputs":[{"Node":{"node_id":457,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":"None"},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":null},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[111,{"inputs":[{"Node":{"node_id":114,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[13606781735926093266,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[5,[744.3996087994716,586.9732002235431]],[3,[680.2695473251027,600.730452674897]],[4,[699.4958847736627,594.497256515775]],[2,[658.574074074074,609.6851851851851]],[1,[645.3333333333333,614.013717421125]],[6,[717.5809327846364,593.2681755829904]],[8,[708.7139917695473,601.783950617284]],[7,[702.5246913580245,600.8931773149878]],[9,[713.2108672458469,610.5533455265964]],[10,[712.0500685871053,614.4420508944315]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[2,2],[5,5],[3,3],[7,7],[1,1],[8,8],[4,4],[10,10],[9,9],[6,6]],"end_point":[[9,10],[1,2],[5,6],[6,7],[8,9],[7,8],[3,4],[4,5],[2,3],[10,1]],"handle_primary":[[3,[7.374485596707928,-0.92181069958815]],[7,[0.0,0.0]],[4,[4.444444444444002,-5.662551440328798]],[6,[-10.886145404663694,2.8971193415636662]],[5,[0.0,0.0]],[9,[0.0,0.0]],[1,[0.0,0.0]],[2,[4.740740740740762,-4.148148148148152]],[8,[0.0,0.0]],[10,[-58.35223289132739,3.851425709744945]]],"handle_end":[[5,[10.516302710276136,-2.79869346321857]],[6,[0.0,0.0]],[3,[-1.6866098186769705,2.1488658430550913]],[9,[-0.08779149519853036,-2.2109123484780184]],[10,null],[7,[-2.89711934156378,-1.975308641975289]],[8,[-2.5361987501905787,-3.706752019509281]],[4,[-5.794238683127446,-2.0192043895747247]],[1,[-4.740740740740762,4.148148148148152]],[2,[-6.174173455107166,0.7717716818881399]]],"stroke":[[3,0],[4,0],[6,0],[8,0],[1,0],[9,0],[7,0],[10,0],[2,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[2999157202967297847,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[0.8379395417513005,-0.05940639119491883]],[4,[0.0,1.0]],[3,[1.0362898771040632,0.9994054840058096]],[1,[-0.09890842105846484,-0.06578040790199424]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[4,4],[2,2]],"end_point":[[1,2],[4,1],[2,3],[3,4]],"handle_primary":[[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[173,{"inputs":[{"Node":{"node_id":174,"output_index":0,"lambda":false}},{"Node":{"node_id":214,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16360261423333265502,{"inputs":[{"Node":{"node_id":287,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[16831252454255560063,{"inputs":[{"Node":{"node_id":14080831508667499826,"output_index":0,"lambda":false}},{"Node":{"node_id":17257434333682934071,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[406,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[6,[428.9444444444444,568.9444444444443]],[5,[332.5,581.8333333333333]],[4,[353.38888888888886,444.5]],[2,[380.6371742112481,265.1035665294926]],[1,[401.70713305898494,260.36282578875165]],[3,[369.7510288065844,308.3847736625514]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[6,6],[5,5],[2,2],[4,4],[1,1],[3,3]],"end_point":[[3,4],[4,5],[6,1],[2,3],[5,6],[1,2]],"handle_primary":[[3,[-1.3105663299890011,14.89279920442118]],[5,[0.0,0.0]],[2,[-10.643715697978225,7.851921416541302]],[6,[0.0,0.0]],[1,[-10.359396433470463,-3.160493827160451]],[4,[-5.333333333333314,40.0]]],"handle_end":[[2,[0.9657064471879266,-10.97393689986285]],[3,[5.333333333333314,-40.0]],[4,[4.0,-30.666666666666742]],[1,null],[6,[0.0,0.0]],[5,[0.0,0.0]]],"stroke":[[5,0],[3,0],[2,0],[4,0],[6,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[9286544882258200464,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[455.2160493827161,586.837448559671]],[2,[472.818244170096,545.5973936899862]],[4,[464.82921810699577,552.1378600823044]],[1,[480.8950617283949,532.7798353909467]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[2,2],[4,4]],"end_point":[[1,2],[2,3],[3,4],[4,1]],"handle_primary":[[1,[0.0,0.0]],[2,[-5.249967385837806,9.166609721304098]],[4,[4.236143848022095,-8.765075372687306]],[3,[0.0,0.0]]],"handle_end":[[4,[-3.58969669257732,1.843621399176868]],[2,[0.0,0.0]],[1,[5.530864197530832,-9.657064471879266]],[3,[-10.501290993452583,21.72839506172852]]],"stroke":[[4,0],[2,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[266,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[2,[903.0185185185188,539.9074074074074]],[5,[916.9444444444443,525.3888888888889]],[3,[907.9074074074074,539.3148148148149]],[8,[877.5736601163951,577.8827160493829]],[4,[906.574074074074,531.3148148148149]],[7,[902.8209876543212,578.672839506173]],[1,[890.376543209877,558.3271604938273]],[6,[931.067901234568,549.8333333333334]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[7,7],[5,5],[2,2],[6,6],[1,1],[3,3],[4,4],[8,8]],"end_point":[[8,1],[5,6],[3,4],[2,3],[6,7],[7,8],[1,2],[4,5]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[6,[0.0,0.0]],[7,[0.0,0.0]],[5,[12.296296296296418,0.14814814814803867]],[3,[0.0,0.0]],[8,[0.0,0.0]],[4,[0.05385802469163536,0.0]]],"handle_end":[[4,[-3.0120068298679143,-0.036289238914037014]],[5,[0.0,0.0]],[7,[0.0,0.0]],[1,[-16.592592592592723,23.703703703703923]],[2,[0.0,0.0]],[8,[0.0,0.0]],[3,[0.2962962962964184,4.888888888889028]],[6,[0.0,0.0]]],"stroke":[[2,0],[8,0],[6,0],[3,0],[5,0],[1,0],[7,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[126,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"remove":[],"delta":[[15,[196.05555555555557,678.8209876543209]],[1,[83.98971193415636,727.8086419753087]],[16,[211.0679012345679,719.5123456790124]],[6,[123.75925925925928,720.3024691358024]],[17,[209.09259259259255,727.8086419753085]],[3,[94.12962962962963,696.9938271604938]],[7,[131.06790123456793,702.1296296296296]],[13,[177.0925925925926,696.4012345679012]],[8,[148.8456790123457,665.3888888888888]],[11,[162.67283950617286,705.2901234567901]],[2,[79.11728395061729,724.0555555555555]],[10,[158.3271604938272,661.4382716049382]],[4,[102.03086419753087,696.7962962962963]],[14,[188.5493827160494,680.4012345679012]],[9,[158.40763603109284,655.1124066453283]],[12,[169.3888888888889,709.0432098765432]],[5,[115.66049382716052,719.5123456790124]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"remove":[],"start_point":[[7,7],[10,10],[12,12],[1,1],[11,11],[8,8],[9,9],[17,17],[2,2],[15,15],[16,16],[13,13],[14,14],[4,4],[5,5],[6,6],[3,3]],"end_point":[[9,10],[7,8],[1,2],[3,4],[17,1],[14,15],[4,5],[15,16],[6,7],[12,13],[16,17],[8,9],[11,12],[10,11],[13,14],[5,6],[2,3]],"handle_primary":[[9,[1.416857186404485,0.2219173906416927]],[3,[2.3703703703704093,-2.5679012345678984]],[17,[-3.028806584362002,2.897119341564121]],[2,[3.2490948717098007,-6.29142916067417]],[7,[2.962962962962962,-6.320987654321016]],[4,[3.753086419753103,4.9382716049382225]],[14,[2.3703703703703525,-2.5679012345678984]],[8,[2.172839506172835,-5.3333333333332575]],[15,[2.370370370370381,3.950617283950692]],[6,[0.0,0.0]],[11,[0.0,0.0]],[16,[0.0,0.0]],[5,[0.9523778763475974,1.643318688599834]],[13,[3.555555555555543,-7.308641975308547]],[1,[-3.7139917695473343,-0.22427983539080287]],[12,[0.0,0.0]],[10,[-0.24572721430195088,3.082066920469856]]],"handle_end":[[11,[-4.148148148148152,-0.39506172839503506]],[16,[3.77785186523289,-3.613597436310215]],[8,[-2.3218581751052625,-0.3636645334502191]],[14,[-2.370370370370381,-3.950617283950692]],[4,[-1.119341563786023,-1.9314128943758533]],[3,[-3.753086419753074,-4.9382716049382225]],[12,[-3.5555555555555713,7.308641975308547]],[6,[-2.962962962962962,6.320987654321016]],[9,[0.31458619112936503,-3.9457399786616634]],[2,[-2.3703703703703525,2.5679012345678984]],[7,[-2.172839506172835,5.3333333333332575]],[5,[-4.148148148148167,0.5925925925926094]],[17,[4.846281557722946,0.29265633783461453]],[15,[-3.753086419753089,-24.493827160493765]],[10,[1.1851851851851904,-8.296296296296305]],[1,[-2.4142661179698734,4.6748971193414945]],[13,[-2.370370370370381,2.5679012345678984]]],"stroke":[[1,0],[3,0],[2,0],[16,0],[13,0],[11,0],[7,0],[5,0],[14,0],[6,0],[4,0],[12,0],[9,0],[15,0],[10,0],[17,0],[8,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":17}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[16164610528699022118,{"inputs":[{"Node":{"node_id":7134154821675013808,"output_index":0,"lambda":false}},{"Node":{"node_id":12875520257830460085,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[600590258445096812,{"inputs":[{"Node":{"node_id":9778003574990260202,"output_index":0,"lambda":false}},{"Node":{"node_id":12435496696188763850,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[188,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[1,[1027.3333333333333,523.5555555555555]],[3,[1026.2777777777778,610.4999999999999]],[2,[987.6111111111112,593.3888888888889]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[2,2],[3,3],[1,1]],"end_point":[[2,3],[1,2],[3,1]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[28.22222222222217,-65.11111111111109]],[2,[-16.66666666666663,0.22222222222228535]]],"stroke":[[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[3885641499621884510,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":600590258445096812,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[421,{"inputs":[{"Node":{"node_id":422,"output_index":0,"lambda":false}},{"Node":{"node_id":424,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[79,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":493,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[250,{"inputs":[{"Node":{"node_id":254,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.50980395,"green":0.26666668,"blue":0.2,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6377392483726765,0.3630996922378644],"end":[0.6306417402456479,0.9306187973093224],"transform":[632.5762009234635,-34.77347770644815,7.911125258864406,143.91397960043895,1102.6156431423424,426.6593636915554]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.50980395,"green":0.26666668,"blue":0.2,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6377392483726765,0.3630996922378644],"end":[0.6306417402456479,0.9306187973093224],"transform":[632.5762009234635,-34.77347770644815,7.911125258864406,143.91397960043895,1102.6156431423424,426.6593636915554]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[281,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[2,[998.8209876543212,150.42592592592595]],[7,[926.7222222222222,528.7962962962963]],[5,[923.3641975308644,158.72222222222226]],[8,[1026.2777777777776,592.5]],[1,[1026.168038408779,250.70576131687224]],[4,[929.6851851851852,121.58641975308646]],[3,[972.746913580247,118.22839506172843]],[6,[923.4629629629628,289.38888888888886]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[3,3],[6,6],[1,1],[8,8],[5,5],[4,4],[2,2],[7,7]],"end_point":[[7,8],[1,2],[6,7],[5,6],[3,4],[4,5],[2,3],[8,1]],"handle_primary":[[7,[0.0,0.0]],[4,[-5.135802469135797,10.864197530864176]],[5,[0.0,11.061728395061747]],[2,[-4.543209876543415,-11.06172839506172]],[6,[0.2962962962964184,19.259259259259295]],[3,[-17.77777777777783,-3.753086419753074]],[1,[-10.22770919067159,-29.761316872427727]],[8,[0.0,0.0]]],"handle_end":[[3,[5.135802469135797,-10.864197530864176]],[8,null],[5,[-0.2962962962964184,-19.259259259259295]],[2,[17.77777777777783,3.753086419753089]],[6,[-2.370370370370324,-53.03703703703695]],[1,[4.543209876543187,11.06172839506172]],[7,[0.0,0.0]],[4,[0.0,-11.061728395061747]]],"stroke":[[2,0],[3,0],[5,0],[1,0],[6,0],[4,0],[7,0],[8,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[5382879283978921947,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[740.3456790123458,588.2030178326476]],[4,[789.2187928669412,601.4967933823075]],[3,[794.0473251028808,582.3820301783265]],[5,[767.1831275720166,614.1625514403293]],[2,[755.3312757201647,586.2448559670783]],[6,[751.1172839506169,611.1776406035664]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[5,5],[2,2],[3,3],[6,6],[4,4],[1,1]],"end_point":[[6,1],[4,5],[2,3],[5,6],[3,4],[1,2]],"handle_primary":[[5,[-11.149519890260535,0.2794994541025062]],[1,[0.0,0.0]],[6,[0.0,0.0]],[2,[9.481481481481524,0.4824094931645959]],[3,[0.0,0.0]],[4,[-8.427983539094612,8.539557783673331]]],"handle_end":[[1,[-9.481481481481524,-0.4824094931645959]],[5,[0.0,0.0]],[3,[8.427983539094612,-8.539557783673331]],[6,[0.0,0.0]],[4,[11.149519890260535,-0.2794994541025062]],[2,[-9.305898491083669,-1.1412894375856697]]],"stroke":[[4,0],[5,0],[1,0],[6,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[312,{"inputs":[{"Node":{"node_id":316,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[5105625446268484763,{"inputs":[{"Node":{"node_id":9422094883894860610,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[989999757220954936,{"inputs":[{"Node":{"node_id":10544930474333783117,"output_index":0,"lambda":false}},{"Node":{"node_id":5105625446268484763,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[172,{"inputs":[{"Node":{"node_id":173,"output_index":0,"lambda":false}},{"Node":{"node_id":208,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[436,{"inputs":[{"Node":{"node_id":439,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.7490196,"green":0.3764706,"blue":0.19215687,"alpha":1.0}],[0.08176100628930963,{"red":0.827451,"green":0.42352942,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.84705883,"green":0.48235294,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0],"transform":[481.5000000000001,0.0,0.0,158.99999999999997,876.9999999999998,682.9999999999998]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.7490196,"green":0.3764706,"blue":0.19215687,"alpha":1.0}],[0.08176100628930963,{"red":0.827451,"green":0.42352942,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.84705883,"green":0.48235294,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0],"transform":[481.5000000000001,0.0,0.0,158.99999999999997,876.9999999999998,682.9999999999998]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[94,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1.0,0.5]],[4,[0.0,0.5]],[3,[0.5,1.0]],[1,[0.5,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[3,3],[4,4]],"end_point":[[2,3],[4,1],[3,4],[1,2]],"handle_primary":[[4,[0.0,-0.275892388889507]],[2,[0.0,0.27589238888950707]],[1,[0.27589238888950707,0.0]],[3,[-0.275892388889507,0.0]]],"handle_end":[[3,[0.0,0.27589238888950707]],[4,[-0.275892388889507,0.0]],[1,[0.0,-0.275892388889507]],[2,[0.27589238888950707,0.0]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[467,{"inputs":[{"Node":{"node_id":465,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Round"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false}],[327,{"inputs":[{"Node":{"node_id":331,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[218,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[6,[888.3518518518518,541.9814814814815]],[8,[891.0185185185185,531.9074074074074]],[7,[886.574074074074,540.0555555555557]],[1,[901.9820911446426,504.0199918711579]],[2,[890.7057613168722,514.4753086419753]],[4,[874.0473251028807,569.7181069958847]],[5,[880.5,566.7222222222222]],[3,[872.8621399176955,563.858024691358]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[4,4],[7,7],[2,2],[3,3],[1,1],[8,8],[6,6],[5,5]],"end_point":[[6,7],[3,4],[4,5],[7,8],[5,6],[2,3],[8,1],[1,2]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[-3.0946502057612406,7.835390946502002]],[6,[0.0,0.0]],[8,[0.0,0.0]],[5,[0.0,0.0]],[7,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[1,[3.0946502057612406,-7.835390946502002]],[3,[0.0,0.0]],[7,[0.0,0.0]],[6,[0.0,0.0]],[2,[7.111111111111086,-11.522633744855966]],[8,[-7.693415637860312,3.5987654320987303]],[5,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[6,0],[1,0],[7,0],[8,0],[5,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[78,{"inputs":[{"Node":{"node_id":79,"output_index":0,"lambda":false}},{"Node":{"node_id":477,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[451,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":471,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[109,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_nested_layers":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"remove":[],"delta":[[44,[1156.927131949119,259.8397940478278]],[17,[813.8591863638374,482.2087159882085]],[42,[1287.4125629165796,203.2961072952616]],[50,[1016.655293659099,296.810666155275]],[38,[1223.8009153199428,370.7524103701693]],[49,[1038.402865487009,182.635914058747]],[52,[939.3251404063708,207.7548507796705]],[12,[783.956275100461,383.2572641712176]],[46,[1098.7523773094597,263.6456191177121]],[29,[1205.8591685619167,441.9757081065748]],[4,[956.3057818366484,357.1601779777255]],[26,[1143.3348995566753,518.6358987999579]],[22,[1000.3446147881664,518.0922095042602]],[21,[990.5582074656068,498.5193948591411]],[32,[1323.839745728329,479.4902695097197]],[45,[1105.8203381535304,315.83979150469634]],[33,[1284.1504271423933,435.99512585389954]],[31,[1336.888288825075,539.8397813321702]],[43,[1210.2086829274988,227.76212560166044]],[36,[1387.451393324966,404.4611467034299]],[37,[1302.6358631961166,363.1407602304008]],[34,[1256.9659623575055,413.8640589204806]],[40,[1180.3057716641222,344.11163488097947]],[51,[994.3640325354912,266.3640655962009]],[2,[910.288570576692,217.7758226144784]],[9,[770.907732003715,320.7329951659761]],[11,[730.1310348263835,333.2378489670244]],[47,[1073.742669707363,200.0339715210751]],[16,[763.8397711596442,482.7524052839062]],[28,[1134.0921815298134,465.8980371172759]],[27,[1093.315484352482,509.93687006879384]],[14,[783.956275100461,458.8300762732051]],[30,[1277.62615559402,478.946580214022]],[15,[728.4999669392903,519.7232773913535]],[35,[1281.975669959602,393.04367149377714]],[6,[838.3252046702362,291.37377319829744]],[5,[914.9853953636192,333.78153826272217]],[39,[1145.5096567394662,398.4805644507546]],[1,[865.1205730638582,195.5865278374037]],[48,[1078.092184072945,124.46115941908752]],[23,[972.616460707581,519.7232773913535]],[8,[810.5970505896508,321.8203737573716]],[41,[1216.7329544758718,262.5582405263166]],[25,[1110.71354181481,529.509684713913]],[7,[758.9465674983644,277.2378515101559]],[3,[943.8009280356002,277.78154080585364]],[19,[988.3834502828158,483.83978387530175]],[10,[670.8689015953286,344.1116348809794]],[13,[885.0824841002429,442.5193974022726]],[20,[969.8980142290924,494.7135697892568]],[24,[1014.480536476308,543.1019171063567]],[18,[909.5485024066418,487.10191964948825]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"remove":[],"start_point":[[32,32],[8,8],[42,42],[48,48],[1,1],[38,38],[34,34],[33,33],[19,19],[44,44],[18,18],[52,52],[41,41],[22,22],[49,49],[50,50],[3,3],[30,30],[14,14],[25,25],[10,10],[13,13],[37,37],[2,2],[29,29],[24,24],[47,47],[39,39],[46,46],[36,36],[26,26],[5,5],[16,16],[12,12],[6,6],[11,11],[21,21],[4,4],[45,45],[35,35],[9,9],[31,31],[20,20],[17,17],[23,23],[7,7],[43,43],[40,40],[28,28],[51,51],[27,27],[15,15]],"end_point":[[33,34],[11,12],[9,10],[42,43],[34,35],[8,9],[37,38],[52,1],[43,44],[5,6],[3,4],[44,45],[36,37],[20,21],[16,17],[18,19],[47,48],[41,42],[4,5],[21,22],[12,13],[25,26],[49,50],[26,27],[30,31],[45,46],[29,30],[23,24],[10,11],[38,39],[31,32],[13,14],[32,33],[6,7],[28,29],[39,40],[7,8],[2,3],[19,20],[27,28],[50,51],[51,52],[35,36],[22,23],[40,41],[46,47],[24,25],[15,16],[17,18],[48,49],[14,15],[1,2]],"handle_primary":[[18,[18.485436053723447,-2.7184464784887723]],[51,[-18.48543605372367,-25.009707602096626]],[27,[0.0,0.0]],[41,[15.427586663144211,-29.493915679540574]],[37,[-48.38834731709994,-2.174757182791041]],[33,[-13.048543096746243,-19.57281464511908]],[20,[0.0,0.0]],[1,[0.0,0.0]],[17,[31.53397915046969,11.961164505350553]],[30,[26.097086193492032,5.436892956977488]],[15,[0.0,0.0]],[52,[-26.097086193492142,-12.504853801048256]],[43,[-16.310678870932634,13.048543096746071]],[49,[-10.873785913954862,28.81553267198086]],[42,[0.0,0.0]],[34,[0.0,0.0]],[31,[0.0,0.0]],[14,[-44.03883295151786,20.11650394081687]],[16,[14.13592168814148,-1.631067887093252]],[13,[0.0,0.0]],[12,[41.864075768726934,30.606794749262978]],[28,[0.0,0.0]],[8,[0.0,0.0]],[11,[26.097086193492142,5.980582252675276]],[25,[14.679610983839666,-8.155339435466317]],[10,[0.0,0.0]],[23,[0.0,0.0]],[44,[-21.74757182791018,14.135921688141591]],[45,[0.0,0.0]],[40,[12.504853801048512,-14.135921688141591]],[19,[0.0,0.0]],[48,[0.0,0.0]],[36,[0.0,0.0]],[35,[8.699028731163935,-10.3300966182573]],[21,[0.0,0.0]],[5,[-19.02912534942118,-15.766989575234843]],[38,[-17.941746758026056,-1.0873785913955205]],[32,[-24.466018306398837,-28.81553267198086]],[39,[0.0,0.0]],[4,[0.0,0.0]],[7,[0.0,0.0]],[9,[-26.64077548918988,2.7184464784887723]],[2,[16.937999067312603,14.3156740497256]],[46,[-6.524271548372781,-16.310678870932577]],[47,[-1.6310678870931952,-7.611650139768528]],[29,[20.116503940816983,1.631067887093252]],[3,[7.06796084407074,48.3883473171]],[6,[-25.00970760209657,-1.0873785913954634]],[22,[0.0,0.0]],[26,[0.0,0.0]],[50,[0.0,0.0]],[24,[39.145629290237935,9.786407322559626]]],"handle_end":[[20,[-4.8932036612795855,-5.980582252675276]],[1,[-14.628148339931158,-12.363432230293256]],[15,[-14.13592168814148,1.631067887093252]],[48,[10.87378591395509,-28.81553267198086]],[13,[44.03883295151786,-20.11650394081687]],[44,[0.0,0.0]],[9,[27.18446478488761,-22.291261123607853]],[46,[1.6310678870931952,7.611650139768528]],[2,[-7.067960844070626,-48.3883473171]],[43,[21.74757182791018,-14.135921688141565]],[50,[18.48543605372356,25.009707602096626]],[7,[-5.436892956977545,-19.029125349421292]],[18,[-11.41747520965282,-9.242718026861724]],[52,[21.791261123607796,0.5873785913955203]],[41,[-32.07766844616731,15.223300279537028]],[23,[-39.14562929023816,-9.786407322559626]],[19,[3.805825069884008,-5.436892956977601]],[51,[26.097086193492032,12.50485380104834]],[33,[0.0,0.0]],[26,[30.446600559074568,-5.980582252675276]],[21,[-4.3495143655819675,-3.262135774186504]],[27,[-8.15533943546643,25.00970760209657]],[35,[-71.76698703210332,-41.864075768726934]],[29,[-26.097086193492032,-5.436892956977488]],[17,[-18.48543605372356,2.7184464784887723]],[4,[19.02912534942141,15.766989575234843]],[14,[0.0,0.0]],[8,[26.64077548918988,-2.7184464784887723]],[25,[-12.504853801048284,-3.262135774186504]],[6,[0.0,0.0]],[47,[-22.83495041930587,36.42718281174942]],[34,[-8.699028731163935,10.330096618257244]],[28,[-20.11650394081721,-1.6310678870931952]],[5,[25.00970760209657,1.0873785913954634]],[11,[-41.864075768726934,-30.606794749263088]],[45,[6.524271548372553,16.310678870932577]],[3,[5.436892956977545,-25.553396897794357]],[40,[-18.48543605372356,35.33980422035398]],[37,[17.941746758026056,1.0873785913955205]],[22,[3.805825069884122,-4.3495143655819675]],[16,[-31.53397915046969,-11.961164505350553]],[38,[0.0,0.0]],[10,[-26.097086193492142,-5.980582252675276]],[30,[-0.5436892956979591,-24.46601830639895]],[12,[-31.533979150469577,-8.15533943546626]],[32,[13.048543096746243,19.57281464511908]],[24,[-14.67961098383944,8.155339435466317]],[36,[48.388347317099715,2.174757182790927]],[31,[24.466018306399064,28.81553267198086]],[42,[16.310678870932634,-13.048543096746071]],[39,[-9.034630967226803,10.21306109338667]],[49,[-5.98058225267539,-75.02912280628982]]],"stroke":[[1,0],[11,0],[14,0],[39,0],[46,0],[43,0],[35,0],[50,0],[41,0],[22,0],[15,0],[44,0],[51,0],[52,0],[21,0],[42,0],[40,0],[5,0],[30,0],[49,0],[26,0],[12,0],[31,0],[25,0],[9,0],[18,0],[10,0],[29,0],[27,0],[48,0],[3,0],[6,0],[17,0],[34,0],[32,0],[4,0],[13,0],[20,0],[8,0],[28,0],[24,0],[47,0],[23,0],[38,0],[37,0],[33,0],[7,0],[16,0],[19,0],[45,0],[36,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":52}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Network":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::vector::vector_modification::PathModifyNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}],[12325841371509826180,{"inputs":[{"Node":{"node_id":6980979116665635870,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.08732233199581252,0.5212000945774993],"end":[0.9287098983518448,0.5070261975055625],"transform":[139.824941251317,-21.014379437271643,45.64496496886203,416.4689172758892,1005.0,432.99999999999955]}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.08732233199581252,0.5212000945774993],"end":[0.9287098983518448,0.5070261975055625],"transform":[139.824941251317,-21.014379437271643,45.64496496886203,416.4689172758892,1005.0,432.99999999999955]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[140,{"inputs":[{"Node":{"node_id":143,"output_index":0,"lambda":false}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"OptionalColor":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5],"transform":[1.0,0.0,0.0,1.0,0.0,0.0]}},"exposed":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false}],[171,{"inputs":[{"Node":{"node_id":172,"output_index":0,"lambda":false}},{"Node":{"node_id":202,"output_index":0,"lambda":false}}],"manual_composition":null,"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0,"lambda":false}}],"nodes":[[0,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":0}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0,"lambda":false}},{"Node":{"node_id":3,"output_index":0,"lambda":false}}],"manual_composition":{"Generic":"T"},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0,"lambda":false}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0,"lambda":false}},{"Reflection":"DocumentNodePath"}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false}],[1,{"inputs":[{"Network":{"import_type":{"Generic":"T"},"import_index":1}}],"manual_composition":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[2489761779922717592,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[200,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[159,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[310,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3885641499621884510,{"persistent_metadata":{"reference":"Merge","display_name":"Rock Outcropping","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[36935169817407978,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,160]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6272196533192700024,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[174,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[102,{"persistent_metadata":{"reference":"Merge","display_name":"Agave Plant","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,19]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[449,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow Lower","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[439,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","y":"H","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[277,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[465,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[600590258445096812,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,169]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[451,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow Upper","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[477,{"persistent_metadata":{"reference":"Merge","display_name":"Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-15,253]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12435496696188763850,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[408,{"persistent_metadata":{"reference":"Merge","display_name":"Reflections","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12875520257830460085,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[175,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10544930474333783117,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[393,{"persistent_metadata":{"reference":"Merge","display_name":"Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,193]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[275,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[193,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9570557034533539493,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16821952675128396603,{"persistent_metadata":{"reference":"Merge","display_name":"Main Slope","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,157]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[323,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[169,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[232,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[103,{"persistent_metadata":{"reference":"Merge","display_name":"Right Plinth","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11279424538712841875,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12068777759187203228,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[485,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[497,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10278740841813346388,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[487,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[90,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[396,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[99,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17257434333682934071,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[450,{"persistent_metadata":{"reference":"Merge","display_name":"Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[260,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[427,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[79,{"persistent_metadata":{"reference":"Merge","display_name":"Sky","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[238,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[3707802522175443254,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[77,{"persistent_metadata":{"reference":"Merge","display_name":"Spike Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":33}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[430,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[83,{"persistent_metadata":{"reference":"Merge","display_name":"Stone Cluster","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1598976462838094167,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[18142347460553706128,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15552693212536925398,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[457,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-36,238]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[316,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14579754335592291854,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[424,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[208,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[126,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5714505144727602368,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[118,{"persistent_metadata":{"reference":"Merge","display_name":"Highlight","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[75,{"persistent_metadata":{"reference":"Merge","display_name":"Slab Spires","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":45}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[318,{"persistent_metadata":{"reference":"Merge","display_name":"Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,139]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[433,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[170,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[134,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17245613731534563958,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[164,{"persistent_metadata":{"reference":"Merge","display_name":"Center Slab Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":15}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[115,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5105625446268484763,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[445,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16164610528699022118,{"persistent_metadata":{"reference":"Merge","display_name":"Spike Spire Corner Slope","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-15,202]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[244,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16831252454255560063,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9286544882258200464,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[283,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[196,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[493,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[226,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14113040319560793790,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12717405604755313921,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[206,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9422094883894860610,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3930114406985796561,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1644624352314732667,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[413,{"persistent_metadata":{"reference":"Merge","display_name":"From Left Slab Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[411,{"persistent_metadata":{"reference":"Merge","display_name":"From Spike Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,217]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[312,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4452902364641883403,{"persistent_metadata":{"reference":"Merge","display_name":"Soft Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15848750910363784662,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[190,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[82,{"persistent_metadata":{"reference":"Merge","display_name":"Right Plinth","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[166,{"persistent_metadata":{"reference":"Merge","display_name":"Left Slab Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":33}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[220,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[321,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-53,139]}}},"network_metadata":null}}],[281,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-53,121]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[81,{"persistent_metadata":{"reference":"Merge","display_name":"Left Plinth","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-15,7]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[329,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15483449862348058100,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[306,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[224,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[259,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[406,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[93,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[172,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[402,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14335659566300901430,{"persistent_metadata":{"reference":"Merge","display_name":"Soft Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[434,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[96,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[300,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2999157202967297847,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[272,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[478,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[287,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[412,{"persistent_metadata":{"reference":"Merge","display_name":"From Center Slab Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[496,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17414691604179185270,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[398,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[400,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[415,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[446,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9778003574990260202,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16360261423333265502,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[262,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9603838021022368374,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[422,{"persistent_metadata":{"reference":"Merge","display_name":"Right Half","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4454263454059119441,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11472292186872186521,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,43]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[469,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[76,{"persistent_metadata":{"reference":"Merge","display_name":"Ground","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":144}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[143,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[250,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[202,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[7148230379224894975,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[256,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[111,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[266,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[491,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11807598261442997948,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1635416892097245588,{"persistent_metadata":{"reference":"Merge","display_name":"Shading","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[227,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[114,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","y":"H","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[88,{"persistent_metadata":{"reference":"Merge","display_name":"Left Plinth","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[171,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[394,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14205611254835578455,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,208]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12768614558324028960,{"persistent_metadata":{"reference":"Merge","display_name":"Slope","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[180,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11377169273880889832,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[467,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[419,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16894739051789815098,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[455,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[257,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[319,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[117,{"persistent_metadata":{"reference":"Merge","display_name":"Stones","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,28]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[453,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,238]}}},"network_metadata":null}}],[6873123446543957690,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[440,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[119,{"persistent_metadata":{"reference":"Merge","display_name":"Highlight","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[74,{"persistent_metadata":{"reference":"Merge","display_name":"Foreground","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-5,4]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[418,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[122,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[17173383864410319040,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[236,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[325,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-46,139]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10486443711686704000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[304,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[194,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[218,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[165,{"persistent_metadata":{"reference":"Merge","display_name":"Rocky Slope","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":15}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4633399390154487467,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[162,{"persistent_metadata":{"reference":"Merge","display_name":"Right Slab Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":60}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6710503329407068595,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,106]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5382879283978921947,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16815500381887058038,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":true,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":true,"y":"H","unit":" px"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-1,1]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[214,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[428,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[177,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[100,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[128,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[97478832511923699,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17020523203516467057,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[463,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[212,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[290,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12325841371509826180,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[138,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[94,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14433811491576609500,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[179,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[459,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[248,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5175066652268973319,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11155094820673141470,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6926019345498826421,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7134154821675013808,{"persistent_metadata":{"reference":"Merge","display_name":"Left Slope Shading","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[254,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15277819403265847073,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4913361824430066698,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[291,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1453710883947581217,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8861964493222160710,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[442,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[120,{"persistent_metadata":{"reference":"Merge","display_name":"Ground Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[475,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[140,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11891167879168294182,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[230,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[176,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[168,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,58]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[989999757220954936,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[448,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow Fissure","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-15,238]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[421,{"persistent_metadata":{"reference":"Merge","display_name":"Left Half","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,223]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[78,{"persistent_metadata":{"reference":"Merge","display_name":"Distant Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":12}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14080831508667499826,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6980979116665635870,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","is_integer":false,"unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[173,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[327,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6015109908395573189,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","x":"X","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13606781735926093266,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[181,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[481,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[188,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[404,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[87,{"persistent_metadata":{"reference":"Merge","display_name":"Ball","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,10]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[184,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[436,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[191,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11427960919145580782,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[85,{"persistent_metadata":{"reference":"Merge","display_name":"Left Slope","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":21}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[178,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[132,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[144,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[471,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[268,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[229,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[161,{"persistent_metadata":{"reference":"Merge","display_name":"Rocky Outcropping","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-15,55]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[274,{"persistent_metadata":{"reference":"Merge","display_name":"Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,121]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11345069121502219134,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[331,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17911294938421300842,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[409,{"persistent_metadata":{"reference":"Merge","display_name":"Ground","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":15}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5364427239360309137,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[292,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[108,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7135480377162524224,{"persistent_metadata":{"reference":"Transform","display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3719764965605527929,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[155,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[242,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[105,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[109,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[182,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"has_primary_output":true,"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[459.0,-501.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1450.0,80.0],"node_graph_top_right":[1468.796875,0.0]},"selection_undo_history":[[],[],[]],"selection_redo_history":[]}}},"collapsed":[],"name":"valley-of-spires.graphite","commit_hash":"","document_ptz":{"pan":[-507.74999999999994,-385.9351851851852],"tilt":0.0,"zoom":1.0,"flip":false},"document_mode":"DesignMode","view_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file +{"network_interface":{"network":{"exports":[{"Node":{"node_id":16815500381887058038,"output_index":0}}],"nodes":[[202,{"inputs":[{"Node":{"node_id":206,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[404,{"inputs":[{"Node":{"node_id":402,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[93,{"inputs":[{"Node":{"node_id":94,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[851.1666666666667,668.5377104806669]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[39.677869315599935,39.67786931560005]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[155,{"inputs":[{"Node":{"node_id":159,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.7529412,"green":0.34117648,"blue":0.2,"alpha":1.0}],[1.0,{"red":0.6431373,"green":0.31764707,"blue":0.21176471,"alpha":1.0}]],"gradient_type":"Linear","start":[0.9001916129448388,0.7881778212017586],"end":[0.8902470335613286,0.6662432828529555]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.7529412,"green":0.34117648,"blue":0.2,"alpha":1.0}],[1.0,{"red":0.6431373,"green":0.31764707,"blue":0.21176471,"alpha":1.0}]],"gradient_type":"Linear","start":[0.9001916129448388,0.7881778212017586],"end":[0.8902470335613286,0.6662432828529555]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[497,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1.0,0.0]],[3,[1.0,1.0]],[4,[0.0,1.0]],[1,[0.0,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3]],"end_point":[[4,1],[3,4],[2,3],[1,2]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[4,0],[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[8861964493222160710,{"inputs":[{"Node":{"node_id":16894739051789815098,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":0.0390625}]],"gradient_type":"Radial","start":[0.49999999999999994,0.5000000000000009],"end":[0.9003149237651733,0.5000000000000009]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":0.0390625}]],"gradient_type":"Radial","start":[0.49999999999999994,0.5000000000000009],"end":[0.9003149237651733,0.5000000000000009]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[248,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"delta":[[17,[915.067901234568,618.7716049382716]],[14,[944.3024691358024,613.8333333333334]],[1,[866.5679012345681,572.641975308642]],[18,[884.845679012346,621.141975308642]],[15,[935.0185185185186,608.3024691358025]],[8,[1025.882716049383,576.7015952852717]],[9,[1026.277777777778,628.0555555555557]],[6,[944.141561350963,527.7098765432099]],[12,[965.0432098765434,605.3395061728396]],[19,[867.9970278920896,620.4835390946502]],[5,[923.956790123457,545.6851851851852]],[16,[922.574074074074,606.9197530864199]],[2,[890.3765432098768,558.3271604938273]],[20,[850.4753086419754,600.0720164609053]],[11,[991.9074074074076,607.667262767384]],[10,[999.8086419753088,626.6728395061729]],[7,[986.8703703703704,552.6481481481483]],[4,[898.8703703703707,571.5617283950618]],[3,[884.6481481481485,571.7592592592594]],[13,[955.9567901234568,612.4506172839507]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"start_point":[[7,7],[13,13],[12,12],[19,19],[3,3],[4,4],[14,14],[15,15],[17,17],[1,1],[11,11],[18,18],[20,20],[9,9],[16,16],[5,5],[6,6],[2,2],[8,8],[10,10]],"end_point":[[20,1],[18,19],[11,12],[10,11],[1,2],[17,18],[9,10],[7,8],[12,13],[3,4],[13,14],[15,16],[2,3],[14,15],[19,20],[4,5],[8,9],[6,7],[16,17],[5,6]],"handle_primary":[[15,[0.0,0.0]],[5,[0.0,0.5925925925926094]],[18,[0.0,0.0]],[4,[0.0,0.0]],[19,[-11.881115683584769,-0.11705532693190436]],[11,[0.0,0.0]],[14,[0.0,0.0]],[17,[0.0,0.0]],[8,[0.0,0.0]],[2,[0.0,0.0]],[12,[0.0,0.0]],[16,[0.0,0.0]],[7,[22.254029366644772,13.337995427526266]],[9,[0.0,0.0]],[13,[0.0,0.0]],[20,[0.0,0.0]],[6,[0.0,0.0]],[10,[-2.96296296296282,-1.1851851851851052]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[18,[11.881115683584769,0.11705532693190436]],[10,[0.3950617283951487,3.117880051334623]],[20,[0.0,0.0]],[2,[0.5925925925926094,-3.555555555555543]],[11,[18.567901234567785,4.543209876543301]],[13,[2.1728395061727497,0.39506172839503506]],[15,[5.135802469136024,0.9876543209877582]],[17,[20.5432098765433,0.1975308641974607]],[1,[-10.271604938271707,4.543209876543187]],[14,[4.740740740740762,0.7901234567901838]],[8,[0.0,0.0]],[4,[-7.703703703703809,15.604938271604851]],[3,[-8.69135802469134,0.39506172839503506]],[5,[0.0,0.0]],[9,[2.962962962963047,1.1851851851851052]],[19,[0.0,0.0]],[12,[2.7654320987655865,-2.7624450928566375]],[16,[2.3703703703704377,-1.7777777777778283]],[7,[0.0,0.0]],[6,[-11.851851851851848,-16.036008230452808]]],"stroke":[[6,0],[8,0],[1,0],[11,0],[20,0],[16,0],[9,0],[17,0],[12,0],[2,0],[18,0],[15,0],[5,0],[13,0],[7,0],[10,0],[3,0],[14,0],[4,0],[19,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":20}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[419,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,1.0]],[3,[1.0,1.0]],[1,[0.0,0.0]],[2,[1.0,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[3,3],[1,1],[2,2]],"end_point":[[4,1],[2,3],[1,2],[3,4]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[1,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[77,{"inputs":[{"Node":{"node_id":78,"output_index":0}},{"Node":{"node_id":448,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[108,{"inputs":[{"Node":{"node_id":109,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[858.7905598373798,601.6041802310946]},"exposed":false}},{"Value":{"tagged_value":{"F64":7.016709876377979e-15},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.1014123874504275,0.11427520552998474]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[7.90668593248704e-15,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[450,{"inputs":[{"Node":{"node_id":451,"output_index":0}},{"Node":{"node_id":467,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[481,{"inputs":[{"Node":{"node_id":485,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.8980392,"green":0.67058825,"blue":0.28235295,"alpha":1.0}],[1.0,{"red":0.73333335,"green":0.3764706,"blue":0.2,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5563229660866629,0.005130077289715984],"end":[0.5563229660866629,0.9884201225302]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.8980392,"green":0.67058825,"blue":0.28235295,"alpha":1.0}],[1.0,{"red":0.73333335,"green":0.3764706,"blue":0.2,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5563229660866629,0.005130077289715984],"end":[0.5563229660866629,0.9884201225302]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[310,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[2,[734.9571457603006,587.5194584158918]],[1,[744.3996087994717,586.9732002235432]],[5,[710.9477975918305,613.6358024691357]],[7,[779.7592592592597,612.6204267490609]],[6,[729.3449931412895,610.3875171467763]],[3,[698.0912208504803,600.3792866941013]],[4,[706.1680384087791,607.8415637860082]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[1,1],[6,6],[3,3],[2,2],[4,4],[5,5],[7,7]],"end_point":[[5,6],[3,4],[2,3],[6,7],[1,2],[7,1],[4,5]],"handle_primary":[[3,[0.0,0.0]],[2,[0.0,0.0]],[6,[15.119646395366544,2.853223593964344]],[4,[2.1947873799731497,4.691071467853249]],[1,[0.0,0.0]],[5,[7.452522481329197,2.721536351166037]],[7,[0.0,0.0]]],"handle_end":[[3,[-2.494608558449272,-5.331900091455282]],[2,[6.496570644718986,-11.149519890260422]],[6,[0.0,0.0]],[5,null],[1,[0.0,0.0]],[7,[9.28638926992835,13.56378600823075]],[4,null]],"stroke":[[1,0],[4,0],[3,0],[7,0],[5,0],[2,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[170,{"inputs":[{"Node":{"node_id":171,"output_index":0}},{"Node":{"node_id":196,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4913361824430066698,{"inputs":[{"Node":{"node_id":11807598261442997948,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14080831508667499826,{"inputs":[{"Node":{"node_id":11377169273880889832,"output_index":0}},{"Node":{"node_id":14113040319560793790,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[232,{"inputs":[{"Node":{"node_id":236,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[434,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1.0069833844920426,0.9999999999999988]],[2,[0.8076864692090735,-0.4339622641509434]],[1,[0.5926327057682128,-0.43396226415094336]],[4,[0.4436233919998075,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[1,1],[4,4],[3,3]],"end_point":[[2,3],[3,4],[1,2],[4,1]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[4,0],[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[465,{"inputs":[{"Node":{"node_id":469,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.8784314,"green":0.63529414,"blue":0.24313726,"alpha":1.0}],[1.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.543973941368078,0.19174161896974656],"end":[0.373641330960254,0.5573628465419693]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.8784314,"green":0.63529414,"blue":0.24313726,"alpha":1.0}],[1.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.543973941368078,0.19174161896974656],"end":[0.373641330960254,0.5573628465419693]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7148230379224894975,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"delta":[[12,[513.3888888888889,585.5544307531777]],[16,[478.9197530864198,618.6875095259874]],[9,[510.261316872428,573.2078189300412]],[13,[516.8017832647463,593.4437585733884]],[11,[504.00617283950623,588.9444444444446]],[19,[468.05555555555594,550.6710486206383]],[3,[488.5329218106997,551.6587029416252]],[17,[448.3683127572017,617.6340115836006]],[20,[480.89506172839504,532.4323654930657]],[10,[496.50000000000006,582.6234567901236]],[15,[496.30246913580254,612.3006782502672]],[4,[500.77983539094663,544.0208428593207]],[14,[496.49999999999994,603.4117893613783]],[18,[438.2283950617284,585.5544307531777]],[8,[502.6234567901235,563.1154930650816]],[1,[506.7057613168725,531.9348803536052]],[7,[495.90740740740733,567.882982777016]],[6,[490.17901234567904,556.0043819539711]],[2,[497.8388203017833,534.5393613778391]],[5,[500.4506172839507,547.5105547934772]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"start_point":[[13,13],[10,10],[9,9],[5,5],[18,18],[19,19],[11,11],[14,14],[8,8],[17,17],[15,15],[3,3],[12,12],[7,7],[20,20],[6,6],[1,1],[16,16],[2,2],[4,4]],"end_point":[[2,3],[19,20],[8,9],[1,2],[20,1],[13,14],[7,8],[4,5],[6,7],[18,19],[3,4],[14,15],[9,10],[15,16],[16,17],[11,12],[5,6],[12,13],[10,11],[17,18]],"handle_primary":[[11,[0.0,0.0]],[8,[0.0,0.0]],[3,[4.565157750342848,-4.301783264746064]],[13,[0.0,0.0]],[5,[-6.737997256515712,3.1824417009599983]],[7,[0.0,0.0]],[10,[0.0,0.0]],[9,[0.0,0.0]],[15,[0.0,0.0]],[17,[0.0,0.0]],[12,[0.0,0.0]],[6,[0.0,0.0]],[19,[0.0,0.0]],[1,[0.0,0.0]],[14,[0.0,0.0]],[2,[-7.188100137174104,2.6138545953361927]],[4,null],[18,[0.0,0.0]],[16,[0.0,0.0]],[20,[7.46503467504715,-4.02781143068205]]],"handle_end":[[8,[-1.7777777777777717,-5.728395061728406]],[15,[0.0,0.0]],[4,null],[17,[0.0,0.0]],[10,[-2.765432098765416,-3.555555555555543]],[20,[0.0,0.0]],[16,[0.0,0.0]],[3,null],[18,[0.0,0.0]],[9,[6.716049382716108,-8.49382716049422]],[6,[-2.508333333333439,-2.0902777777778283]],[13,[0.0,0.0]],[5,[0.0,0.0]],[14,[-0.7901234567900701,-4.938271604938336]],[7,[-3.6872427983540206,1.4485596707820605]],[12,[-0.39506172839503506,-1.975308641975289]],[2,[0.27087722942241044,-5.120145445603839]],[19,[-3.394604481024089,3.2873037646699004]],[11,[-3.851851851851848,0.7581344568814075]],[1,[3.4386245260820374,-1.250408918575317]]],"stroke":[[11,0],[10,0],[17,0],[16,0],[15,0],[18,0],[2,0],[12,0],[6,0],[14,0],[19,0],[20,0],[1,0],[8,0],[9,0],[5,0],[4,0],[13,0],[3,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":20}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[325,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9],"remove":[],"delta":[[6,[619.8333333333333,207.83333333333331]],[1,[744.0,592.0]],[9,[677.1666666666666,609.1666666666666]],[5,[660.5,187.83333333333331]],[3,[708.5,335.16666666666663]],[2,[733.1666666666666,489.16666666666663]],[4,[695.8333333333333,239.16666666666663]],[7,[619.8333333333333,577.1666666666666]],[8,[631.8333333333333,608.5]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9],"remove":[],"start_point":[[2,2],[5,5],[6,6],[3,3],[7,7],[8,8],[1,1],[9,9],[4,4]],"end_point":[[6,7],[4,5],[5,6],[9,1],[1,2],[2,3],[3,4],[7,8],[8,9]],"handle_primary":[[4,[-3.3333333333332575,-21.33333333333331]],[2,[-4.666666666666629,-50.666666666666686]],[1,[0.0,0.0]],[7,[0.0,12.666666666666742]],[8,[12.666666666666742,4.666666666666629]],[6,[0.0,16.666666666666686]],[9,[18.66666666666663,-5.3333333333332575]],[5,[-36.0,-6.666666666666686]],[3,[-6.6666666666667425,-57.333333333333314]]],"handle_end":[[5,[0.0,-16.666666666666686]],[9,[0.0,0.0]],[7,[-12.666666666666742,-4.666666666666629]],[8,[-18.66666666666663,5.3333333333332575]],[3,[3.3333333333332575,21.33333333333331]],[6,[0.0,-12.666666666666742]],[1,[4.666666666666629,50.66666666666663]],[2,[6.6666666666667425,57.333333333333314]],[4,[36.0,6.666666666666657]]],"stroke":[[5,0],[1,0],[8,0],[9,0],[4,0],[7,0],[6,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":9}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[496,{"inputs":[{"Node":{"node_id":497,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1024.0,600.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11377169273880889832,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14433811491576609500,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11891167879168294182,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[112.52194787379976,598.7990397805213]],[6,[119.98422496570645,609.4218106995885]],[4,[126.900438957476,611.0020576131687]],[2,[104.00617283950618,624.6097393689986]],[5,[118.93072702331962,598.7990397805213]],[3,[148.91152263374485,614.1625514403293]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[1,1],[2,2],[5,5],[3,3],[4,4],[6,6]],"end_point":[[1,2],[6,1],[5,6],[4,5],[3,4],[2,3]],"handle_primary":[[3,null],[6,[-4.477366255144005,-1.843621399176868]],[1,[-2.370370370370395,22.25514403292175]],[2,[0.0,0.0]],[4,[-2.058260034882977,-0.6051267923739942]],[5,[0.0,0.0]]],"handle_end":[[5,[0.7023319615912413,-1.9314128943758533]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[-21.11385459533605,1.053497942386798]],[3,null],[6,[0.0,0.0]]],"stroke":[[4,0],[3,0],[1,0],[2,0],[5,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[76,{"inputs":[{"Node":{"node_id":77,"output_index":0}},{"Node":{"node_id":16164610528699022118,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[418,{"inputs":[{"Node":{"node_id":419,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[83.16666666666677,614.179527199694]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[294.3945373546583,138.32047280030588]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[449,{"inputs":[{"Node":{"node_id":450,"output_index":0}},{"Node":{"node_id":6015109908395573189,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14113040319560793790,{"inputs":[{"Node":{"node_id":9603838021022368374,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[138,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[105.84979423868312,685.0102880658435]],[4,[116.38477366255144,723.5946502057614]],[3,[90.17901234567904,708.7139917695472]],[1,[126.55144032921808,714.7983539094649]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[3,3],[1,1]],"end_point":[[3,4],[2,3],[4,1],[1,2]],"handle_primary":[[3,[-2.4237705319430347,10.543401813951732]],[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[16.460905349794245,13.695473251028716]],[2,[2.6337448559670804,-11.456790123456472]],[3,[0.0,0.0]],[4,[3.6604938271605647,11.166666666666742]]],"stroke":[[3,0],[1,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[169,{"inputs":[{"Node":{"node_id":170,"output_index":0}},{"Node":{"node_id":190,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[200,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[5,[990.3271604938273,558.7222222222222]],[4,[972.0555555555557,547.0185185185185]],[6,[988.3518518518518,565.8333333333333]],[9,[1001.2407407407406,568.2037037037037]],[2,[993.9814814814814,530.7222222222222]],[7,[988.9444444444443,571.9567901234568]],[3,[974.574074074074,539.3148148148148]],[1,[1004.392496062592,536.8475080018289]],[8,[994.0802469135804,561.8388203017832]],[10,[1010.492379210486,553.0791800030486]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[4,4],[5,5],[1,1],[2,2],[6,6],[7,7],[9,9],[8,8],[10,10],[3,3]],"end_point":[[6,7],[7,8],[9,10],[4,5],[2,3],[5,6],[3,4],[8,9],[1,2],[10,1]],"handle_primary":[[6,[0.0,0.0]],[5,[1.1368683772161605e-13,0.0]],[7,[0.0,0.0]],[1,[0.0,0.0]],[9,[0.0,0.0]],[2,[0.0,0.0]],[10,[0.0,0.0]],[3,[0.0,0.0]],[8,[0.0,0.0]],[4,[5.818749999999909,2.0456767733078323]]],"handle_end":[[9,[0.0,0.0]],[3,[5.171433893884796,-5.185320665887616]],[10,[2.600823045267589,7.538372631948732]],[5,[0.0,0.0]],[1,[0.0,0.0]],[8,[1.1368683772161605e-13,0.0]],[6,[0.0,0.0]],[7,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[4,0],[7,0],[10,0],[6,0],[8,0],[3,0],[2,0],[5,0],[1,0],[9,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6015109908395573189,{"inputs":[{"Node":{"node_id":459,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-8.0,2.6666666666000083]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[402,{"inputs":[{"Node":{"node_id":406,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15552693212536925398,{"inputs":[{"Node":{"node_id":1598976462838094167,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.328125,"green":0.19633627,"blue":0.17047119,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3458831403130609,0.8154173283216788],"end":[0.29832402234636923,0.9999999999999992]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.328125,"green":0.19633627,"blue":0.17047119,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3458831403130609,0.8154173283216788],"end":[0.29832402234636923,0.9999999999999992]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[262,{"inputs":[{"Node":{"node_id":266,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[433,{"inputs":[{"Node":{"node_id":434,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[628.6154039265571,697.6163522012579]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[206.6666666666667,70.66666666666666]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[122,{"inputs":[{"Node":{"node_id":126,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.5,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.8261898755429384,0.6803505808618764],"end":[0.9730393010117852,0.6150128281109604]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.5,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.8261898755429384,0.6803505808618764],"end":[0.9730393010117852,0.6150128281109604]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7135480377162524224,{"inputs":[{"Node":{"node_id":487,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[28.82327697714288,-49.808276940773226]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.29474475571},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[184,{"inputs":[{"Node":{"node_id":188,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[75,{"inputs":[{"Node":{"node_id":76,"output_index":0}},{"Node":{"node_id":161,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[277,{"inputs":[{"Node":{"node_id":1453710883947581217,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.92156863,"green":0.7294118,"blue":0.2784314,"alpha":1.0}],[1.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}]],"gradient_type":"Linear","start":[1.0246769250512615,0.027819435424882025],"end":[0.2667933279762451,0.9665428076110212]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.92156863,"green":0.7294118,"blue":0.2784314,"alpha":1.0}],[1.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}]],"gradient_type":"Linear","start":[1.0246769250512615,0.027819435424882025],"end":[0.2667933279762451,0.9665428076110212]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[448,{"inputs":[{"Node":{"node_id":449,"output_index":0}},{"Node":{"node_id":455,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11155094820673141470,{"inputs":[{"Node":{"node_id":97478832511923699,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.08732233199581252,0.5212000945774993],"end":[0.9287098983518448,0.5070261975055625]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.08732233199581252,0.5212000945774993],"end":[0.9287098983518448,0.5070261975055625]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17257434333682934071,{"inputs":[{"Node":{"node_id":13606781735926093266,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[168,{"inputs":[{"Node":{"node_id":169,"output_index":0}},{"Node":{"node_id":184,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[230,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[0.935534758874228,0.06746859421299994]],[1,[-0.03624142718978522,-0.003682959682299257]],[3,[1.134036317002156,1.0722882682186752]],[4,[0.2700473236113544,1.0652669412541609]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[4,4],[3,3],[2,2]],"end_point":[[2,3],[4,1],[1,2],[3,4]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[3,0],[4,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[90,{"inputs":[{"Node":{"node_id":93,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.5999119243817099,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.3201759714645238,0.5902044022091868],"end":[1.025282605251574,0.18308301136073535]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.5999119243817099,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.3201759714645238,0.5902044022091868],"end":[1.025282605251574,0.18308301136073535]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[463,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[129.38888888888889,628.0555555555557]],[3,[80.05555555555559,484.94444444444446]],[1,[-4.833333333333348,600.0555555555555]],[2,[-4.833333333333332,345.83333333333326]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[2,2],[3,3],[4,4]],"end_point":[[2,3],[3,4],[4,1],[1,2]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[32.038317168599576,69.73045501401077]],[1,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[1,[0.0,0.0]],[2,[-45.33333333333338,-98.66666666666669]],[3,[0.0,0.0]]],"stroke":[[2,0],[4,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[292,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":312,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17414691604179185270,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[546.1069958847736,566.7818930041152]],[4,[547.6604938271604,606.7880658436213]],[3,[539.3641975308641,608.7633744855966]],[2,[530.2777777777771,564.9115226337452]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[1,1],[3,3]],"end_point":[[2,3],[1,2],[3,4],[4,1]],"handle_primary":[[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[323,{"inputs":[{"Node":{"node_id":321,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[214,{"inputs":[{"Node":{"node_id":218,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6272196533192700024,{"inputs":[{"Node":{"node_id":481,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[28.815503095243457,-49.74366671015599]},"exposed":false}},{"Value":{"tagged_value":{"F64":3.29474475571},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1.0,1.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[74,{"inputs":[{"Node":{"node_id":75,"output_index":0}},{"Node":{"node_id":81,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[105,{"inputs":[{"Node":{"node_id":108,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.7721675713724807,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.401555786122616,0.773953065673463],"end":[0.898982212168407,0.4370729973098963]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.7721675713724807,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.401555786122616,0.773953065673463],"end":[0.898982212168407,0.4370729973098963]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17173383864410319040,{"inputs":[{"Node":{"node_id":15277819403265847073,"output_index":0}},{"Node":{"node_id":15552693212536925398,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[478,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":7135480377162524224,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1635416892097245588,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":11472292186872186521,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6926019345498826421,{"inputs":[{"Node":{"node_id":989999757220954936,"output_index":0}},{"Node":{"node_id":17020523203516467057,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17911294938421300842,{"inputs":[{"Node":{"node_id":17414691604179185270,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[400,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"delta":[[6,[457.9814814814815,279.4135802469136]],[11,[378.8703703703703,545.3888888888889]],[9,[378.57407407407413,324.0555555555556]],[12,[399.3148148148148,564.0555555555555]],[10,[378.8703703703703,472.7962962962963]],[5,[482.47530864197535,316.35185185185185]],[8,[381.7345679012346,268.5493827160494]],[2,[513.0925925925925,455.6111111111111]],[7,[411.7592592592593,261.83333333333337]],[1,[531.0946502057612,568.230452674897]],[4,[487.3148148148147,333.24074074074076]],[3,[499.1666666666666,380.94444444444446]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12],"remove":[],"start_point":[[12,12],[9,9],[1,1],[10,10],[7,7],[8,8],[2,2],[3,3],[4,4],[11,11],[5,5],[6,6]],"end_point":[[9,10],[6,7],[12,1],[3,4],[8,9],[11,12],[10,11],[7,8],[2,3],[4,5],[5,6],[1,2]],"handle_primary":[[3,[-1.7777777777777717,-12.444444444444455]],[6,[-20.345679012345727,-8.691358024691397]],[2,[-6.51851851851859,-35.55555555555554]],[10,[-0.8888888888888573,38.81481481481478]],[11,[0.0,6.518518518518476]],[12,[22.22222222222223,-1.1851851851852189]],[1,[0.0,0.0]],[8,[-6.716049382716051,13.62962962962962]],[4,[0.0,0.0]],[7,[-5.925925925925924,-0.9876543209876444]],[9,[0.1975308641974607,16.395061728395035]],[5,[-2.1728395061728065,-7.703703703703695]]],"handle_end":[[2,[1.7777777777777717,12.444444444444455]],[7,[6.716049382716051,-13.62962962962962]],[10,[0.0,-6.518518518518476]],[4,[2.1728395061728065,7.703703703703695]],[5,[20.345679012345784,8.691358024691397]],[11,[-22.22222222222223,1.1851851851852189]],[12,[-37.99794238683137,-21.306584362139915]],[3,[8.888888888888971,23.407407407407447]],[8,[-0.1975308641974607,-16.395061728395035]],[9,[0.8888888888888573,-38.81481481481478]],[1,[6.51851851851859,35.55555555555554]],[6,[5.925925925925924,0.9876543209876444]]],"stroke":[[1,0],[6,0],[2,0],[11,0],[12,0],[4,0],[9,0],[10,0],[8,0],[3,0],[5,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":12}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[229,{"inputs":[{"Node":{"node_id":227,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[829.8099807176391,565.8945401302792]},"exposed":false}},{"Value":{"tagged_value":{"F64":-112.21561764131614},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[3.920156284886552,12.362329004080864]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-7.194955915925541,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4454263454059119441,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1.0,0.5]],[1,[0.5,0.0]],[4,[0.0,0.5]],[3,[0.5,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[3,3],[4,4],[1,1]],"end_point":[[1,2],[4,1],[2,3],[3,4]],"handle_primary":[[4,[0.0,-0.275892388889507]],[1,[0.27589238888950707,0.0]],[3,[-0.275892388889507,0.0]],[2,[0.0,0.27589238888950707]]],"handle_end":[[2,[0.27589238888950707,0.0]],[3,[0.0,0.27589238888950707]],[4,[-0.275892388889507,0.0]],[1,[0.0,-0.275892388889507]]],"stroke":[[3,0],[2,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[260,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[-0.06772020100134477,-0.27125764892979654]],[3,[1.1461889241405476,1.0977967891967286]],[2,[0.8103689541744266,-0.2611110184526325]],[5,[0.05417500861004592,0.8211321210533473]],[4,[0.4707515606101555,1.0016674771193048]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[1,1],[2,2],[4,4],[3,3],[5,5]],"end_point":[[5,1],[2,3],[1,2],[3,4],[4,5]],"handle_primary":[[1,[0.0,0.0]],[3,[-2.220446049250313e-16,-2.220446049250313e-16]],[4,[-0.4165765520001096,-0.1805353560659575]],[5,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[3,[0.2875939062231115,0.06333186265853907]],[2,[0.0,0.0]],[5,[0.0,0.0]],[1,[0.0,0.0]],[4,null]],"stroke":[[4,0],[5,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[120,{"inputs":[{"Node":{"node_id":1635416892097245588,"output_index":0}},{"Node":{"node_id":140,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10486443711686704000,{"inputs":[{"Node":{"node_id":5714505144727602368,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.15803798551484238,0.5113172122965266],"end":[0.8867475285247997,0.49951059174236745]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.15803798551484238,0.5113172122965266],"end":[0.8867475285247997,0.49951059174236745]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[291,{"inputs":[{"Node":{"node_id":292,"output_index":0}},{"Node":{"node_id":306,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[493,{"inputs":[{"Node":{"node_id":496,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.16152954,"green":0.5000886,"blue":0.5234375,"alpha":1.0}],[0.33108336235841895,{"red":0.2509804,"green":0.54509807,"blue":0.5176471,"alpha":1.0}],[0.6158954287284122,{"red":0.48235294,"green":0.5568628,"blue":0.4,"alpha":1.0}],[1.0,{"red":0.73333335,"green":0.49411765,"blue":0.23137255,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5224609375,-0.000170829498767594],"end":[0.5224609375,0.9116247106204544]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.16152954,"green":0.5000886,"blue":0.5234375,"alpha":1.0}],[0.33108336235841895,{"red":0.2509804,"green":0.54509807,"blue":0.5176471,"alpha":1.0}],[0.6158954287284122,{"red":0.48235294,"green":0.5568628,"blue":0.4,"alpha":1.0}],[1.0,{"red":0.73333335,"green":0.49411765,"blue":0.23137255,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5224609375,-0.000170829498767594],"end":[0.5224609375,0.9116247106204544]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11807598261442997948,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[541.9979423868313,611.7921810699589]],[3,[481.882716049383,533.8333333333337]],[2,[500.121399176955,531.6385459533608]],[6,[530.2777777777774,564.9115226337451]],[4,[495.38065843621376,614.5137174211251]],[1,[527.0733882030179,547.0898491083676]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[1,1],[5,5],[6,6],[2,2],[4,4],[3,3]],"end_point":[[2,3],[6,1],[4,5],[3,4],[1,2],[5,6]],"handle_primary":[[4,[0.0,0.0]],[5,[0.0,0.0]],[6,[0.0,0.0]],[2,[5.684341886080804e-14,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[5,[0.0,0.0]],[1,[16.644617182340255,-0.4357059391355733]],[6,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[3,0],[5,0],[4,0],[6,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[182,{"inputs":[{"Node":{"node_id":12768614558324028960,"output_index":0}},{"Node":{"node_id":268,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3930114406985796561,{"inputs":[{"Node":{"node_id":4454263454059119441,"output_index":0}},{"Value":{"tagged_value":{"F64":50.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12875520257830460085,{"inputs":[{"Node":{"node_id":11891167879168294182,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9778003574990260202,{"inputs":[{"Node":{"node_id":6926019345498826421,"output_index":0}},{"Node":{"node_id":5364427239360309137,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[244,{"inputs":[{"Node":{"node_id":248,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[415,{"inputs":[{"Node":{"node_id":418,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":1.0}],[0.5,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":0.80859375}],[1.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":0.0}]],"gradient_type":"Radial","start":[0.30473369160482133,-0.27613184386946],"end":[0.66690549049424,0.16136781742013184]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":1.0}],[0.5,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":0.80859375}],[1.0,{"red":0.827451,"green":0.36862746,"blue":0.20784314,"alpha":0.0}]],"gradient_type":"Radial","start":[0.30473369160482133,-0.27613184386946],"end":[0.66690549049424,0.16136781742013184]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[275,{"inputs":[{"Node":{"node_id":11427960919145580782,"output_index":0}},{"Node":{"node_id":283,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[446,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1.0,1.0]],[4,[0.0,1.0]],[2,[1.0,0.0]],[1,[0.0,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[4,1],[2,3],[3,4],[1,2]],"handle_primary":[[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[2,[0.0,0.0]],[4,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]]],"stroke":[[3,0],[1,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[477,{"inputs":[{"Node":{"node_id":478,"output_index":0}},{"Node":{"node_id":6272196533192700024,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[306,{"inputs":[{"Node":{"node_id":310,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[166,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":393,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11472292186872186521,{"inputs":[{"Node":{"node_id":4452902364641883403,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-1367.319046874664,107.29818643577867]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[4.24444444444444,0.8618453375356869]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[88,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":96,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[259,{"inputs":[{"Node":{"node_id":257,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[894.1788584769913,562.0196920444174]},"exposed":false}},{"Value":{"tagged_value":{"F64":-133.24181654222085},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[15.813534861768243,49.86845076365074]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-7.194955915925463,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[430,{"inputs":[{"Node":{"node_id":433,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.71875,"green":0.37165833,"blue":0.20214844,"alpha":1.0}],[0.09210526315789476,{"red":0.7254902,"green":0.41960785,"blue":0.2,"alpha":1.0}],[1.0,{"red":0.79607844,"green":0.49411765,"blue":0.22745098,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.71875,"green":0.37165833,"blue":0.20214844,"alpha":1.0}],[0.09210526315789476,{"red":0.7254902,"green":0.41960785,"blue":0.2,"alpha":1.0}],[1.0,{"red":0.79607844,"green":0.49411765,"blue":0.22745098,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[119,{"inputs":[{"Node":{"node_id":120,"output_index":0}},{"Node":{"node_id":134,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[290,{"inputs":[{"Node":{"node_id":291,"output_index":0}},{"Node":{"node_id":300,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[321,{"inputs":[{"Node":{"node_id":325,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.9254902,"green":0.7176471,"blue":0.28627452,"alpha":1.0}],[1.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6317852697063873,0.02415325870852081],"end":[0.05910622380623476,0.9861828395407052]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.9254902,"green":0.7176471,"blue":0.28627452,"alpha":1.0}],[1.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6317852697063873,0.02415325870852081],"end":[0.05910622380623476,0.9861828395407052]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5364427239360309137,{"inputs":[{"Node":{"node_id":12325841371509826180,"output_index":0}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[181,{"inputs":[{"Node":{"node_id":182,"output_index":0}},{"Node":{"node_id":262,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14335659566300901430,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":14579754335592291854,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[212,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[5,[977.4876543209878,545.4876543209878]],[7,[984.9112747301664,495.90740740740745]],[8,[965.6358024691358,465.1913580246914]],[6,[990.3271604938273,526.5246913580247]],[1,[957.8271604938273,462.1234567901235]],[2,[948.746913580247,472.10493827160496]],[3,[925.6111111111112,527.7098765432099]],[4,[922.2777777777778,549.4629629629628]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[5,5],[7,7],[2,2],[4,4],[6,6],[3,3],[8,8],[1,1]],"end_point":[[3,4],[6,7],[7,8],[4,5],[2,3],[8,1],[1,2],[5,6]],"handle_primary":[[3,[-2.469135802469168,9.975308641975287]],[6,[0.0,0.0]],[5,[0.0,0.0]],[1,[0.0,0.0]],[8,[0.0,0.0]],[4,[0.0,0.0]],[7,[0.0,0.0]],[2,[-6.123456790123441,10.962962962962932]]],"handle_end":[[5,[0.0,0.0]],[1,[6.123456790123441,-10.96296296296299]],[7,[7.407407407407391,6.814814814814838]],[4,[0.0,0.0]],[6,[0.0,0.0]],[3,[0.0,0.0]],[8,[0.0,0.0]],[2,[2.469135802468827,-9.975308641975287]]],"stroke":[[1,0],[6,0],[4,0],[2,0],[8,0],[5,0],[7,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14433811491576609500,{"inputs":[{"Node":{"node_id":9570557034533539493,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[274,{"inputs":[{"Node":{"node_id":275,"output_index":0}},{"Node":{"node_id":277,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[445,{"inputs":[{"Node":{"node_id":446,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[83.1666666666668,614.1795271996941]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[941.3333333333331,154.32047280030588]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[103,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":111,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[134,{"inputs":[{"Node":{"node_id":138,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[165,{"inputs":[{"Node":{"node_id":166,"output_index":0}},{"Node":{"node_id":16821952675128396603,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10278740841813346388,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[4,[706.1680384087791,607.8415637860082]],[1,[744.3996087994717,586.9732002235432]],[2,[734.9571457603006,587.5194584158918]],[3,[698.0912208504803,600.3792866941013]],[6,[729.3449931412895,610.3875171467763]],[7,[779.7592592592597,612.6204267490609]],[5,[710.9477975918305,613.6358024691357]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[5,5],[4,4],[6,6],[1,1],[3,3],[2,2],[7,7]],"end_point":[[4,5],[5,6],[3,4],[2,3],[1,2],[7,1],[6,7]],"handle_primary":[[2,[0.0,0.0]],[6,[15.119646395366544,2.853223593964344]],[3,[0.0,0.0]],[4,[2.1947873799731497,4.691071467853249]],[5,[7.452522481329197,2.721536351166037]],[7,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[-2.494608558449272,-5.331900091455282]],[4,null],[7,[9.28638926992835,13.56378600823075]],[5,null],[2,[6.496570644718986,-11.149519890260422]],[6,[0.0,0.0]]],"stroke":[[7,0],[3,0],[6,0],[4,0],[5,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[196,{"inputs":[{"Node":{"node_id":200,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[398,{"inputs":[{"Node":{"node_id":396,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[227,{"inputs":[{"Node":{"node_id":230,"output_index":0}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[87,{"inputs":[{"Node":{"node_id":88,"output_index":0}},{"Node":{"node_id":90,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[118,{"inputs":[{"Node":{"node_id":119,"output_index":0}},{"Node":{"node_id":128,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[491,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[6,[908.5000000000005,581.0432098765432]],[3,[858.2777777777777,377.8333333333333]],[4,[851.3888888888889,542.2777777777777]],[2,[867.3888888888889,344.05555555555554]],[1,[903.3333333333331,336.44444444444446]],[5,[876.9444444444443,582.1008216600221]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[6,6],[5,5],[3,3],[1,1],[4,4],[2,2]],"end_point":[[3,4],[1,2],[5,6],[6,1],[2,3],[4,5]],"handle_primary":[[3,[-0.4444444444444571,14.444444444444455]],[6,[0.0,0.0]],[4,[-2.888888888888914,28.66666666666663]],[5,[0.0,0.0]],[1,[0.0,0.0]],[2,[-9.555555555555657,12.444444444444455]]],"handle_end":[[1,[9.555555555555657,-12.444444444444455]],[4,[0.0,0.0]],[3,[2.888888888888914,-28.66666666666663]],[5,[0.0,0.0]],[6,[0.16666666666685614,-0.2777777777777146]],[2,[0.4444444444444571,-14.444444444444455]]],"stroke":[[2,0],[1,0],[5,0],[6,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[180,{"inputs":[{"Node":{"node_id":181,"output_index":0}},{"Node":{"node_id":256,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11345069121502219134,{"inputs":[{"Node":{"node_id":12068777759187203228,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[413,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":436,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[242,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[3,[819.0679012345677,520.2695473251028]],[2,[821.8187014174667,518.4112940100595]],[5,[837.913808870599,583.4355281207133]],[4,[812.5713305898489,549.7821216278006]],[1,[842.2716049382715,561.8070416095107]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[1,1],[2,2],[5,5],[3,3],[4,4]],"end_point":[[5,1],[3,4],[2,3],[4,5],[1,2]],"handle_primary":[[1,[0.0,0.0]],[3,[-1.4046639231823974,2.1801554641060648]],[4,[0.0,0.0]],[2,[0.0,0.0]],[5,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[10.88614540466392,16.621856424325642]],[5,[0.0,0.0]],[2,[1.4046639231823974,-2.1801554641060648]]],"stroke":[[4,0],[5,0],[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[102,{"inputs":[{"Node":{"node_id":103,"output_index":0}},{"Node":{"node_id":105,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[475,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[81.20964791952444,29.23708276177412]],[2,[46.49999999999994,177.5]],[4,[85.15294924554185,45.49314128943759]],[6,[102.27777777777776,528.0555555555553]],[5,[172.5,512.0555555555555]],[1,[22.827133919383556,312.5]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[3,3],[6,6],[1,1],[4,4],[5,5]],"end_point":[[5,6],[6,1],[1,2],[3,4],[4,5],[2,3]],"handle_primary":[[5,[0.0,0.0]],[1,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[15.777777777777828,-79.0]],[6,[0.0,0.0]]],"handle_end":[[5,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[6,[0.0,0.0]],[1,[-14.820678206547353,74.20776200602205]]],"stroke":[[2,0],[4,0],[3,0],[1,0],[6,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[304,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[5,[744.3996087994716,586.9732002235431]],[8,[708.7139917695473,601.783950617284]],[7,[702.5246913580245,600.8931773149878]],[10,[712.0500685871053,614.4420508944315]],[4,[699.4958847736627,594.497256515775]],[2,[658.574074074074,609.6851851851851]],[6,[717.5809327846364,593.2681755829904]],[1,[645.3333333333333,614.013717421125]],[9,[713.2108672458469,610.5533455265964]],[3,[680.2695473251027,600.730452674897]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[2,2],[9,9],[10,10],[1,1],[4,4],[3,3],[6,6],[8,8],[7,7],[5,5]],"end_point":[[8,9],[1,2],[2,3],[10,1],[3,4],[5,6],[7,8],[6,7],[4,5],[9,10]],"handle_primary":[[10,[-58.35223289132739,3.851425709744945]],[4,[4.444444444444002,-5.662551440328798]],[3,[7.374485596707928,-0.92181069958815]],[6,[-10.886145404663694,2.8971193415636662]],[8,[0.0,0.0]],[9,[0.0,0.0]],[1,[0.0,0.0]],[7,[0.0,0.0]],[5,[0.0,0.0]],[2,[4.740740740740762,-4.148148148148152]]],"handle_end":[[10,null],[8,[-2.5361987501905787,-3.706752019509281]],[9,[-0.08779149519853036,-2.2109123484780184]],[1,[-4.740740740740762,4.148148148148152]],[6,[0.0,0.0]],[2,[-6.174173455107166,0.7717716818881399]],[3,[-1.6866098186769705,2.1488658430550913]],[4,[-5.794238683127446,-2.0192043895747247]],[7,[-2.89711934156378,-1.975308641975289]],[5,[10.516302710276136,-2.79869346321857]]],"stroke":[[2,0],[4,0],[9,0],[6,0],[3,0],[8,0],[7,0],[1,0],[5,0],[10,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[164,{"inputs":[{"Node":{"node_id":165,"output_index":0}},{"Node":{"node_id":318,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[226,{"inputs":[{"Node":{"node_id":229,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.24641848672125644,0.5269240260497682],"end":[0.8641268166855021,0.5169975680471844]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.24641848672125644,0.5269240260497682],"end":[0.8641268166855021,0.5169975680471844]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[428,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.17362079214327678,-0.41509433962264153]],[2,[0.8076864692090735,-0.4339622641509434]],[4,[0.1596715565350542,1.0]],[3,[0.7349403737393546,1.0000000000000002]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[3,3],[4,4],[2,2]],"end_point":[[2,3],[1,2],[3,4],[4,1]],"handle_primary":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"stroke":[[1,0],[3,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[257,{"inputs":[{"Node":{"node_id":260,"output_index":0}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[10544930474333783117,{"inputs":[{"Node":{"node_id":17173383864410319040,"output_index":0}},{"Node":{"node_id":4633399390154487467,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[117,{"inputs":[{"Node":{"node_id":118,"output_index":0}},{"Node":{"node_id":122,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[459,{"inputs":[{"Node":{"node_id":463,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[319,{"inputs":[{"Node":{"node_id":290,"output_index":0}},{"Node":{"node_id":329,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12068777759187203228,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[4,[699.4958847736627,594.497256515775]],[9,[713.2108672458469,610.5533455265964]],[3,[680.2695473251027,600.730452674897]],[7,[702.5246913580245,600.8931773149878]],[2,[658.574074074074,609.6851851851851]],[10,[712.0500685871053,614.4420508944315]],[5,[744.3996087994716,586.9732002235431]],[1,[645.3333333333333,614.013717421125]],[6,[717.5809327846364,593.2681755829904]],[8,[708.7139917695473,601.783950617284]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[7,7],[6,6],[1,1],[4,4],[9,9],[3,3],[8,8],[5,5],[2,2],[10,10]],"end_point":[[9,10],[3,4],[7,8],[5,6],[4,5],[1,2],[10,1],[8,9],[2,3],[6,7]],"handle_primary":[[9,[0.0,0.0]],[8,[0.0,0.0]],[2,[4.740740740740762,-4.148148148148152]],[4,[4.444444444444002,-5.662551440328798]],[10,[-58.35223289132739,3.851425709744945]],[6,[-10.886145404663694,2.8971193415636662]],[7,[0.0,0.0]],[5,[0.0,0.0]],[3,[7.374485596707928,-0.92181069958815]],[1,[0.0,0.0]]],"handle_end":[[2,[-6.174173455107166,0.7717716818881399]],[4,[-5.794238683127446,-2.0192043895747247]],[8,[-2.5361987501905787,-3.706752019509281]],[5,[10.516302710276136,-2.79869346321857]],[6,[0.0,0.0]],[7,[-2.89711934156378,-1.975308641975289]],[10,null],[9,[-0.08779149519853036,-2.2109123484780184]],[1,[-4.740740740740762,4.148148148148152]],[3,[-1.6866098186769705,2.1488658430550913]]],"stroke":[[2,0],[7,0],[8,0],[9,0],[10,0],[3,0],[6,0],[5,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[179,{"inputs":[{"Node":{"node_id":180,"output_index":0}},{"Node":{"node_id":250,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16815500381887058038,{"inputs":[{"Value":{"tagged_value":{"Artboard":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":74,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[1024.0,768.0]},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":3,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":1}},{"Value":{"tagged_value":{"String":"Artboard"},"exposed":false}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":4}},{"Import":{"import_type":{"Concrete":{"name":"graph_craft::document::value::TaggedValue","alias":null}},"import_index":5}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::artboard::CreateArtboardNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Import":{"import_type":{"Fn":[{"Concrete":{"name":"core::option::Option>","alias":null}},{"Concrete":{"name":"graphene_core::table::Table","alias":null}}]},"import_index":0}},{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[412,{"inputs":[{"Node":{"node_id":413,"output_index":0}},{"Node":{"node_id":421,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[272,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[927.7592592592592,537.8333333333333]],[2,[885.701646090535,534.2283950617283]],[1,[872.6913580246915,564.7407407407408]],[6,[873.7839506172841,571.9567901234568]],[4,[919.7592592592592,507.7592592592593]],[3,[896.2037037037037,507.6111111111111]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[5,5],[6,6],[2,2],[3,3],[1,1],[4,4]],"end_point":[[6,1],[3,4],[1,2],[4,5],[2,3],[5,6]],"handle_primary":[[4,[9.641681333516315,12.166883587532825]],[3,[5.629629629629449,-5.185185185185162]],[2,[2.6337448559671657,-9.349794238682987]],[1,[8.404909667028619,-14.163252363220296]],[6,[0.0,0.0]],[5,[0.0,0.0]]],"handle_end":[[1,null],[2,[-6.29752559155645,5.8003525185389435]],[4,[0.0,0.0]],[5,[0.0,0.0]],[3,[-6.222222222222285,-7.851851851851904]],[6,[0.0,0.0]]],"stroke":[[6,0],[5,0],[2,0],[1,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[132,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[172.61522633744855,706.3436213991771]],[2,[158.95389422344155,655.6901143957208]],[4,[158.12962962962962,718.0637860082305]],[5,[170.5082304526749,714.508230452675]],[3,[153.6522633744856,666.8374485596709]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[1,1],[3,3],[5,5],[4,4],[2,2]],"end_point":[[2,3],[3,4],[5,1],[1,2],[4,5]],"handle_primary":[[2,[0.0,0.0]],[1,[0.0,0.0]],[5,[3.160493827160508,-3.5555555555554292]],[4,[0.0,0.0]],[3,[-1.8436213991769537,9.744855967078138]]],"handle_end":[[2,[1.8436213991768968,-9.744855967078138]],[3,[0.0,0.0]],[4,[-3.403056460676396,3.828438518260782]],[1,[10.930041152263357,25.448559670781947]],[5,null]],"stroke":[[2,0],[1,0],[4,0],[5,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[18142347460553706128,{"inputs":[{"Node":{"node_id":3719764965605527929,"output_index":0}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5714505144727602368,{"inputs":[{"Node":{"node_id":18142347460553706128,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[742.4503588311712,593.3522045638366]},"exposed":false}},{"Value":{"tagged_value":{"F64":-54.607358405925375},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[11.868580002725764,37.42791872115287]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-7.194955915925435,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3719764965605527929,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[2,[0.5284291926980893,-0.05749241759918103]],[3,[0.9294778693529006,0.07804966382593222]],[1,[0.024789182815927936,-0.19742232174172225]],[5,[0.5092009949861728,0.9569233045341342]],[6,[-0.007635827307500006,0.8135210708932508]],[4,[1.0925954941660798,1.0006513038165834]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[2,2],[5,5],[3,3],[1,1],[4,4],[6,6]],"end_point":[[3,4],[5,6],[2,3],[6,1],[1,2],[4,5]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[6,[0.0,0.0]],[4,[0.0,0.0]],[5,[-0.28124758738050376,-0.047835328360902984]],[2,[0.21441988872806772,0.05895880273641681]]],"handle_end":[[4,[0.26857587477611267,0.04568009019878494]],[1,[-0.16942059711236046,-0.046585396643413435]],[3,[0.0,0.0]],[2,[0.0,0.0]],[6,[0.0,0.0]],[5,[0.0,0.0]]],"stroke":[[5,0],[6,0],[3,0],[4,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[194,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[3,[0.7287108039915611,0.06963660702488284]],[4,[0.9388148027481048,0.674134940686276]],[5,[0.038029134760865314,0.7285470752399478]],[2,[0.2647731761418837,0.17920265855050785]],[1,[-0.15531318767467384,0.11366419216517]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[1,1],[3,3],[2,2],[4,4],[5,5]],"end_point":[[3,4],[2,3],[4,5],[1,2],[5,1]],"handle_primary":[[3,[-0.06001521816071698,0.06545334966568245]],[1,[0.0,0.0]],[5,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.12249986382303002,-0.04615791866776875]]],"handle_end":[[5,[0.0,0.0]],[3,[0.0,0.0]],[2,[-0.2265909018579063,0.03511994027079236]],[4,[0.0,0.0]],[1,[-0.1993257782423989,0.03454533724430142]]],"stroke":[[1,0],[3,0],[4,0],[2,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17020523203516467057,{"inputs":[{"Node":{"node_id":7148230379224894975,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.328125,"green":0.19633627,"blue":0.17047119,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3458831403130609,0.8154173283216788],"end":[0.29832402234636923,0.9999999999999992]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.328125,"green":0.19633627,"blue":0.17047119,"alpha":1.0}]],"gradient_type":"Linear","start":[0.3458831403130609,0.8154173283216788],"end":[0.29832402234636923,0.9999999999999992]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[396,{"inputs":[{"Node":{"node_id":400,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}],[1.0,{"red":0.9098039,"green":0.6862745,"blue":0.27058825,"alpha":1.0}]],"gradient_type":"Linear","start":[0.03910157250347135,0.9695090157857073],"end":[0.36170698072938423,0.042039957474503786]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.7176471,"green":0.28627452,"blue":0.16862746,"alpha":1.0}],[1.0,{"red":0.9098039,"green":0.6862745,"blue":0.27058825,"alpha":1.0}]],"gradient_type":"Linear","start":[0.03910157250347135,0.9695090157857073],"end":[0.36170698072938423,0.042039957474503786]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[85,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":155,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[427,{"inputs":[{"Node":{"node_id":428,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[583.9293351067386,697.6163522012579]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[206.6666666666667,70.66666666666666]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[256,{"inputs":[{"Node":{"node_id":259,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.19879202692409503,0.5201781689919184],"end":[0.8398128222157668,0.5168778892557565]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.19879202692409503,0.5201781689919184],"end":[0.8398128222157668,0.5168778892557565]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[287,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[6,[898.2777777777778,520.5]],[1,[954.864197530864,116.14814814814812]],[2,[934.9526748971192,114.67283950617282]],[5,[904.5,283.46296296296293]],[4,[910.06378600823,174.98559670781898]],[7,[944.7962962962962,568.2037037037037]],[3,[913.619341563786,134.1625514403292]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[6,6],[2,2],[4,4],[5,5],[1,1],[7,7],[3,3]],"end_point":[[3,4],[2,3],[6,7],[1,2],[5,6],[4,5],[7,1]],"handle_primary":[[6,[0.0,0.0]],[1,[0.0,0.0]],[3,[-2.2386831275719032,10.008230452674894]],[4,[-0.7901234567891606,29.102880658436305]],[2,[-9.481481481481635,1.8436213991769392]],[7,[0.0,0.0]],[5,[-3.5555555555556566,34.37037037037038]]],"handle_end":[[5,[0.0,0.0]],[6,[0.0,0.0]],[4,[3.5555555555554292,-34.37037037037038]],[7,[0.0,0.0]],[1,[9.481481481481635,-1.8436213991769392]],[2,[2.677546335770103,-11.970207148147836]],[3,[0.370701337431683,-13.654165928739786]]],"stroke":[[4,0],[5,0],[7,0],[6,0],[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[318,{"inputs":[{"Node":{"node_id":319,"output_index":0}},{"Node":{"node_id":323,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[178,{"inputs":[{"Node":{"node_id":179,"output_index":0}},{"Node":{"node_id":244,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16821952675128396603,{"inputs":[{"Node":{"node_id":3885641499621884510,"output_index":0}},{"Node":{"node_id":36935169817407978,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[36935169817407978,{"inputs":[{"Node":{"node_id":15848750910363784662,"output_index":0}},{"Node":{"node_id":11279424538712841875,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[411,{"inputs":[{"Node":{"node_id":412,"output_index":0}},{"Node":{"node_id":415,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[442,{"inputs":[{"Node":{"node_id":445,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.50980395,"green":0.26666668,"blue":0.2,"alpha":1.0}],[0.14354235440709684,{"red":0.5882353,"green":0.30588236,"blue":0.20392157,"alpha":1.0}],[0.5,{"red":0.6784314,"green":0.33333334,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.76953125,"green":0.4772935,"blue":0.21943665,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5063739376770537,0.01352247091271197],"end":[0.5049575070821529,1.015819012091678]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.50980395,"green":0.26666668,"blue":0.2,"alpha":1.0}],[0.14354235440709684,{"red":0.5882353,"green":0.30588236,"blue":0.20392157,"alpha":1.0}],[0.5,{"red":0.6784314,"green":0.33333334,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.76953125,"green":0.4772935,"blue":0.21943665,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5063739376770537,0.01352247091271197],"end":[0.5049575070821529,1.015819012091678]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14205611254835578455,{"inputs":[{"Node":{"node_id":14335659566300901430,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[-1339.7031164295145,65.50112655997924]},"exposed":false}},{"Value":{"tagged_value":{"F64":-2.429481024944041},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[4.244995417859058,0.8619572141015625]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[2.80968031327194e-16,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[100,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,1.0]],[3,[1.0,1.0]],[1,[-0.03917736275965821,1.5785983631388945e-15]],[2,[0.9501947601024644,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[2,2],[3,3]],"end_point":[[1,2],[4,1],[3,4],[2,3]],"handle_primary":[[3,[0.0,0.0]],[1,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[2,0],[3,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[162,{"inputs":[{"Node":{"node_id":164,"output_index":0}},{"Node":{"node_id":274,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9422094883894860610,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[2,[500.121399176955,531.6385459533608]],[6,[530.2777777777774,564.9115226337451]],[3,[481.882716049383,533.8333333333337]],[5,[541.9979423868313,611.7921810699589]],[1,[527.0733882030179,547.0898491083676]],[4,[495.38065843621376,614.5137174211251]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[6,6],[4,4],[2,2],[5,5],[1,1]],"end_point":[[5,6],[2,3],[3,4],[6,1],[4,5],[1,2]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[5,[0.0,0.0]],[6,[0.0,0.0]],[2,[5.684341886080804e-14,0.0]],[4,[0.0,0.0]]],"handle_end":[[3,[0.0,0.0]],[1,[16.644617182340255,-0.4357059391355733]],[5,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]],[6,[0.0,0.0]]],"stroke":[[4,0],[2,0],[3,0],[1,0],[6,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[193,{"inputs":[{"Node":{"node_id":191,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[965.2687196297846,544.9034434174798]},"exposed":false}},{"Value":{"tagged_value":{"F64":-98.54705053700596},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[17.59013219658168,55.471003102038694]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-7.194955915925513,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[224,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"delta":[[2,[773.1090534979423,610.0802469135801]],[19,[742.2503429355281,620.0445816186556]],[18,[876.3518518518517,620.2201646090534]],[4,[790.0967078189299,592.170781893004]],[11,[830.3930041152262,568.5987654320987]],[13,[852.648148148148,535.9403292181069]],[15,[874.7716049382715,566.491769547325]],[10,[827.364197530864,555.9567901234567]],[8,[825.5205761316871,544.7633744855966]],[7,[817.6193415637858,545.6851851851851]],[16,[858.4423868312756,599.2818930041151]],[17,[877.4053497942385,607.1831275720164]],[3,[779.9567901234567,598.5451457288699]],[9,[825.2572016460904,550.6893004115226]],[1,[741.4602194787379,611.9677640603566]],[5,[819.0679012345677,520.2695473251028]],[14,[864.6316872427983,543.3148148148147]],[6,[819.3312757201645,537.1255144032921]],[12,[837.1090534979422,574.2613168724279]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"remove":[],"start_point":[[7,7],[19,19],[17,17],[8,8],[1,1],[4,4],[16,16],[15,15],[11,11],[18,18],[3,3],[13,13],[12,12],[10,10],[5,5],[6,6],[2,2],[9,9],[14,14]],"end_point":[[19,1],[5,6],[14,15],[17,18],[7,8],[12,13],[15,16],[6,7],[2,3],[4,5],[16,17],[1,2],[10,11],[18,19],[3,4],[8,9],[11,12],[13,14],[9,10]],"handle_primary":[[19,[-21.66213092273972,1.775584501863932]],[7,[1.4485596707819468,2.633744855967052]],[1,[0.0,0.0]],[17,[0.0,0.0]],[13,[0.0,0.0]],[9,[0.0,0.0]],[4,[1.0534979423869115,-4.345679012345613]],[15,[0.0,0.0]],[10,[1.7119341563786747,1.316872427983526]],[5,[0.0,0.0]],[2,[4.609053497942341,-0.9218106995883772]],[8,[0.0,0.0]],[12,[0.0,0.0]],[18,[-1.843621399176982,1.975308641975289]],[14,[3.68724279835385,7.90123456790127]],[3,[5.530864197530832,-1.8969975807218589]],[11,[0.658436213991763,2.1698525002639144]],[6,[0.0,0.0]],[16,[0.0,0.0]]],"handle_end":[[13,[-3.68724279835385,-7.90123456790127]],[6,[-1.4485596707819468,-2.633744855967052]],[7,[-5.135802469135797,4.609053497942341]],[15,[2.765432098765359,-11.851851851851848]],[9,[-1.7119341563786747,-1.316872427983526]],[12,[-7.637860082304542,12.641975308641918]],[16,[-5.1358024691359105,-5.00411522633749]],[5,[-0.39506172839503506,-3.160493827160508]],[17,[1.843621399176982,-1.975308641975289]],[11,[-2.10699588477371,-0.3950617283951487]],[8,[1.1851851851852189,-2.502057613168745]],[3,[-1.0534979423869115,4.345679012345613]],[10,[-0.658436213991763,-2.1698525002639144]],[2,[-5.530864197530832,1.8969975807218589]],[4,[-16.987654320987644,28.049382716049426]],[14,[0.0,0.0]],[19,[0.0,0.0]],[18,[21.421124828532356,-1.7558299039781105]],[1,[-4.609053497942341,0.9218106995883772]]],"stroke":[[5,0],[16,0],[2,0],[13,0],[18,0],[6,0],[15,0],[7,0],[8,0],[12,0],[10,0],[1,0],[3,0],[11,0],[14,0],[4,0],[9,0],[17,0],[19,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":19}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[14579754335592291854,{"inputs":[{"Node":{"node_id":1644624352314732667,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":0.0}]],"gradient_type":"Radial","start":[0.49999999999999994,0.5000000000000009],"end":[0.9003149237651733,0.5000000000000009]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":0.0}]],"gradient_type":"Radial","start":[0.49999999999999994,0.5000000000000009],"end":[0.9003149237651733,0.5000000000000009]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[7134154821675013808,{"inputs":[{"Node":{"node_id":408,"output_index":0}},{"Node":{"node_id":14205611254835578455,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[457,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[80.05555555555559,484.94444444444446]],[3,[129.38888888888889,628.0555555555557]],[1,[-4.833333333333332,345.83333333333326]]]},"segments":{"add":[1,2],"remove":[],"start_point":[[1,1],[2,2]],"end_point":[[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[32.038317168599576,69.73045501401077]]],"handle_end":[[2,[0.0,0.0]],[1,[-45.33333333333338,-98.66666666666669]]],"stroke":[[1,0],[2,0]]},"regions":{"add":[],"remove":[],"segment_range":[],"fill":[]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[115,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[2,[1.0,0.0]],[4,[0.0,1.0]],[1,[-0.04384002017081715,1.8188575645616826e-15]],[3,[1.0,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[3,3],[4,4],[2,2],[1,1]],"end_point":[[2,3],[3,4],[4,1],[1,2]],"handle_primary":[[1,[0.0,0.0]],[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[2,0],[1,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6710503329407068595,{"inputs":[{"Node":{"node_id":16831252454255560063,"output_index":0}},{"Node":{"node_id":10486443711686704000,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9570557034533539493,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[794.0473251028808,582.3820301783265]],[6,[751.1172839506169,611.1776406035664]],[1,[740.3456790123458,588.2030178326476]],[5,[767.1831275720166,614.1625514403293]],[2,[755.3312757201647,586.2448559670783]],[4,[789.2187928669412,601.4967933823075]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[2,2],[4,4],[5,5],[1,1],[6,6]],"end_point":[[5,6],[1,2],[2,3],[3,4],[4,5],[6,1]],"handle_primary":[[3,[0.0,0.0]],[6,[0.0,0.0]],[5,[-11.149519890260535,0.2794994541025062]],[1,[0.0,0.0]],[4,[-8.427983539094612,8.539557783673331]],[2,[9.481481481481524,0.4824094931645959]]],"handle_end":[[1,[-9.481481481481524,-0.4824094931645959]],[6,[0.0,0.0]],[3,[8.427983539094612,-8.539557783673331]],[5,[0.0,0.0]],[2,[-9.305898491083669,-1.1412894375856697]],[4,[11.149519890260535,-0.2794994541025062]]],"stroke":[[3,0],[1,0],[6,0],[2,0],[5,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5175066652268973319,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[3,[1.0362898771040632,0.9994054840058096]],[4,[0.0,1.0]],[2,[0.8379395417513005,-0.05940639119491883]],[1,[-0.09890842105846484,-0.06578040790199424]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[1,1],[3,3]],"end_point":[[2,3],[1,2],[3,4],[4,1]],"handle_primary":[[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[177,{"inputs":[{"Node":{"node_id":178,"output_index":0}},{"Node":{"node_id":238,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[208,{"inputs":[{"Node":{"node_id":212,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15277819403265847073,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":4913361824430066698,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[99,{"inputs":[{"Node":{"node_id":100,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[827.4018790826805,704.5]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[74.57030178326477,63.99999999999989]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[161,{"inputs":[{"Node":{"node_id":162,"output_index":0}},{"Node":{"node_id":168,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[17245613731534563958,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,0.5]],[3,[0.5,1.0]],[2,[1.0,0.5]],[1,[0.5,0.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[2,2],[3,3],[4,4]],"end_point":[[4,1],[2,3],[1,2],[3,4]],"handle_primary":[[2,[0.0,0.27589238888950707]],[3,[-0.275892388889507,0.0]],[1,[0.27589238888950707,0.0]],[4,[0.0,-0.275892388889507]]],"handle_end":[[1,[0.0,-0.275892388889507]],[3,[0.0,0.27589238888950707]],[4,[-0.275892388889507,0.0]],[2,[0.27589238888950707,0.0]]],"stroke":[[1,0],[3,0],[4,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[394,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":404,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[254,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[1,[887.506172839506,620.2933732713938]],[2,[999.8086419753088,626.6728395061729]],[3,[1012.648148148148,620.7933732713938]],[5,[910.5246913580244,598.202467627757]],[4,[1004.3518518518516,600.7306004720272]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[1,1],[2,2],[4,4],[3,3],[5,5]],"end_point":[[1,2],[4,5],[3,4],[5,1],[2,3]],"handle_primary":[[4,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[5,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[2,[0.0,0.0]],[5,[0.0,0.0]],[3,[0.0,0.0]],[1,[-43.25925925925878,-1.3827160493827932]]],"stroke":[[5,0],[3,0],[1,0],[2,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[83,{"inputs":[{"Node":{"node_id":85,"output_index":0}},{"Node":{"node_id":117,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[114,{"inputs":[{"Node":{"node_id":115,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[926.5490676442352,657.3888888888888]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[97.92901234567933,111.111111111111]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[487,{"inputs":[{"Node":{"node_id":491,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.5546875,"green":0.30678105,"blue":0.24050903,"alpha":1.0}],[1.0,{"red":0.41015625,"green":0.26908994,"blue":0.22590637,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6510643291021605,0.0026199374677413345],"end":[0.6510643291021605,0.8853991419751945]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.5546875,"green":0.30678105,"blue":0.24050903,"alpha":1.0}],[1.0,{"red":0.41015625,"green":0.26908994,"blue":0.22590637,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6510643291021605,0.0026199374677413345],"end":[0.6510643291021605,0.8853991419751945]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[316,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[5,[767.1831275720166,614.1625514403293]],[3,[794.0473251028808,582.3820301783265]],[2,[755.3312757201647,586.2448559670783]],[1,[740.3456790123458,588.2030178326476]],[4,[789.2187928669412,601.4967933823075]],[6,[751.1172839506169,611.1776406035664]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[6,6],[2,2],[5,5],[1,1],[4,4],[3,3]],"end_point":[[6,1],[5,6],[3,4],[2,3],[4,5],[1,2]],"handle_primary":[[6,[0.0,0.0]],[2,[9.481481481481524,0.4824094931645959]],[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[-8.427983539094612,8.539557783673331]],[5,[-11.149519890260535,0.2794994541025062]]],"handle_end":[[3,[8.427983539094612,-8.539557783673331]],[5,[0.0,0.0]],[6,[0.0,0.0]],[1,[-9.481481481481524,-0.4824094931645959]],[2,[-9.305898491083669,-1.1412894375856697]],[4,[11.149519890260535,-0.2794994541025062]]],"stroke":[[3,0],[6,0],[2,0],[5,0],[1,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[97478832511923699,{"inputs":[{"Node":{"node_id":2999157202967297847,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[486.78967826851385,539.8989473007496]},"exposed":false}},{"Value":{"tagged_value":{"F64":-8.547050926324854},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[24.603566707484493,77.5880766500041]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-7.194955915925423,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[176,{"inputs":[{"Node":{"node_id":177,"output_index":0}},{"Node":{"node_id":232,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12717405604755313921,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":15483449862348058100,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1644624352314732667,{"inputs":[{"Node":{"node_id":3930114406985796561,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[337.1982047610469,692.7466487935636]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[50.0,50.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[409,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":442,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[238,{"inputs":[{"Node":{"node_id":242,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3707802522175443254,{"inputs":[{"Node":{"node_id":10278740841813346388,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[440,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.0,0.0]],[2,[1.0,0.0]],[3,[1.035483870967742,1.0]],[4,[0.0387096774193552,1.0]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[2,2],[4,4],[1,1],[3,3]],"end_point":[[3,4],[1,2],[4,1],[2,3]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]]],"stroke":[[4,0],[3,0],[1,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9603838021022368374,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[6,[729.3449931412895,610.3875171467763]],[4,[706.1680384087791,607.8415637860082]],[7,[779.7592592592597,612.6204267490609]],[1,[744.3996087994717,586.9732002235432]],[2,[734.9571457603006,587.5194584158918]],[5,[710.9477975918305,613.6358024691357]],[3,[698.0912208504803,600.3792866941013]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[1,1],[6,6],[2,2],[4,4],[3,3],[7,7],[5,5]],"end_point":[[4,5],[2,3],[5,6],[1,2],[7,1],[6,7],[3,4]],"handle_primary":[[5,[7.452522481329197,2.721536351166037]],[4,[2.1947873799731497,4.691071467853249]],[2,[0.0,0.0]],[1,[0.0,0.0]],[6,[15.119646395366544,2.853223593964344]],[7,[0.0,0.0]],[3,[0.0,0.0]]],"handle_end":[[3,[-2.494608558449272,-5.331900091455282]],[1,[0.0,0.0]],[2,[6.496570644718986,-11.149519890260422]],[4,null],[7,[9.28638926992835,13.56378600823075]],[6,[0.0,0.0]],[5,null]],"stroke":[[7,0],[2,0],[6,0],[1,0],[3,0],[5,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[471,{"inputs":[{"Node":{"node_id":475,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[300,{"inputs":[{"Node":{"node_id":304,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[331,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"delta":[[10,[750.8539094650207,617.9375857338821]],[8,[446.6563786008233,618.9032921810701]],[11,[675.4629629629632,591.0185185185186]],[6,[523.3861454046643,611.9385002286241]],[5,[540.9444444444443,605.8710283878144]],[1,[659.4434537418081,187.67146776406028]],[3,[588.0884773662551,227.52880658436212]],[2,[622.9855967078189,184.4670781893004]],[4,[563.1666666666666,433.38888888888886]],[9,[661.5370370370372,619.7592592592594]],[7,[486.7770919067218,613.3724279835391]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11],"remove":[],"start_point":[[6,6],[7,7],[8,8],[9,9],[1,1],[10,10],[3,3],[5,5],[2,2],[11,11],[4,4]],"end_point":[[2,3],[5,6],[7,8],[11,1],[1,2],[8,9],[10,11],[4,5],[6,7],[9,10],[3,4]],"handle_primary":[[10,[1.1851851851849915,-37.53086419753106]],[9,[43.09465020576113,-0.9876543209876444]],[8,[0.0,0.0]],[5,[0.0,0.0]],[1,[-3.9798811156837246,-1.1315348270080108]],[3,[-3.950617283950692,42.13991769547326]],[2,[-6.716049382716051,0.9218106995884908]],[4,[-10.222222222222172,79.55555555555549]],[11,[0.0,0.0]],[7,[-3.511659807956221,0.819387288523103]],[6,[0.0,0.0]]],"handle_end":[[5,[5.5601280292639785,-9.422953818016254]],[6,[5.110425979711636,-1.1924327285993286]],[4,[0.0,0.0]],[10,[0.0,0.0]],[3,[10.222222222222172,-79.55555555555549]],[9,[-22.386831275720624,5.3991769547326385]],[2,[3.950617283950692,-42.13991769547323]],[8,[-14.51772944216873,0.33272107201298695]],[1,[6.716049382716051,-0.9218106995884624]],[7,[1.5363511659809888,-3.599451303154865]],[11,null]],"stroke":[[1,0],[9,0],[10,0],[6,0],[3,0],[11,0],[2,0],[4,0],[7,0],[5,0],[8,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":11}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[191,{"inputs":[{"Node":{"node_id":194,"output_index":0}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6980979116665635870,{"inputs":[{"Node":{"node_id":5175066652268973319,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[486.78967826851385,539.8989473007496]},"exposed":false}},{"Value":{"tagged_value":{"F64":-8.547050926324854},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[24.603566707484493,77.5880766500041]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-7.194955915925423,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[393,{"inputs":[{"Node":{"node_id":394,"output_index":0}},{"Node":{"node_id":398,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[424,{"inputs":[{"Node":{"node_id":427,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.72265625,"green":0.3808298,"blue":0.2117157,"alpha":1.0}],[0.07456140350877193,{"red":0.827451,"green":0.42352942,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.84705883,"green":0.48235294,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.72265625,"green":0.3808298,"blue":0.2117157,"alpha":1.0}],[0.07456140350877193,{"red":0.827451,"green":0.42352942,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.84705883,"green":0.48235294,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[82,{"inputs":[{"Node":{"node_id":83,"output_index":0}},{"Node":{"node_id":102,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[455,{"inputs":[{"Node":{"node_id":453,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":6.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[144,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,0.5]],[3,[0.5,1.0]],[1,[0.5,0.0]],[2,[1.0,0.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[3,3],[2,2]],"end_point":[[3,4],[2,3],[1,2],[4,1]],"handle_primary":[[4,[0.0,-0.275892388889507]],[2,[0.0,0.27589238888950707]],[3,[-0.275892388889507,0.0]],[1,[0.27589238888950707,0.0]]],"handle_end":[[3,[0.0,0.27589238888950707]],[1,[0.0,-0.275892388889507]],[4,[-0.275892388889507,0.0]],[2,[0.27589238888950707,0.0]]],"stroke":[[1,0],[2,0],[4,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[175,{"inputs":[{"Node":{"node_id":176,"output_index":0}},{"Node":{"node_id":226,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[206,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"remove":[],"delta":[[8,[972.5274348422496,495.6732967535437]],[3,[971.3148148148148,466.5740740740741]],[12,[981.6851851851852,523.1666666666666]],[6,[967.9074074074072,482.8703703703703]],[5,[963.3148148148148,466.8703703703703]],[13,[967.3148148148148,531.9074074074074]],[7,[965.9814814814814,501.38888888888886]],[9,[973.0925925925924,496.5]],[1,[1009.6296296296296,552.8888888888889]],[15,[1001.8333333333334,567.0185185185184]],[10,[968.2037037037036,504.05555555555554]],[4,[956.3024691358024,462.55639384240214]],[14,[974.574074074074,539.3148148148148]],[11,[975.1666666666664,511.3148148148148]],[2,[988.351851851852,494.72222222222223]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],"remove":[],"start_point":[[11,11],[8,8],[10,10],[12,12],[6,6],[13,13],[1,1],[3,3],[2,2],[5,5],[15,15],[7,7],[14,14],[4,4],[9,9]],"end_point":[[11,12],[2,3],[4,5],[14,15],[15,1],[3,4],[7,8],[8,9],[10,11],[9,10],[5,6],[13,14],[6,7],[1,2],[12,13]],"handle_primary":[[1,[0.0,0.0]],[10,[0.0,0.0]],[15,[0.0,0.0]],[11,[3.703703703703809,-0.7407407407407618]],[9,[0.0,0.0]],[4,[0.0,0.0]],[14,[0.0,0.0]],[13,[0.0,0.0]],[3,[-4.395061728394808,-4.740740740740705]],[8,[0.0,0.0]],[2,[-6.51851851851859,-12.148148148148152]],[12,[-4.888888888889028,8.59259259259261]],[5,[2.814814814814781,3.7037037037036953]],[6,[-5.333333333333144,8.296296296296305]],[7,[0.0,0.0]]],"handle_end":[[3,[3.265062349348341,-2.124337414689535]],[13,[-4.296296296296418,-2.6666666666666288]],[2,[3.786081133230596,4.083862795394623]],[15,[-3.796296296296191,11.166666666666517]],[11,[4.8888888888888005,-8.59259259259261]],[7,[-2.6666666666667425,0.740740740740705]],[5,[5.333333333333485,-8.296296296296305]],[8,[-0.009144947416189098,-0.38774577046183367]],[12,[0.0,0.0]],[9,[0.7407407407407618,-4.0]],[10,[-3.7037037037035816,0.7407407407407618]],[6,[-1.7777777777778283,-0.8888888888889142]],[1,[6.51851851851859,12.148148148148152]],[4,[-2.814814814814781,-3.7037037037036953]],[14,[-3.4074074074073906,-0.7407407407407618]]],"stroke":[[13,0],[11,0],[9,0],[2,0],[8,0],[1,0],[14,0],[12,0],[4,0],[5,0],[10,0],[7,0],[6,0],[15,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":15}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[408,{"inputs":[{"Node":{"node_id":409,"output_index":0}},{"Node":{"node_id":411,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1453710883947581217,{"inputs":[{"Node":{"node_id":281,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[268,{"inputs":[{"Node":{"node_id":272,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[439,{"inputs":[{"Node":{"node_id":440,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[344.5177419354837,697.8333333333333]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[206.6666666666667,70.66666666666666]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12768614558324028960,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":6710503329407068595,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[128,{"inputs":[{"Node":{"node_id":132,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[159,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5],"remove":[],"delta":[[4,[249.09259259259255,770.8703703703704]],[3,[266.2777777777779,704.4077331232156]],[5,[-2.6666666666666856,770.8703703703704]],[1,[-2.6666666666667,581.3333333333333]],[2,[153.0925925925926,632.7962962962963]]]},"segments":{"add":[1,2,3,4,5],"remove":[],"start_point":[[1,1],[4,4],[2,2],[3,3],[5,5]],"end_point":[[2,3],[1,2],[5,1],[3,4],[4,5]],"handle_primary":[[2,[69.92592592592595,31.40740740740773]],[3,[8.273042653236644,16.012340619167617]],[1,[0.0,0.0]],[5,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[2,[-9.18518518518522,-17.777777777777715]],[3,[19.407407407407447,-32.148148148148266]],[5,[0.0,0.0]],[1,[-105.44980253803315,-47.36304690267639]]],"stroke":[[5,0],[4,0],[3,0],[2,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":5}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2489761779922717592,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[7,[455.2160493827161,586.8374485596709]],[2,[161.81687242798355,618.7716049382714]],[9,[447.46059205066985,619.9047655337092]],[4,[282.37654320987656,585.9814814814815]],[3,[205.93209876543213,600.5987654320988]],[6,[468.0555555555556,551.0185185185187]],[10,[288.6975308641976,620.1543209876544]],[8,[481.88271604938296,600.2037037037037]],[1,[156.18106995884773,623.2098765432096]],[5,[338.4753086419753,574.1296296296297]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[6,6],[7,7],[1,1],[8,8],[2,2],[4,4],[9,9],[5,5],[3,3],[10,10]],"end_point":[[4,5],[8,9],[7,8],[9,10],[3,4],[10,1],[2,3],[5,6],[6,7],[1,2]],"handle_primary":[[3,[21.135802469135797,-7.703703703703695]],[5,[0.0,0.0]],[4,[22.71604938271605,-4.9382716049382225]],[8,[0.0,0.0]],[9,[0.0,0.0]],[2,[5.925925925925924,-2.370370370370324]],[6,[-0.19753086419751753,-0.19753086419757435]],[7,[0.0,0.0]],[10,[-70.32098765432102,1.975308641975289]],[1,[0.0,0.0]]],"handle_end":[[9,[70.32098765432102,-1.975308641975289]],[5,[-40.09876543209879,-8.09876543209873]],[4,[0.0,0.0]],[7,[-8.691358024691567,-7.308641975308547]],[2,[-21.135802469135797,7.703703703703695]],[8,[11.358024691357969,-11.390946502057773]],[10,[41.77160493827162,-2.8703703703704377]],[6,[4.345679012345613,-25.481481481481524]],[1,[-5.925925925925924,2.370370370370324]],[3,[-22.71604938271605,4.9382716049382225]]],"stroke":[[4,0],[10,0],[2,0],[3,0],[7,0],[1,0],[9,0],[8,0],[5,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[190,{"inputs":[{"Node":{"node_id":193,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.1331892468887066,0.5346273584022614],"end":[0.8687039445257865,0.5091081472114145]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.1331892468887066,0.5346273584022614],"end":[0.8687039445257865,0.5091081472114145]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11427960919145580782,{"inputs":[{"Node":{"node_id":6873123446543957690,"output_index":0}},{"Node":{"node_id":11345069121502219134,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15848750910363784662,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":17911294938421300842,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[81,{"inputs":[{"Node":{"node_id":82,"output_index":0}},{"Node":{"node_id":87,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[15483449862348058100,{"inputs":[{"Node":{"node_id":5382879283978921947,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[283,{"inputs":[{"Node":{"node_id":16360261423333265502,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[143,{"inputs":[{"Node":{"node_id":144,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[22.81427346112025,718.7256085656885]},"exposed":false}},{"Value":{"tagged_value":{"F64":-1.6569586493181607},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[114.60967448512612,10.883703174332329]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[-0.14452841816522286,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[6873123446543957690,{"inputs":[{"Node":{"node_id":12717405604755313921,"output_index":0}},{"Node":{"node_id":3707802522175443254,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[485,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7],"remove":[],"delta":[[4,[873.611111111111,465.6111111111111]],[7,[907.1666666666664,501.16666666666663]],[6,[879.873428946497,552.0307817039356]],[5,[874.2777777777776,540.5]],[3,[873.1913580246915,359.61111111111114]],[1,[901.7869989330896,337.4632677945435]],[2,[881.6925011431184,340.0384849870446]]]},"segments":{"add":[1,2,3,4,5,6,7],"remove":[],"start_point":[[2,2],[3,3],[7,7],[6,6],[5,5],[1,1],[4,4]],"end_point":[[2,3],[6,7],[4,5],[3,4],[5,6],[1,2],[7,1]],"handle_primary":[[6,[4.0,1.7777777777777146]],[3,[0.09876543209873034,9.87654320987656]],[2,[-5.885745135394927,5.678500588373993]],[5,[1.086419753086716,4.000000000000114]],[7,[2.888888888889028,-35.111111111111086]],[1,[0.0,0.0]],[4,[-0.22222222222228535,37.77777777777777]]],"handle_end":[[5,[-4.0,-1.7777777777777146]],[3,[0.22222222222228535,-37.77777777777777]],[6,[-2.8888888888888005,35.111111111111086]],[2,[-0.09876543209873034,-9.87654320987656]],[4,[-0.9901901223357754,-3.645699995871837]],[7,[0.0,0.0]],[1,[5.5406188081085475,-5.34552659655543]]],"stroke":[[5,0],[4,0],[1,0],[7,0],[6,0],[3,0],[2,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":7}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[174,{"inputs":[{"Node":{"node_id":175,"output_index":0}},{"Node":{"node_id":220,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4633399390154487467,{"inputs":[{"Node":{"node_id":11155094820673141470,"output_index":0}},{"Value":{"tagged_value":{"F64":75.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"blending_nodes::OpacityNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[236,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[842.2716049382717,560.2962962962963]],[3,[832.8950617283951,560.829218106996]],[5,[826.9691358024693,580.1543209876544]],[6,[838.425925925926,581.0432098765433]],[4,[828.8127572016463,566.4259259259259]],[2,[837.9320987654322,560.7962962962963]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[3,3],[4,4],[6,6],[5,5],[2,2],[1,1]],"end_point":[[4,5],[1,2],[6,1],[2,3],[3,4],[5,6]],"handle_primary":[[2,[0.0,0.0]],[1,[-4.339506172839492,0.5]],[5,[0.0,0.0]],[3,[-2.1728395061728634,1.4814814814815236]],[4,[-3.649513397469832,2.8283728830390373]],[6,[0.0,0.0]]],"handle_end":[[4,[0.0,0.0]],[3,[2.633744855967052,-2.0411522633744426]],[6,[0.0,0.0]],[5,[0.0,0.0]],[2,[2.1728395061728634,-1.4814814814815236]],[1,null]],"stroke":[[5,0],[6,0],[1,0],[2,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1598976462838094167,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"delta":[[4,[500.77983539094663,544.0208428593207]],[9,[510.261316872428,573.2078189300412]],[10,[496.50000000000006,582.6234567901236]],[19,[468.05555555555594,550.6710486206383]],[5,[500.4506172839507,547.5105547934772]],[14,[496.49999999999994,603.4117893613783]],[8,[502.6234567901235,563.1154930650816]],[6,[490.17901234567904,556.0043819539711]],[2,[497.8388203017833,534.5393613778391]],[12,[513.3888888888889,585.5544307531777]],[17,[448.3683127572017,617.6340115836006]],[1,[506.7057613168725,531.9348803536052]],[20,[480.89506172839504,532.4323654930657]],[18,[438.2283950617284,585.5544307531777]],[11,[504.00617283950623,588.9444444444446]],[16,[478.9197530864198,618.6875095259874]],[15,[496.30246913580254,612.3006782502672]],[13,[516.8017832647463,593.4437585733884]],[3,[488.5329218106997,551.6587029416252]],[7,[495.90740740740733,567.882982777016]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"remove":[],"start_point":[[20,20],[4,4],[11,11],[13,13],[16,16],[3,3],[18,18],[5,5],[8,8],[19,19],[15,15],[17,17],[10,10],[2,2],[9,9],[14,14],[7,7],[6,6],[12,12],[1,1]],"end_point":[[6,7],[9,10],[16,17],[17,18],[1,2],[7,8],[20,1],[19,20],[11,12],[3,4],[10,11],[14,15],[8,9],[5,6],[4,5],[15,16],[18,19],[2,3],[13,14],[12,13]],"handle_primary":[[1,[0.0,0.0]],[18,[0.0,0.0]],[2,[-7.188100137174104,2.6138545953361927]],[4,null],[20,[7.46503467504715,-4.02781143068205]],[19,[0.0,0.0]],[13,[0.0,0.0]],[16,[0.0,0.0]],[11,[0.0,0.0]],[8,[0.0,0.0]],[6,[0.0,0.0]],[12,[0.0,0.0]],[5,[-6.737997256515712,3.1824417009599983]],[7,[0.0,0.0]],[10,[0.0,0.0]],[15,[0.0,0.0]],[9,[0.0,0.0]],[14,[0.0,0.0]],[17,[0.0,0.0]],[3,[4.565157750342848,-4.301783264746064]]],"handle_end":[[12,[-0.39506172839503506,-1.975308641975289]],[11,[-3.851851851851848,0.7581344568814075]],[6,[-2.508333333333439,-2.0902777777778283]],[15,[0.0,0.0]],[19,[-3.394604481024089,3.2873037646699004]],[17,[0.0,0.0]],[2,[0.27087722942241044,-5.120145445603839]],[16,[0.0,0.0]],[7,[-3.6872427983540206,1.4485596707820605]],[1,[3.4386245260820374,-1.250408918575317]],[20,[0.0,0.0]],[13,[0.0,0.0]],[8,[-1.7777777777777717,-5.728395061728406]],[18,[0.0,0.0]],[5,[0.0,0.0]],[3,null],[10,[-2.765432098765416,-3.555555555555543]],[14,[-0.7901234567900701,-4.938271604938336]],[9,[6.716049382716108,-8.49382716049422]],[4,null]],"stroke":[[2,0],[14,0],[7,0],[20,0],[9,0],[16,0],[12,0],[10,0],[6,0],[13,0],[11,0],[18,0],[8,0],[15,0],[3,0],[1,0],[17,0],[5,0],[4,0],[19,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":20}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12435496696188763850,{"inputs":[{"Node":{"node_id":9286544882258200464,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[96,{"inputs":[{"Node":{"node_id":99,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.7594724231651877,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.0,0.5],"end":[1.0,0.0]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[0.7594724231651877,{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Radial","start":[0.0,0.5],"end":[1.0,0.0]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[469,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13],"remove":[],"delta":[[1,[137.75,641.0]],[9,[111.83431058292848,134.6107990062408]],[13,[223.25,608.7633744855967]],[4,[50.72222222222222,278.78532235939633]],[6,[110.91975308641976,406.62345679012344]],[2,[-7.000000000000025,626.675562328647]],[10,[137.68518518518513,236.64814814814815]],[7,[129.38888888888886,443.61235349483104]],[12,[199.1666666666667,473.1666666666667]],[11,[177.83333333333343,384.49999999999994]],[5,[81.68518518518522,338.8703703703703]],[8,[82.0,29.5]],[3,[-7.030559365950182,200.5]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13],"remove":[],"start_point":[[4,4],[7,7],[2,2],[5,5],[3,3],[8,8],[6,6],[11,11],[9,9],[13,13],[10,10],[1,1],[12,12]],"end_point":[[9,10],[13,1],[3,4],[10,11],[8,9],[12,13],[6,7],[2,3],[7,8],[4,5],[11,12],[1,2],[5,6]],"handle_primary":[[3,[31.078939476013172,37.97283968100555]],[13,[0.0,0.0]],[10,[12.334360893667936,45.715346431469186]],[11,[6.410520201070284,29.915760938327992]],[9,[5.9990227504048335,27.666978771536947]],[6,[8.537957281505157,20.688127259031944]],[2,[0.0,0.0]],[1,[0.0,0.0]],[12,[11.42335240155694,63.4630688975397]],[5,[6.73334689148848,12.881185357630102]],[7,[-20.788075479416264,-70.61235349483104]],[4,[7.654320987654309,14.850480109739408]],[8,[0.0,0.0]]],"handle_end":[[5,[-10.271604938271594,-24.88888888888897]],[3,[-14.856706650648782,-28.82414089604376]],[13,[0.0,0.0]],[4,[-9.08641975308646,-17.382716049382736]],[9,[-13.510174692931455,-48.54050114169854]],[8,[-13.354098963944438,-61.58795989288773]],[1,[0.0,0.0]],[6,[0.0,0.0]],[2,[0.0,0.0]],[11,[-5.999999999999915,-33.33333333333343]],[10,[-12.0,-55.99999999999994]],[12,[0.0,0.0]],[7,[14.499999999999943,172.0]]],"stroke":[[4,0],[8,0],[12,0],[9,0],[10,0],[5,0],[1,0],[11,0],[3,0],[7,0],[13,0],[2,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":13}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[11279424538712841875,{"inputs":[{"Node":{"node_id":2489761779922717592,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[329,{"inputs":[{"Node":{"node_id":327,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4452902364641883403,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":8861964493222160710,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16894739051789815098,{"inputs":[{"Node":{"node_id":17245613731534563958,"output_index":0}},{"Value":{"tagged_value":{"DVec2":[337.1982047610469,692.7466487935636]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[50.0,50.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"DVec2":[0.0,0.0]},"exposed":false}},{"Value":{"tagged_value":{"Bool":true},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":1}},{"Import":{"import_type":{"Concrete":{"name":"f64","alias":null}},"import_index":2}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":3}},{"Import":{"import_type":{"Concrete":{"name":"glam::f64::dvec2::DVec2","alias":null}},"import_index":4}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"transform_nodes::transform_nodes::TransformNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[220,{"inputs":[{"Node":{"node_id":224,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[422,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":430,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[453,{"inputs":[{"Node":{"node_id":457,"output_index":0}},{"Value":{"tagged_value":{"Fill":"None"},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[111,{"inputs":[{"Node":{"node_id":114,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[13606781735926093266,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"delta":[[7,[702.5246913580245,600.8931773149878]],[4,[699.4958847736627,594.497256515775]],[2,[658.574074074074,609.6851851851851]],[8,[708.7139917695473,601.783950617284]],[10,[712.0500685871053,614.4420508944315]],[5,[744.3996087994716,586.9732002235431]],[3,[680.2695473251027,600.730452674897]],[6,[717.5809327846364,593.2681755829904]],[1,[645.3333333333333,614.013717421125]],[9,[713.2108672458469,610.5533455265964]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10],"remove":[],"start_point":[[3,3],[8,8],[10,10],[6,6],[2,2],[5,5],[4,4],[1,1],[9,9],[7,7]],"end_point":[[8,9],[3,4],[10,1],[1,2],[9,10],[6,7],[7,8],[4,5],[5,6],[2,3]],"handle_primary":[[7,[0.0,0.0]],[3,[7.374485596707928,-0.92181069958815]],[4,[4.444444444444002,-5.662551440328798]],[8,[0.0,0.0]],[1,[0.0,0.0]],[10,[-58.35223289132739,3.851425709744945]],[9,[0.0,0.0]],[6,[-10.886145404663694,2.8971193415636662]],[5,[0.0,0.0]],[2,[4.740740740740762,-4.148148148148152]]],"handle_end":[[9,[-0.08779149519853036,-2.2109123484780184]],[4,[-5.794238683127446,-2.0192043895747247]],[10,null],[5,[10.516302710276136,-2.79869346321857]],[6,[0.0,0.0]],[7,[-2.89711934156378,-1.975308641975289]],[2,[-6.174173455107166,0.7717716818881399]],[8,[-2.5361987501905787,-3.706752019509281]],[3,[-1.6866098186769705,2.1488658430550913]],[1,[-4.740740740740762,4.148148148148152]]],"stroke":[[2,0],[10,0],[7,0],[8,0],[9,0],[5,0],[3,0],[6,0],[4,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":10}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[2999157202967297847,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[4,[0.0,1.0]],[3,[1.0362898771040632,0.9994054840058096]],[2,[0.8379395417513005,-0.05940639119491883]],[1,[-0.09890842105846484,-0.06578040790199424]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[1,1],[3,3],[2,2]],"end_point":[[2,3],[4,1],[1,2],[3,4]],"handle_primary":[[1,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]],[4,[0.0,0.0]]],"stroke":[[2,0],[1,0],[3,0],[4,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[173,{"inputs":[{"Node":{"node_id":174,"output_index":0}},{"Node":{"node_id":214,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16360261423333265502,{"inputs":[{"Node":{"node_id":287,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Miter"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16831252454255560063,{"inputs":[{"Node":{"node_id":14080831508667499826,"output_index":0}},{"Node":{"node_id":17257434333682934071,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[406,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[1,[401.70713305898494,260.36282578875165]],[5,[332.5,581.8333333333333]],[2,[380.6371742112481,265.1035665294926]],[3,[369.7510288065844,308.3847736625514]],[6,[428.9444444444444,568.9444444444443]],[4,[353.38888888888886,444.5]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[6,6],[1,1],[5,5],[2,2],[4,4],[3,3]],"end_point":[[4,5],[1,2],[6,1],[3,4],[2,3],[5,6]],"handle_primary":[[6,[0.0,0.0]],[4,[-5.333333333333314,40.0]],[1,[-10.359396433470463,-3.160493827160451]],[5,[0.0,0.0]],[3,[-1.3105663299890011,14.89279920442118]],[2,[-10.643715697978225,7.851921416541302]]],"handle_end":[[6,[0.0,0.0]],[3,[5.333333333333314,-40.0]],[5,[0.0,0.0]],[2,[0.9657064471879266,-10.97393689986285]],[1,null],[4,[4.0,-30.666666666666742]]],"stroke":[[6,0],[5,0],[2,0],[4,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[9286544882258200464,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[480.8950617283949,532.7798353909467]],[4,[464.82921810699577,552.1378600823044]],[3,[455.2160493827161,586.837448559671]],[2,[472.818244170096,545.5973936899862]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[4,4],[2,2],[1,1],[3,3]],"end_point":[[2,3],[3,4],[1,2],[4,1]],"handle_primary":[[4,[4.236143848022095,-8.765075372687306]],[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[-5.249967385837806,9.166609721304098]]],"handle_end":[[4,[-3.58969669257732,1.843621399176868]],[2,[0.0,0.0]],[1,[5.530864197530832,-9.657064471879266]],[3,[-10.501290993452583,21.72839506172852]]],"stroke":[[4,0],[1,0],[2,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[266,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[2,[903.0185185185188,539.9074074074074]],[1,[890.376543209877,558.3271604938273]],[3,[907.9074074074074,539.3148148148149]],[4,[906.574074074074,531.3148148148149]],[8,[877.5736601163951,577.8827160493829]],[7,[902.8209876543212,578.672839506173]],[6,[931.067901234568,549.8333333333334]],[5,[916.9444444444443,525.3888888888889]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[4,4],[7,7],[3,3],[8,8],[1,1],[2,2],[5,5],[6,6]],"end_point":[[3,4],[7,8],[2,3],[5,6],[4,5],[8,1],[6,7],[1,2]],"handle_primary":[[1,[0.0,0.0]],[8,[0.0,0.0]],[6,[0.0,0.0]],[4,[0.05385802469163536,0.0]],[7,[0.0,0.0]],[2,[0.0,0.0]],[3,[0.0,0.0]],[5,[12.296296296296418,0.14814814814803867]]],"handle_end":[[6,[0.0,0.0]],[7,[0.0,0.0]],[1,[-16.592592592592723,23.703703703703923]],[2,[0.0,0.0]],[5,[0.0,0.0]],[4,[-3.0120068298679143,-0.036289238914037014]],[8,[0.0,0.0]],[3,[0.2962962962964184,4.888888888889028]]],"stroke":[[2,0],[7,0],[4,0],[5,0],[3,0],[6,0],[1,0],[8,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[126,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"remove":[],"delta":[[3,[94.12962962962963,696.9938271604938]],[13,[177.0925925925926,696.4012345679012]],[1,[83.98971193415636,727.8086419753087]],[2,[79.11728395061729,724.0555555555555]],[7,[131.06790123456793,702.1296296296296]],[10,[158.3271604938272,661.4382716049382]],[17,[209.09259259259255,727.8086419753085]],[16,[211.0679012345679,719.5123456790124]],[6,[123.75925925925928,720.3024691358024]],[11,[162.67283950617286,705.2901234567901]],[5,[115.66049382716052,719.5123456790124]],[15,[196.05555555555557,678.8209876543209]],[4,[102.03086419753087,696.7962962962963]],[8,[148.8456790123457,665.3888888888888]],[14,[188.5493827160494,680.4012345679012]],[12,[169.3888888888889,709.0432098765432]],[9,[158.40763603109284,655.1124066453283]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17],"remove":[],"start_point":[[7,7],[2,2],[1,1],[13,13],[14,14],[8,8],[10,10],[11,11],[12,12],[16,16],[17,17],[4,4],[3,3],[5,5],[6,6],[9,9],[15,15]],"end_point":[[11,12],[17,1],[2,3],[5,6],[6,7],[4,5],[16,17],[9,10],[13,14],[10,11],[14,15],[3,4],[15,16],[7,8],[12,13],[1,2],[8,9]],"handle_primary":[[16,[0.0,0.0]],[6,[0.0,0.0]],[9,[1.416857186404485,0.2219173906416927]],[5,[0.9523778763475974,1.643318688599834]],[7,[2.962962962962962,-6.320987654321016]],[13,[3.555555555555543,-7.308641975308547]],[8,[2.172839506172835,-5.3333333333332575]],[3,[2.3703703703704093,-2.5679012345678984]],[10,[-0.24572721430195088,3.082066920469856]],[15,[2.370370370370381,3.950617283950692]],[4,[3.753086419753103,4.9382716049382225]],[14,[2.3703703703703525,-2.5679012345678984]],[2,[3.2490948717098007,-6.29142916067417]],[11,[0.0,0.0]],[12,[0.0,0.0]],[1,[-3.7139917695473343,-0.22427983539080287]],[17,[-3.028806584362002,2.897119341564121]]],"handle_end":[[6,[-2.962962962962962,6.320987654321016]],[4,[-1.119341563786023,-1.9314128943758533]],[12,[-3.5555555555555713,7.308641975308547]],[17,[4.846281557722946,0.29265633783461453]],[8,[-2.3218581751052625,-0.3636645334502191]],[15,[-3.753086419753089,-24.493827160493765]],[1,[-2.4142661179698734,4.6748971193414945]],[2,[-2.3703703703703525,2.5679012345678984]],[7,[-2.172839506172835,5.3333333333332575]],[5,[-4.148148148148167,0.5925925925926094]],[9,[0.31458619112936503,-3.9457399786616634]],[14,[-2.370370370370381,-3.950617283950692]],[10,[1.1851851851851904,-8.296296296296305]],[11,[-4.148148148148152,-0.39506172839503506]],[13,[-2.370370370370381,2.5679012345678984]],[3,[-3.753086419753074,-4.9382716049382225]],[16,[3.77785186523289,-3.613597436310215]]],"stroke":[[5,0],[1,0],[2,0],[14,0],[3,0],[10,0],[4,0],[13,0],[8,0],[11,0],[16,0],[12,0],[17,0],[7,0],[6,0],[9,0],[15,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":17}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[16164610528699022118,{"inputs":[{"Node":{"node_id":7134154821675013808,"output_index":0}},{"Node":{"node_id":12875520257830460085,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[600590258445096812,{"inputs":[{"Node":{"node_id":9778003574990260202,"output_index":0}},{"Node":{"node_id":12435496696188763850,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[188,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3],"remove":[],"delta":[[2,[987.6111111111112,593.3888888888889]],[3,[1026.2777777777778,610.4999999999999]],[1,[1027.3333333333333,523.5555555555555]]]},"segments":{"add":[1,2,3],"remove":[],"start_point":[[3,3],[1,1],[2,2]],"end_point":[[3,1],[1,2],[2,3]],"handle_primary":[[1,[0.0,0.0]],[3,[0.0,0.0]],[2,[0.0,0.0]]],"handle_end":[[2,[-16.66666666666663,0.22222222222228535]],[3,[0.0,0.0]],[1,[28.22222222222217,-65.11111111111109]]],"stroke":[[2,0],[1,0],[3,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":3}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3885641499621884510,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":600590258445096812,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[421,{"inputs":[{"Node":{"node_id":422,"output_index":0}},{"Node":{"node_id":424,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[79,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":493,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[250,{"inputs":[{"Node":{"node_id":254,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.50980395,"green":0.26666668,"blue":0.2,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6377392483726765,0.3630996922378644],"end":[0.6306417402456479,0.9306187973093224]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.50980395,"green":0.26666668,"blue":0.2,"alpha":1.0}]],"gradient_type":"Linear","start":[0.6377392483726765,0.3630996922378644],"end":[0.6306417402456479,0.9306187973093224]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[281,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[6,[923.4629629629628,289.38888888888886]],[1,[1026.168038408779,250.70576131687224]],[3,[972.746913580247,118.22839506172843]],[4,[929.6851851851852,121.58641975308646]],[7,[926.7222222222222,528.7962962962963]],[5,[923.3641975308644,158.72222222222226]],[2,[998.8209876543212,150.42592592592595]],[8,[1026.2777777777776,592.5]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[7,7],[5,5],[1,1],[4,4],[6,6],[2,2],[3,3],[8,8]],"end_point":[[2,3],[8,1],[3,4],[5,6],[7,8],[1,2],[4,5],[6,7]],"handle_primary":[[3,[-17.77777777777783,-3.753086419753074]],[2,[-4.543209876543415,-11.06172839506172]],[5,[0.0,11.061728395061747]],[8,[0.0,0.0]],[6,[0.2962962962964184,19.259259259259295]],[4,[-5.135802469135797,10.864197530864176]],[1,[-10.22770919067159,-29.761316872427727]],[7,[0.0,0.0]]],"handle_end":[[6,[-2.370370370370324,-53.03703703703695]],[7,[0.0,0.0]],[5,[-0.2962962962964184,-19.259259259259295]],[1,[4.543209876543187,11.06172839506172]],[4,[0.0,-11.061728395061747]],[8,null],[2,[17.77777777777783,3.753086419753089]],[3,[5.135802469135797,-10.864197530864176]]],"stroke":[[3,0],[7,0],[8,0],[6,0],[4,0],[2,0],[1,0],[5,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5382879283978921947,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6],"remove":[],"delta":[[3,[794.0473251028808,582.3820301783265]],[5,[767.1831275720166,614.1625514403293]],[4,[789.2187928669412,601.4967933823075]],[6,[751.1172839506169,611.1776406035664]],[2,[755.3312757201647,586.2448559670783]],[1,[740.3456790123458,588.2030178326476]]]},"segments":{"add":[1,2,3,4,5,6],"remove":[],"start_point":[[5,5],[3,3],[2,2],[4,4],[6,6],[1,1]],"end_point":[[2,3],[4,5],[6,1],[3,4],[1,2],[5,6]],"handle_primary":[[5,[-11.149519890260535,0.2794994541025062]],[2,[9.481481481481524,0.4824094931645959]],[6,[0.0,0.0]],[3,[0.0,0.0]],[1,[0.0,0.0]],[4,[-8.427983539094612,8.539557783673331]]],"handle_end":[[6,[0.0,0.0]],[2,[-9.305898491083669,-1.1412894375856697]],[5,[0.0,0.0]],[4,[11.149519890260535,-0.2794994541025062]],[3,[8.427983539094612,-8.539557783673331]],[1,[-9.481481481481524,-0.4824094931645959]]],"stroke":[[4,0],[1,0],[3,0],[5,0],[2,0],[6,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":6}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[312,{"inputs":[{"Node":{"node_id":316,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[5105625446268484763,{"inputs":[{"Node":{"node_id":9422094883894860610,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[989999757220954936,{"inputs":[{"Node":{"node_id":10544930474333783117,"output_index":0}},{"Node":{"node_id":5105625446268484763,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[172,{"inputs":[{"Node":{"node_id":173,"output_index":0}},{"Node":{"node_id":208,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[436,{"inputs":[{"Node":{"node_id":439,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.7490196,"green":0.3764706,"blue":0.19215687,"alpha":1.0}],[0.08176100628930963,{"red":0.827451,"green":0.42352942,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.84705883,"green":0.48235294,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.7490196,"green":0.3764706,"blue":0.19215687,"alpha":1.0}],[0.08176100628930963,{"red":0.827451,"green":0.42352942,"blue":0.19215687,"alpha":1.0}],[1.0,{"red":0.84705883,"green":0.48235294,"blue":0.20784314,"alpha":1.0}]],"gradient_type":"Linear","start":[0.5000000000000004,0.0],"end":[0.5000000000000004,1.0]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[94,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4],"remove":[],"delta":[[1,[0.5,0.0]],[3,[0.5,1.0]],[4,[0.0,0.5]],[2,[1.0,0.5]]]},"segments":{"add":[1,2,3,4],"remove":[],"start_point":[[1,1],[2,2],[3,3],[4,4]],"end_point":[[4,1],[3,4],[1,2],[2,3]],"handle_primary":[[3,[-0.275892388889507,0.0]],[4,[0.0,-0.275892388889507]],[2,[0.0,0.27589238888950707]],[1,[0.27589238888950707,0.0]]],"handle_end":[[2,[0.27589238888950707,0.0]],[3,[0.0,0.27589238888950707]],[1,[0.0,-0.275892388889507]],[4,[-0.275892388889507,0.0]]],"stroke":[[2,0],[4,0],[3,0],[1,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":4}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[467,{"inputs":[{"Node":{"node_id":465,"output_index":0}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"F64":2.0},"exposed":false}},{"Value":{"tagged_value":{"StrokeAlign":"Center"},"exposed":false}},{"Value":{"tagged_value":{"StrokeCap":"Butt"},"exposed":false}},{"Value":{"tagged_value":{"StrokeJoin":"Round"},"exposed":false}},{"Value":{"tagged_value":{"F64":4.0},"exposed":false}},{"Value":{"tagged_value":{"PaintOrder":"StrokeAbove"},"exposed":false}},{"Value":{"tagged_value":{"VecF64":[]},"exposed":false}},{"Value":{"tagged_value":{"F64":0.0},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::StrokeNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[327,{"inputs":[{"Node":{"node_id":331,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[218,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8],"remove":[],"delta":[[4,[874.0473251028807,569.7181069958847]],[3,[872.8621399176955,563.858024691358]],[2,[890.7057613168722,514.4753086419753]],[1,[901.9820911446426,504.0199918711579]],[5,[880.5,566.7222222222222]],[7,[886.574074074074,540.0555555555557]],[8,[891.0185185185185,531.9074074074074]],[6,[888.3518518518518,541.9814814814815]]]},"segments":{"add":[1,2,3,4,5,6,7,8],"remove":[],"start_point":[[2,2],[1,1],[6,6],[7,7],[8,8],[5,5],[4,4],[3,3]],"end_point":[[1,2],[3,4],[7,8],[5,6],[4,5],[6,7],[2,3],[8,1]],"handle_primary":[[6,[0.0,0.0]],[3,[0.0,0.0]],[8,[0.0,0.0]],[1,[0.0,0.0]],[2,[-3.0946502057612406,7.835390946502002]],[7,[0.0,0.0]],[5,[0.0,0.0]],[4,[0.0,0.0]]],"handle_end":[[8,[-7.693415637860312,3.5987654320987303]],[4,[0.0,0.0]],[5,[0.0,0.0]],[6,[0.0,0.0]],[3,[0.0,0.0]],[7,[0.0,0.0]],[2,[7.111111111111086,-11.522633744855966]],[1,[3.0946502057612406,-7.835390946502002]]],"stroke":[[2,0],[8,0],[1,0],[5,0],[3,0],[6,0],[4,0],[7,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":8}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[78,{"inputs":[{"Node":{"node_id":79,"output_index":0}},{"Node":{"node_id":477,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[451,{"inputs":[{"Value":{"tagged_value":{"Graphic":{"element":[],"transform":[],"alpha_blending":[],"source_node_id":[]}},"exposed":true}},{"Node":{"node_id":471,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[109,{"inputs":[{"Value":{"tagged_value":{"Vector":{"element":[{"style":{"stroke":{"color":{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0},"weight":0.0,"dash_lengths":[],"dash_offset":0.0,"cap":"Butt","join":"Miter","join_miter_limit":4.0,"align":"Center","transform":[1.0,0.0,0.0,1.0,0.0,0.0],"non_scaling":false,"paint_order":"StrokeAbove"},"fill":"None"},"colinear_manipulators":[],"point_domain":{"id":[],"position":[]},"segment_domain":{"id":[],"start_point":[],"end_point":[],"handles":[],"stroke":[]},"region_domain":{"id":[],"segment_range":[],"fill":[]},"upstream_data":null}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":true}},{"Value":{"tagged_value":{"VectorModification":{"points":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"remove":[],"delta":[[48,[1078.092184072945,124.46115941908752]],[35,[1281.975669959602,393.04367149377714]],[4,[956.3057818366484,357.1601779777255]],[15,[728.4999669392903,519.7232773913535]],[39,[1145.5096567394662,398.4805644507546]],[25,[1110.71354181481,529.509684713913]],[5,[914.9853953636192,333.78153826272217]],[14,[783.956275100461,458.8300762732051]],[40,[1180.3057716641222,344.11163488097947]],[33,[1284.1504271423933,435.99512585389954]],[9,[770.907732003715,320.7329951659761]],[31,[1336.888288825075,539.8397813321702]],[51,[994.3640325354912,266.3640655962009]],[2,[910.288570576692,217.7758226144784]],[41,[1216.7329544758718,262.5582405263166]],[11,[730.1310348263835,333.2378489670244]],[22,[1000.3446147881664,518.0922095042602]],[29,[1205.8591685619167,441.9757081065748]],[3,[943.8009280356002,277.78154080585364]],[44,[1156.927131949119,259.8397940478278]],[36,[1387.451393324966,404.4611467034299]],[37,[1302.6358631961166,363.1407602304008]],[8,[810.5970505896508,321.8203737573716]],[34,[1256.9659623575055,413.8640589204806]],[38,[1223.8009153199428,370.7524103701693]],[10,[670.8689015953286,344.1116348809794]],[43,[1210.2086829274988,227.76212560166044]],[49,[1038.402865487009,182.635914058747]],[19,[988.3834502828158,483.83978387530175]],[26,[1143.3348995566753,518.6358987999579]],[23,[972.616460707581,519.7232773913535]],[42,[1287.4125629165796,203.2961072952616]],[28,[1134.0921815298134,465.8980371172759]],[6,[838.3252046702362,291.37377319829744]],[52,[939.3251404063708,207.7548507796705]],[12,[783.956275100461,383.2572641712176]],[21,[990.5582074656068,498.5193948591411]],[30,[1277.62615559402,478.946580214022]],[32,[1323.839745728329,479.4902695097197]],[16,[763.8397711596442,482.7524052839062]],[7,[758.9465674983644,277.2378515101559]],[13,[885.0824841002429,442.5193974022726]],[27,[1093.315484352482,509.93687006879384]],[24,[1014.480536476308,543.1019171063567]],[50,[1016.655293659099,296.810666155275]],[45,[1105.8203381535304,315.83979150469634]],[18,[909.5485024066418,487.10191964948825]],[46,[1098.7523773094597,263.6456191177121]],[1,[865.1205730638582,195.5865278374037]],[47,[1073.742669707363,200.0339715210751]],[17,[813.8591863638374,482.2087159882085]],[20,[969.8980142290924,494.7135697892568]]]},"segments":{"add":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52],"remove":[],"start_point":[[28,28],[39,39],[29,29],[38,38],[23,23],[10,10],[36,36],[44,44],[46,46],[45,45],[1,1],[12,12],[17,17],[6,6],[20,20],[40,40],[27,27],[4,4],[7,7],[47,47],[15,15],[41,41],[42,42],[19,19],[13,13],[9,9],[16,16],[52,52],[5,5],[51,51],[33,33],[21,21],[32,32],[34,34],[30,30],[31,31],[24,24],[25,25],[43,43],[11,11],[14,14],[2,2],[18,18],[3,3],[50,50],[49,49],[8,8],[35,35],[37,37],[22,22],[26,26],[48,48]],"end_point":[[40,41],[38,39],[16,17],[37,38],[31,32],[44,45],[13,14],[26,27],[24,25],[50,51],[20,21],[10,11],[18,19],[36,37],[1,2],[12,13],[32,33],[27,28],[7,8],[8,9],[52,1],[33,34],[4,5],[30,31],[17,18],[49,50],[39,40],[42,43],[48,49],[15,16],[51,52],[21,22],[41,42],[19,20],[46,47],[6,7],[23,24],[22,23],[29,30],[5,6],[47,48],[43,44],[2,3],[35,36],[14,15],[9,10],[11,12],[28,29],[3,4],[25,26],[34,35],[45,46]],"handle_primary":[[14,[-44.03883295151786,20.11650394081687]],[49,[-10.873785913954862,28.81553267198086]],[51,[-18.48543605372367,-25.009707602096626]],[11,[26.097086193492142,5.980582252675276]],[22,[0.0,0.0]],[28,[0.0,0.0]],[9,[-26.64077548918988,2.7184464784887723]],[2,[16.937999067312603,14.3156740497256]],[26,[0.0,0.0]],[42,[0.0,0.0]],[48,[0.0,0.0]],[5,[-19.02912534942118,-15.766989575234843]],[16,[14.13592168814148,-1.631067887093252]],[37,[-48.38834731709994,-2.174757182791041]],[31,[0.0,0.0]],[32,[-24.466018306398837,-28.81553267198086]],[24,[39.145629290237935,9.786407322559626]],[23,[0.0,0.0]],[44,[-21.74757182791018,14.135921688141591]],[18,[18.485436053723447,-2.7184464784887723]],[46,[-6.524271548372781,-16.310678870932577]],[34,[0.0,0.0]],[12,[41.864075768726934,30.606794749262978]],[29,[20.116503940816983,1.631067887093252]],[1,[0.0,0.0]],[30,[26.097086193492032,5.436892956977488]],[45,[0.0,0.0]],[43,[-16.310678870932634,13.048543096746071]],[38,[-17.941746758026056,-1.0873785913955205]],[10,[0.0,0.0]],[13,[0.0,0.0]],[36,[0.0,0.0]],[27,[0.0,0.0]],[6,[-25.00970760209657,-1.0873785913954634]],[41,[15.427586663144211,-29.493915679540574]],[20,[0.0,0.0]],[4,[0.0,0.0]],[47,[-1.6310678870931952,-7.611650139768528]],[17,[31.53397915046969,11.961164505350553]],[35,[8.699028731163935,-10.3300966182573]],[21,[0.0,0.0]],[39,[0.0,0.0]],[52,[-26.097086193492142,-12.504853801048256]],[3,[7.06796084407074,48.3883473171]],[19,[0.0,0.0]],[40,[12.504853801048512,-14.135921688141591]],[50,[0.0,0.0]],[15,[0.0,0.0]],[25,[14.679610983839666,-8.155339435466317]],[8,[0.0,0.0]],[7,[0.0,0.0]],[33,[-13.048543096746243,-19.57281464511908]]],"handle_end":[[17,[-18.48543605372356,2.7184464784887723]],[46,[1.6310678870931952,7.611650139768528]],[28,[-20.11650394081721,-1.6310678870931952]],[3,[5.436892956977545,-25.553396897794357]],[20,[-4.8932036612795855,-5.980582252675276]],[45,[6.524271548372553,16.310678870932577]],[39,[-9.034630967226803,10.21306109338667]],[52,[21.791261123607796,0.5873785913955203]],[35,[-71.76698703210332,-41.864075768726934]],[48,[10.87378591395509,-28.81553267198086]],[7,[-5.436892956977545,-19.029125349421292]],[26,[30.446600559074568,-5.980582252675276]],[30,[-0.5436892956979591,-24.46601830639895]],[33,[0.0,0.0]],[36,[48.388347317099715,2.174757182790927]],[49,[-5.98058225267539,-75.02912280628982]],[24,[-14.67961098383944,8.155339435466317]],[13,[44.03883295151786,-20.11650394081687]],[29,[-26.097086193492032,-5.436892956977488]],[38,[0.0,0.0]],[32,[13.048543096746243,19.57281464511908]],[25,[-12.504853801048284,-3.262135774186504]],[1,[-14.628148339931158,-12.363432230293256]],[16,[-31.53397915046969,-11.961164505350553]],[31,[24.466018306399064,28.81553267198086]],[21,[-4.3495143655819675,-3.262135774186504]],[15,[-14.13592168814148,1.631067887093252]],[47,[-22.83495041930587,36.42718281174942]],[34,[-8.699028731163935,10.330096618257244]],[23,[-39.14562929023816,-9.786407322559626]],[9,[27.18446478488761,-22.291261123607853]],[11,[-41.864075768726934,-30.606794749263088]],[19,[3.805825069884008,-5.436892956977601]],[2,[-7.067960844070626,-48.3883473171]],[18,[-11.41747520965282,-9.242718026861724]],[10,[-26.097086193492142,-5.980582252675276]],[42,[16.310678870932634,-13.048543096746071]],[44,[0.0,0.0]],[43,[21.74757182791018,-14.135921688141565]],[6,[0.0,0.0]],[5,[25.00970760209657,1.0873785913954634]],[51,[26.097086193492032,12.50485380104834]],[50,[18.48543605372356,25.009707602096626]],[4,[19.02912534942141,15.766989575234843]],[22,[3.805825069884122,-4.3495143655819675]],[40,[-18.48543605372356,35.33980422035398]],[8,[26.64077548918988,-2.7184464784887723]],[37,[17.941746758026056,1.0873785913955205]],[27,[-8.15533943546643,25.00970760209657]],[41,[-32.07766844616731,15.223300279537028]],[14,[0.0,0.0]],[12,[-31.533979150469577,-8.15533943546626]]],"stroke":[[47,0],[42,0],[41,0],[35,0],[52,0],[13,0],[24,0],[31,0],[37,0],[3,0],[25,0],[48,0],[10,0],[17,0],[18,0],[50,0],[22,0],[44,0],[14,0],[51,0],[27,0],[32,0],[8,0],[7,0],[45,0],[34,0],[28,0],[11,0],[2,0],[29,0],[23,0],[19,0],[15,0],[20,0],[40,0],[30,0],[4,0],[49,0],[26,0],[5,0],[16,0],[36,0],[12,0],[43,0],[46,0],[1,0],[6,0],[9,0],[38,0],[33,0],[21,0],[39,0]]},"regions":{"add":[0],"remove":[],"segment_range":[[0,{"start":1,"end":52}]],"fill":[[0,0]]},"add_g1_continuous":[],"remove_g1_continuous":[]}},"exposed":false}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":1,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Concrete":{"name":"graphene_core::table::Table","alias":null}},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Import":{"import_type":{"Concrete":{"name":"graphene_core::vector::vector_modification::VectorModification","alias":null}},"import_index":1}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"vector_nodes::vector_modification_nodes::PathModifyNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[12325841371509826180,{"inputs":[{"Node":{"node_id":6980979116665635870,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.08732233199581252,0.5212000945774993],"end":[0.9287098983518448,0.5070261975055625]}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.3764706,"green":0.23529412,"blue":0.20784314,"alpha":1.0}],[1.0,{"red":0.5058824,"green":0.26666668,"blue":0.20392157,"alpha":1.0}]],"gradient_type":"Linear","start":[0.08732233199581252,0.5212000945774993],"end":[0.9287098983518448,0.5070261975055625]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[140,{"inputs":[{"Node":{"node_id":143,"output_index":0}},{"Value":{"tagged_value":{"Fill":{"Solid":{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}}},"exposed":false}},{"Value":{"tagged_value":{"Color":{"element":[{"red":0.24313726,"green":0.18431373,"blue":0.19215687,"alpha":1.0}],"transform":[[1.0,0.0,0.0,1.0,0.0,0.0]],"alpha_blending":[{"blend_mode":"Normal","opacity":1.0,"fill":1.0,"clip":false}],"source_node_id":[null]}},"exposed":false}},{"Value":{"tagged_value":{"Gradient":{"stops":[[0.0,{"red":0.0,"green":0.0,"blue":0.0,"alpha":1.0}],[1.0,{"red":1.0,"green":1.0,"blue":1.0,"alpha":1.0}]],"gradient_type":"Linear","start":[0.0,0.5],"end":[1.0,0.5]}},"exposed":false}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::vector::FillNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[171,{"inputs":[{"Node":{"node_id":172,"output_index":0}},{"Node":{"node_id":202,"output_index":0}}],"call_argument":{"Generic":"T"},"implementation":{"Network":{"exports":[{"Node":{"node_id":4,"output_index":0}}],"nodes":[[0,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ToGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[4,{"inputs":[{"Node":{"node_id":0,"output_index":0}},{"Node":{"node_id":3,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::ExtendNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[3,{"inputs":[{"Node":{"node_id":2,"output_index":0}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphene_core::memo::MonitorNode"}},"visible":true,"skip_deduplication":true,"context_features":{"extract":"","inject":""}}],[2,{"inputs":[{"Node":{"node_id":1,"output_index":0}},{"Reflection":"DocumentNodePath"}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::SourceNodeIdNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}],[1,{"inputs":[{"Import":{"import_type":{"Generic":"T"},"import_index":1}}],"call_argument":{"Concrete":{"name":"core::option::Option>","alias":null}},"implementation":{"ProtoNode":{"name":"graphic_nodes::graphic::WrapGraphicNode"}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]}},"visible":true,"skip_deduplication":false,"context_features":{"extract":"","inject":""}}]],"scope_injections":[]},"network_metadata":{"persistent_metadata":{"node_metadata":[[155,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[430,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[481,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[166,{"persistent_metadata":{"reference":"Merge","display_name":"Left Slab Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":33}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[418,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[402,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[15483449862348058100,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[78,{"persistent_metadata":{"reference":"Merge","display_name":"Distant Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":12}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10544930474333783117,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[161,{"persistent_metadata":{"reference":"Merge","display_name":"Rocky Outcropping","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-15,55]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[190,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[118,{"persistent_metadata":{"reference":"Merge","display_name":"Highlight","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[442,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[18142347460553706128,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[1644624352314732667,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","unit":"x","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[394,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[411,{"persistent_metadata":{"reference":"Merge","display_name":"From Spike Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,217]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[175,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[459,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[475,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[114,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[232,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[83,{"persistent_metadata":{"reference":"Merge","display_name":"Stone Cluster","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1453710883947581217,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[134,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[287,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[128,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[229,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[224,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[236,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[108,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11155094820673141470,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[275,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[36935169817407978,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,160]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[257,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[446,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[413,{"persistent_metadata":{"reference":"Merge","display_name":"From Left Slab Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[99,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":"x","x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[497,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7134154821675013808,{"persistent_metadata":{"reference":"Merge","display_name":"Left Slope Shading","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[81,{"persistent_metadata":{"reference":"Merge","display_name":"Left Plinth","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-15,7]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[88,{"persistent_metadata":{"reference":"Merge","display_name":"Left Plinth","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[450,{"persistent_metadata":{"reference":"Merge","display_name":"Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16894739051789815098,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[181,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[439,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11891167879168294182,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[469,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[989999757220954936,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[164,{"persistent_metadata":{"reference":"Merge","display_name":"Center Slab Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":15}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[97478832511923699,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","unit":" px","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"unit":"x","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[268,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[448,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow Fissure","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-15,238]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[115,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[2999157202967297847,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[250,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[206,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4454263454059119441,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[227,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4633399390154487467,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[290,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14433811491576609500,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14205611254835578455,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"y":"Y","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,208]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[13606781735926093266,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17257434333682934071,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[316,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[274,{"persistent_metadata":{"reference":"Merge","display_name":"Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,121]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[291,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[90,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11807598261442997948,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17173383864410319040,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6272196533192700024,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"Y","unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[93,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","x":"X","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","y":"H","is_integer":false,"x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[254,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[111,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[169,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[193,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","y":"Y","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[200,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12325841371509826180,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[433,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"x":"X","unit":" px","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","is_integer":false,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16360261423333265502,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[168,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,58]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[230,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10486443711686704000,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[404,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[103,{"persistent_metadata":{"reference":"Merge","display_name":"Right Plinth","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9778003574990260202,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[226,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[281,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-53,121]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[327,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[11377169273880889832,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[496,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[79,{"persistent_metadata":{"reference":"Merge","display_name":"Sky","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17911294938421300842,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[174,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[179,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[398,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6710503329407068595,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,106]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[75,{"persistent_metadata":{"reference":"Merge","display_name":"Slab Spires","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":45}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9570557034533539493,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16831252454255560063,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[126,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[259,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","is_integer":false,"y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","is_integer":false,"y":"H","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11472292186872186521,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","x":"X","y":"Y","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":"x","x":"W","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,43]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[105,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14113040319560793790,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[463,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[178,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5175066652268973319,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15552693212536925398,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[16815500381887058038,{"persistent_metadata":{"reference":"Artboard","display_name":"Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Artboards","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Contents","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":true,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Location","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":true,"x":"W","y":"H"},"widget_override":"vec2","input_name":"Dimensions","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"artboard_background","input_name":"Background","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Clip","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-1,1]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-4]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Create Artboard","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[445,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"unit":" px","is_integer":false,"x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","unit":"x","is_integer":false},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[6926019345498826421,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[453,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-43,238]}}},"network_metadata":null}}],[306,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5382879283978921947,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[77,{"persistent_metadata":{"reference":"Merge","display_name":"Spike Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":33}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14335659566300901430,{"persistent_metadata":{"reference":"Merge","display_name":"Soft Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[238,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[143,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"unit":" px","x":"X","y":"Y"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","unit":"x","is_integer":false,"y":"H"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[408,{"persistent_metadata":{"reference":"Merge","display_name":"Reflections","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[177,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[493,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[176,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11345069121502219134,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[318,{"persistent_metadata":{"reference":"Merge","display_name":"Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,139]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12717405604755313921,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16164610528699022118,{"persistent_metadata":{"reference":"Merge","display_name":"Spike Spire Corner Slope","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-15,202]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[196,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[451,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow Upper","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[102,{"persistent_metadata":{"reference":"Merge","display_name":"Agave Plant","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,19]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[491,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3707802522175443254,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6015109908395573189,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","unit":" px","is_integer":false,"x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[188,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12435496696188763850,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[120,{"persistent_metadata":{"reference":"Merge","display_name":"Ground Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[262,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[449,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow Lower","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1635416892097245588,{"persistent_metadata":{"reference":"Merge","display_name":"Shading","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[144,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17245613731534563958,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[427,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","y":"Y","unit":" px","is_integer":false},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"is_integer":false,"y":"H","x":"W","unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[12768614558324028960,{"persistent_metadata":{"reference":"Merge","display_name":"Slope","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[214,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[82,{"persistent_metadata":{"reference":"Merge","display_name":"Right Plinth","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7148230379224894975,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[1598976462838094167,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[465,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[436,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[248,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[109,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[119,{"persistent_metadata":{"reference":"Merge","display_name":"Highlight","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[212,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[467,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[94,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[409,{"persistent_metadata":{"reference":"Merge","display_name":"Ground","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":15}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[117,{"persistent_metadata":{"reference":"Merge","display_name":"Stones","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,28]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[242,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[415,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[455,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[440,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3719764965605527929,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15848750910363784662,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[182,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[600590258445096812,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,169]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[477,{"persistent_metadata":{"reference":"Merge","display_name":"Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-15,253]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[9286544882258200464,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[16821952675128396603,{"persistent_metadata":{"reference":"Merge","display_name":"Main Slope","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,157]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[300,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[173,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11427960919145580782,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[412,{"persistent_metadata":{"reference":"Merge","display_name":"From Center Slab Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[202,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[331,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[208,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12875520257830460085,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5364427239360309137,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[96,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[419,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[87,{"persistent_metadata":{"reference":"Merge","display_name":"Ball","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,10]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[5714505144727602368,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"unit":" px","x":"X"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"W","y":"H","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[471,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[406,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[244,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[6873123446543957690,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[312,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[256,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[457,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-36,238]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[171,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[170,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[428,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[272,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[4452902364641883403,{"persistent_metadata":{"reference":"Merge","display_name":"Soft Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[434,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[277,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[184,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[2489761779922717592,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[321,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-53,139]}}},"network_metadata":null}}],[6980979116665635870,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"Y","is_integer":false,"x":"X","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","x":"W","is_integer":false,"unit":"x"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[400,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[74,{"persistent_metadata":{"reference":"Merge","display_name":"Foreground","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-5,4]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[122,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[14579754335592291854,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[4913361824430066698,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[487,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[194,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3885641499621884510,{"persistent_metadata":{"reference":"Merge","display_name":"Rock Outcropping","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":6}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[11279424538712841875,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[191,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[325,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-46,139]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[180,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[14080831508667499826,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[260,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[132,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[159,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[218,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[15277819403265847073,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[10278740841813346388,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[172,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[76,{"persistent_metadata":{"reference":"Merge","display_name":"Ground","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":144}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[220,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[478,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[266,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[329,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[5105625446268484763,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[12068777759187203228,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[100,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17414691604179185270,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[283,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[8861964493222160710,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[140,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9422094883894860610,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[138,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[485,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[17020523203516467057,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[85,{"persistent_metadata":{"reference":"Merge","display_name":"Left Slope","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":21}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[421,{"persistent_metadata":{"reference":"Merge","display_name":"Left Half","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-35,223]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[7135480377162524224,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"x":"X","is_integer":false,"y":"Y","unit":" px"},"widget_override":"vec2","input_name":"Translation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_rotation","input_name":"Rotation","input_description":"TODO"}},{"persistent_metadata":{"input_data":{"y":"H","is_integer":false,"unit":"x","x":"W"},"widget_override":"vec2","input_name":"Scale","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"transform_skew","input_name":"Skew","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Origin Offset","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":"hidden","input_name":"Scale Appearance","input_description":""}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Transform","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[396,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[310,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[304,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[319,{"persistent_metadata":{"reference":"Merge","display_name":"Shadow","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[323,{"persistent_metadata":{"reference":"Stroke","display_name":"Stroke","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the stroke style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Color","input_description":"The stroke color.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Weight","input_description":"The stroke weight.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Align","input_description":"The alignment of stroke to the path's centerline or (for closed shapes) the inside or outside of the shape.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Cap","input_description":"The shape of the stroke at open endpoints.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Join","input_description":"The curvature of the bent stroke at sharp corners.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Miter Limit","input_description":"The threshold for when a miter-joined stroke is converted to a bevel-joined stroke when a sharp angle becomes pointier than this ratio.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Paint Order","input_description":"The order to paint the stroke on top of the fill, or the fill on top of the stroke.\n\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Lengths","input_description":"The stroke dash lengths. Each length forms a distance in a pattern where the first length is a dash, the second is a gap, and so on. If the list is an odd length, the pattern repeats with solid-gap roles reversed.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Dash Offset","input_description":"The phase offset distance from the starting point of the dash pattern.\n"}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[9603838021022368374,{"persistent_metadata":{"reference":"Path","display_name":"Path","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Modification","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":{"persistent_metadata":{"node_metadata":[[1,{"persistent_metadata":{"reference":null,"display_name":"Path Modify","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[7,0]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,0]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[3930114406985796561,{"persistent_metadata":{"reference":"Opacity","display_name":"Opacity","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Value","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Opacity","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[165,{"persistent_metadata":{"reference":"Merge","display_name":"Rocky Slope","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":15}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[424,{"persistent_metadata":{"reference":"Fill","display_name":"Fill","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Content","input_description":"The content with vector paths to apply the fill style to.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Fill","input_description":"The fill to paint the path with.\n"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Color","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Backup Gradient","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":"Chain"}},"network_metadata":null}}],[292,{"persistent_metadata":{"reference":"Merge","display_name":"","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[162,{"persistent_metadata":{"reference":"Merge","display_name":"Right Slab Spire","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":60}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[422,{"persistent_metadata":{"reference":"Merge","display_name":"Right Half","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Stack":0}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}],[393,{"persistent_metadata":{"reference":"Merge","display_name":"Face","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Graphical Data","input_description":"TODO"}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"Over","input_description":"TODO"}}],"output_names":[""],"locked":false,"pinned":false,"node_type_metadata":{"Layer":{"position":{"Absolute":[-25,193]}}},"network_metadata":{"persistent_metadata":{"node_metadata":[[3,{"persistent_metadata":{"reference":null,"display_name":"Monitor","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-7,-1]}}},"network_metadata":null}}],[4,{"persistent_metadata":{"reference":null,"display_name":"Extend","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[0,-3]}}},"network_metadata":null}}],[2,{"persistent_metadata":{"reference":null,"display_name":"Source Node ID","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}},{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-14,-1]}}},"network_metadata":null}}],[0,{"persistent_metadata":{"reference":null,"display_name":"To Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-3]}}},"network_metadata":null}}],[1,{"persistent_metadata":{"reference":null,"display_name":"Wrap Graphic","input_metadata":[{"persistent_metadata":{"input_data":{},"widget_override":null,"input_name":"","input_description":""}}],"output_names":[],"locked":false,"pinned":false,"node_type_metadata":{"Node":{"position":{"Absolute":[-21,-1]}}},"network_metadata":null}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[0.0,0.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,0.0,0.0],"node_graph_top_right":[0.0,0.0]},"selection_undo_history":[],"selection_redo_history":[]}}}}]],"previewing":"No","navigation_metadata":{"node_graph_ptz":{"pan":[459.0,-501.0],"tilt":0.0,"zoom":1.0,"flip":false},"node_graph_to_viewport":[1.0,0.0,0.0,1.0,1450.0,80.0],"node_graph_top_right":[1980.796875,0.0]},"selection_undo_history":[[],[],[]],"selection_redo_history":[]}}},"collapsed":[75,82,88,89,83,103,104,84,118,119,120,121,1635416892097245589,11472292186872186522,4452902364641883404,86,76,162,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,12768614558324028961,6710503329407068596,16831252454255560064,14080831508667499827,11377169273880889833,163,275,276,11427960919145580783,6873123446543957691,12717405604755313922,165,319,320,291,292,293,166,16821952675128396604,36935169817407979,15848750910363784663,3885641499621884511,600590258445096813,9778003574990260203,6926019345498826422,989999757220954937,10544930474333783118,17173383864410319041,15277819403265847074,167,394,395,77,16164610528699022119,7134154821675013809,14205611254835578456,14335659566300901431,409,412,413,422,423,414,410,78,449,450,451,452,79,478,479,80],"commit_hash":"","document_ptz":{"pan":[-507.74999999999994,-385.9351851851852],"tilt":0.0,"zoom":1.0,"flip":false},"document_mode":"DesignMode","render_mode":"Normal","overlays_visibility_settings":{"all":true,"artboard_name":true,"compass_rose":true,"quick_measurement":true,"transform_measurement":true,"transform_cage":true,"hover_outline":true,"selection_outline":true,"pivot":true,"origin":true,"path":true,"anchors":true,"handles":true},"rulers_visible":true,"snapping_state":{"snapping_enabled":true,"grid_snapping":false,"artboards":true,"tolerance":8.0,"bounding_box":{"center_point":true,"corner_point":true,"edge_midpoint":true,"align_with_edges":true,"distribute_evenly":true},"path":{"anchor_point":true,"line_midpoint":true,"along_path":true,"normal_to_path":true,"tangent_to_path":true,"path_intersection_point":true,"align_with_anchor_point":true,"perpendicular_from_endpoint":true},"grid":{"origin":[0.0,0.0],"grid_type":{"Rectangular":{"spacing":[1.0,1.0]}},"rectangular_spacing":[1.0,1.0],"isometric_y_spacing":1.0,"isometric_angle_a":30.0,"isometric_angle_b":30.0,"grid_color":{"red":0.6038274,"green":0.6038274,"blue":0.6038274,"alpha":1.0},"dot_display":false}},"graph_view_overlay_open":false,"graph_fade_artwork_percentage":80.0} \ No newline at end of file diff --git a/deny.toml b/deny.toml index 9f89b1228..ca81b234a 100644 --- a/deny.toml +++ b/deny.toml @@ -39,11 +39,7 @@ db-urls = ["https://github.com/rustsec/advisory-db"] # A list of advisory IDs to ignore. Note that ignored advisories will still # output a note when they are encountered. ignore = [ - "RUSTSEC-2024-0370", # Unmaintained but still fully functional crate `proc-macro-error` - "RUSTSEC-2024-0388", # Unmaintained but still fully functional crate `derivative` - "RUSTSEC-2025-0007", # Unmaintained but still fully functional crate `ring` "RUSTSEC-2024-0436", # Unmaintained but still fully functional crate `paste` - "RUSTSEC-2025-0014", # Unmaintained but still fully functional crate `humantime` ] # Threshold for security vulnerabilities, any vulnerability with a CVSS score # lower than the range specified will be ignored. Note that ignored advisories @@ -63,25 +59,25 @@ ignore = [ # See https://spdx.org/licenses/ for list of possible licenses # [possible values: any SPDX 3.11 short identifier (+ optional exception)]. # -# Keep this list in sync with those in `/about.toml` and `/frontend/vite.config.ts`. allow = [ - "Apache-2.0 WITH LLVM-exception", - "Apache-2.0", - "BSD-2-Clause", - "BSD-3-Clause", - "BSL-1.0", - "CC0-1.0", - "CDLA-Permissive-2.0", - "ISC", - "MIT-0", - "MIT", - "MPL-2.0", - "OpenSSL", - "Unicode-3.0", - "Unicode-DFS-2016", - "Zlib", - "NCSA", - "bzip2-1.0.6", + "Apache-2.0 WITH LLVM-exception", # Keep this list in sync with those in `/about.toml` + "Apache-2.0", # Keep this list in sync with those in `/about.toml` + "BSD-2-Clause", # Keep this list in sync with those in `/about.toml` + "BSD-3-Clause", # Keep this list in sync with those in `/about.toml` + "BSL-1.0", # Keep this list in sync with those in `/about.toml` + "CC0-1.0", # Keep this list in sync with those in `/about.toml` + "CDLA-Permissive-2.0", # Keep this list in sync with those in `/about.toml` + "ISC", # Keep this list in sync with those in `/about.toml` + "MIT-0", # Keep this list in sync with those in `/about.toml` + "MIT", # Keep this list in sync with those in `/about.toml` + "MPL-2.0", # Keep this list in sync with those in `/about.toml` + "OpenSSL", # Keep this list in sync with those in `/about.toml` + "Unicode-3.0", # Keep this list in sync with those in `/about.toml` + "Unicode-DFS-2016", # Keep this list in sync with those in `/about.toml` + "Zlib", # Keep this list in sync with those in `/about.toml` + "NCSA", # Keep this list in sync with those in `/about.toml` + "bzip2-1.0.6", # Keep this list in sync with those in `/about.toml` + "OFL-1.1", # Keep this list in sync with those in `/about.toml` ] # The confidence threshold for detecting a license from license text. # The higher the value, the more closely the license text must be to the diff --git a/desktop/Cargo.toml b/desktop/Cargo.toml index 03768efd3..377cb2b23 100644 --- a/desktop/Cargo.toml +++ b/desktop/Cargo.toml @@ -2,40 +2,68 @@ name = "graphite-desktop" version = "0.1.0" description = "Graphite Desktop" -authors = ["Graphite Authors "] +authors = ["Graphite Authors "] license = "Apache-2.0" repository = "" edition = "2024" rust-version = "1.87" +[[bin]] +name = "graphite" +path = "src/main.rs" + [features] -default = ["gpu"] -gpu = ["graphite-editor/gpu"] +default = ["recommended", "embedded_resources"] +recommended = ["gpu", "accelerated_paint"] +embedded_resources = ["dep:graphite-desktop-embedded-resources"] +gpu = ["graphite-desktop-wrapper/gpu"] +accelerated_paint = ["cef/accelerated_osr"] [dependencies] -# # Local dependencies -graphite-editor = { path = "../editor", features = [ - "gpu", - "ron", - "vello", -] } -graphene-std = { workspace = true } -graph-craft = { workspace = true } -wgpu-executor = { workspace = true } +# Local dependencies +graphite-desktop-wrapper = { path = "wrapper" } +graphite-desktop-embedded-resources = { path = "embedded-resources", optional = true } wgpu = { workspace = true } -winit = { workspace = true, features = ["serde"] } +winit = { workspace = true, features = [ "wayland-csd-adwaita-notitlebar", "serde" ] } thiserror = { workspace = true } futures = { workspace = true } cef = { workspace = true } -include_dir = { workspace = true } +cef-dll-sys = { workspace = true } tracing-subscriber = { workspace = true } tracing = { workspace = true } dirs = { workspace = true } -ron = { workspace = true} +ron = { workspace = true } bytemuck = { workspace = true } glam = { workspace = true } vello = { workspace = true } derivative = { workspace = true } rfd = { workspace = true } open = { workspace = true } +rand = { workspace = true, features = ["thread_rng"] } +serde = { workspace = true } +clap = { workspace = true, features = ["derive"] } +pidlock = "0.2.2" +ctrlc = "3.5.1" +window_clipboard = "0.5" + +# Windows-specific dependencies +[target.'cfg(target_os = "windows")'.dependencies] +windows = { version = "0.58.0", features = [ + "Win32_Foundation", + "Win32_Graphics_Dwm", + "Win32_Graphics_Gdi", + "Win32_System_LibraryLoader", + "Win32_System_Com", + "Win32_UI_Controls", + "Win32_UI_WindowsAndMessaging", + "Win32_UI_HiDpi", + "Win32_UI_Shell", +] } + +# macOS-specific dependencies +[target.'cfg(target_os = "macos")'.dependencies] +objc2 = { version = "0.6.1", default-features = false } +objc2-foundation = { version = "0.3.2", default-features = false } +objc2-app-kit = { version = "0.3.2", default-features = false } +muda = { git = "https://github.com/tauri-apps/muda.git", rev = "3f460b8fbaed59cda6d95ceea6904f000f093f15", default-features = false } diff --git a/desktop/assets/rs.graphite.GraphiteEditor.desktop b/desktop/assets/art.graphite.Graphite.desktop similarity index 79% rename from desktop/assets/rs.graphite.GraphiteEditor.desktop rename to desktop/assets/art.graphite.Graphite.desktop index 50ee7686a..8e69d2c4d 100644 --- a/desktop/assets/rs.graphite.GraphiteEditor.desktop +++ b/desktop/assets/art.graphite.Graphite.desktop @@ -2,10 +2,10 @@ Name=Graphite GenericName=Vector & Raster Graphics Editor Comment=Open-source vector & raster graphics editor. Featuring node based procedural nondestructive editing workflow. -Exec=graphite-editor +Exec=graphite Terminal=false Type=Application -Icon=graphite-icon-color +Icon=graphite Categories=Graphics;VectorGraphics;RasterGraphics; Keywords=graphite;editor;vector;raster;procedural;design; -StartupWMClass=rs.graphite.GraphiteEditor +StartupWMClass=art.graphite.Graphite diff --git a/desktop/assets/graphite-icon-color.png b/desktop/assets/graphite-icon-color.png deleted file mode 100644 index f4e2047ca..000000000 Binary files a/desktop/assets/graphite-icon-color.png and /dev/null differ diff --git a/desktop/assets/graphite-icon-color.svg b/desktop/assets/graphite-icon-color.svg deleted file mode 100644 index 00166c61d..000000000 --- a/desktop/assets/graphite-icon-color.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/desktop/bundle/Cargo.toml b/desktop/bundle/Cargo.toml new file mode 100644 index 000000000..acaaa2ec4 --- /dev/null +++ b/desktop/bundle/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "graphite-desktop-bundle" +version = "0.0.0" +description = "Graphite Desktop Bundle" +authors = ["Graphite Authors "] +license = "Apache-2.0" +repository = "" +edition = "2024" +rust-version = "1.87" + +[dependencies] +cef-dll-sys = { workspace = true } + +[target.'cfg(target_os = "macos")'.dependencies] +serde = { workspace = true } +plist = { version = "*" } diff --git a/desktop/bundle/build.rs b/desktop/bundle/build.rs new file mode 100644 index 000000000..01b6ec29b --- /dev/null +++ b/desktop/bundle/build.rs @@ -0,0 +1,10 @@ +fn main() { + println!("cargo:rerun-if-env-changed=CARGO_PROFILE"); + println!("cargo:rerun-if-env-changed=PROFILE"); + let profile = std::env::var("CARGO_PROFILE").or_else(|_| std::env::var("PROFILE")).unwrap(); + println!("cargo:rustc-env=CARGO_PROFILE={profile}"); + + println!("cargo:rerun-if-env-changed=DEP_CEF_DLL_WRAPPER_CEF_DIR"); + let cef_dir = std::env::var("DEP_CEF_DLL_WRAPPER_CEF_DIR").unwrap(); + println!("cargo:rustc-env=CEF_PATH={cef_dir}"); +} diff --git a/desktop/bundle/src/common.rs b/desktop/bundle/src/common.rs new file mode 100644 index 000000000..3e0523b87 --- /dev/null +++ b/desktop/bundle/src/common.rs @@ -0,0 +1,71 @@ +use std::error::Error; +use std::fs; +use std::path::{Path, PathBuf}; +use std::process::{Command, Stdio}; + +pub(crate) const APP_NAME: &str = "Graphite"; +pub(crate) const APP_BIN: &str = "graphite"; + +pub(crate) fn workspace_path() -> PathBuf { + PathBuf::from(env!("CARGO_WORKSPACE_DIR")) +} + +fn profile_name() -> &'static str { + let mut profile = env!("CARGO_PROFILE"); + if profile == "debug" { + profile = "dev"; + } + profile +} + +pub(crate) fn profile_path() -> PathBuf { + workspace_path().join(format!("target/{}", env!("CARGO_PROFILE"))) +} + +pub(crate) fn cef_path() -> PathBuf { + PathBuf::from(env!("CEF_PATH")) +} + +pub(crate) fn build_bin(package: &str, bin: Option<&str>) -> Result> { + let profile = &profile_name(); + let mut args = vec!["build", "--package", package, "--profile", profile]; + if let Some(bin) = bin { + args.push("--bin"); + args.push(bin); + } + run_command("cargo", &args)?; + let profile_path = profile_path(); + let mut bin_path = if let Some(bin) = bin { profile_path.join(bin) } else { profile_path.join(APP_BIN) }; + if cfg!(target_os = "windows") { + bin_path.set_extension("exe"); + } + Ok(bin_path) +} + +pub(crate) fn run_command(program: &str, args: &[&str]) -> Result<(), Box> { + let status = Command::new(program).args(args).stdout(Stdio::inherit()).stderr(Stdio::inherit()).status()?; + if !status.success() { + std::process::exit(1); + } + Ok(()) +} + +pub(crate) fn clean_dir(dir: &Path) { + if dir.exists() { + fs::remove_dir_all(dir).unwrap(); + } + fs::create_dir_all(dir).unwrap(); +} + +pub(crate) fn copy_dir(src: &Path, dst: &Path) { + fs::create_dir_all(dst).unwrap(); + for entry in fs::read_dir(src).unwrap() { + let entry = entry.unwrap(); + let dst_path = dst.join(entry.file_name()); + if entry.file_type().unwrap().is_dir() { + copy_dir(&entry.path(), &dst_path); + } else { + fs::copy(entry.path(), &dst_path).unwrap(); + } + } +} diff --git a/desktop/bundle/src/linux.rs b/desktop/bundle/src/linux.rs new file mode 100644 index 000000000..94cd480ee --- /dev/null +++ b/desktop/bundle/src/linux.rs @@ -0,0 +1,21 @@ +use std::error::Error; + +use crate::common::*; + +pub fn main() -> Result<(), Box> { + let app_bin = build_bin("graphite-desktop-platform-linux", None)?; + + // TODO: Implement bundling for linux + + // TODO: Consider adding more useful cli + if std::env::args().any(|a| a == "open") { + run_command(&app_bin.to_string_lossy(), &[]).expect("failed to open app"); + } else { + println!("Binary built and placed at {}", app_bin.to_string_lossy()); + eprintln!("Bundling for Linux is not yet implemented."); + eprintln!("You can still start the app with the `open` subcommand. `cargo run -p graphite-desktop-bundle -- open`"); + std::process::exit(1); + } + + Ok(()) +} diff --git a/desktop/bundle/src/mac.rs b/desktop/bundle/src/mac.rs new file mode 100644 index 000000000..a3b74d015 --- /dev/null +++ b/desktop/bundle/src/mac.rs @@ -0,0 +1,127 @@ +use std::collections::HashMap; +use std::error::Error; +use std::fs; +use std::path::{Path, PathBuf}; + +use crate::common::*; + +const APP_ID: &str = "art.graphite.Graphite"; + +const ICONS_FILE_NAME: &str = "graphite.icns"; + +const EXEC_PATH: &str = "Contents/MacOS"; +const FRAMEWORKS_PATH: &str = "Contents/Frameworks"; +const RESOURCES_PATH: &str = "Contents/Resources"; +const CEF_FRAMEWORK: &str = "Chromium Embedded Framework.framework"; + +pub fn main() -> Result<(), Box> { + let app_bin = build_bin("graphite-desktop-platform-mac", None)?; + let helper_bin = build_bin("graphite-desktop-platform-mac", Some("helper"))?; + + let profile_path = profile_path(); + let app_dir = bundle(&profile_path, &app_bin, &helper_bin); + + // TODO: Consider adding more useful cli + if std::env::args().any(|a| a == "open") { + let executable_path = app_dir.join(EXEC_PATH).join(APP_NAME); + run_command(&executable_path.to_string_lossy(), &[]).expect("failed to open app"); + } + + Ok(()) +} + +fn bundle(out_dir: &Path, app_bin: &Path, helper_bin: &Path) -> PathBuf { + let app_dir = out_dir.join(APP_NAME).with_extension("app"); + + clean_dir(&app_dir); + + create_app(&app_dir, APP_ID, APP_NAME, app_bin, false); + + for helper_type in [None, Some("GPU"), Some("Renderer")] { + let helper_id_suffix = helper_type.map(|t| format!(".{t}")).unwrap_or_default(); + let helper_id = format!("{APP_ID}.helper{helper_id_suffix}"); + let helper_name_suffix = helper_type.map(|t| format!(" ({t})")).unwrap_or_default(); + let helper_name = format!("{APP_NAME} Helper{helper_name_suffix}"); + let helper_app_dir = app_dir.join(FRAMEWORKS_PATH).join(&helper_name).with_extension("app"); + create_app(&helper_app_dir, &helper_id, &helper_name, helper_bin, true); + } + + copy_dir(&cef_path().join(CEF_FRAMEWORK), &app_dir.join(FRAMEWORKS_PATH).join(CEF_FRAMEWORK)); + + let resource_dir = app_dir.join(RESOURCES_PATH); + fs::create_dir_all(&resource_dir).expect("failed to create app resource dir"); + + let icon_file = workspace_path().join("branding/app-icons").join(ICONS_FILE_NAME); + fs::copy(icon_file, resource_dir.join(ICONS_FILE_NAME)).expect("failed to copy icon file"); + + app_dir +} + +fn create_app(app_dir: &Path, id: &str, name: &str, bin: &Path, is_helper: bool) { + fs::create_dir_all(app_dir.join(EXEC_PATH)).unwrap(); + + let app_contents_dir: &Path = &app_dir.join("Contents"); + create_info_plist(app_contents_dir, id, name, is_helper).unwrap(); + fs::copy(bin, app_dir.join(EXEC_PATH).join(name)).unwrap(); +} + +fn create_info_plist(dir: &Path, id: &str, exec_name: &str, is_helper: bool) -> Result<(), Box> { + let info = InfoPlist { + cf_bundle_name: exec_name.to_string(), + cf_bundle_identifier: id.to_string(), + cf_bundle_display_name: exec_name.to_string(), + cf_bundle_executable: exec_name.to_string(), + cf_bundle_icon_file: ICONS_FILE_NAME.to_string(), + cf_bundle_info_dictionary_version: "6.0".to_string(), + cf_bundle_package_type: "APPL".to_string(), + cf_bundle_signature: "????".to_string(), + cf_bundle_version: "0.0.0".to_string(), + cf_bundle_short_version_string: "0.0".to_string(), + cf_bundle_development_region: "en".to_string(), + ls_environment: [("MallocNanoZone".to_string(), "0".to_string())].iter().cloned().collect(), + ls_file_quarantine_enabled: true, + ls_minimum_system_version: "11.0".to_string(), + ls_ui_element: if is_helper { Some("1".to_string()) } else { None }, + ns_supports_automatic_graphics_switching: true, + }; + + let plist_file = dir.join("Info.plist"); + plist::to_file_xml(plist_file, &info)?; + Ok(()) +} + +#[derive(serde::Serialize)] +struct InfoPlist { + #[serde(rename = "CFBundleName")] + cf_bundle_name: String, + #[serde(rename = "CFBundleIdentifier")] + cf_bundle_identifier: String, + #[serde(rename = "CFBundleDisplayName")] + cf_bundle_display_name: String, + #[serde(rename = "CFBundleExecutable")] + cf_bundle_executable: String, + #[serde(rename = "CFBundleIconFile")] + cf_bundle_icon_file: String, + #[serde(rename = "CFBundleInfoDictionaryVersion")] + cf_bundle_info_dictionary_version: String, + #[serde(rename = "CFBundlePackageType")] + cf_bundle_package_type: String, + #[serde(rename = "CFBundleSignature")] + cf_bundle_signature: String, + #[serde(rename = "CFBundleVersion")] + cf_bundle_version: String, + #[serde(rename = "CFBundleShortVersionString")] + cf_bundle_short_version_string: String, + #[serde(rename = "CFBundleDevelopmentRegion")] + cf_bundle_development_region: String, + #[serde(rename = "LSEnvironment")] + ls_environment: HashMap, + #[serde(rename = "LSFileQuarantineEnabled")] + ls_file_quarantine_enabled: bool, + #[serde(rename = "LSMinimumSystemVersion")] + ls_minimum_system_version: String, + #[serde(rename = "LSUIElement")] + ls_ui_element: Option, + #[serde(rename = "NSSupportsAutomaticGraphicsSwitching")] + ns_supports_automatic_graphics_switching: bool, +} diff --git a/desktop/bundle/src/main.rs b/desktop/bundle/src/main.rs new file mode 100644 index 000000000..4419a3880 --- /dev/null +++ b/desktop/bundle/src/main.rs @@ -0,0 +1,17 @@ +mod common; + +#[cfg(target_os = "linux")] +mod linux; +#[cfg(target_os = "macos")] +mod mac; +#[cfg(target_os = "windows")] +mod win; + +fn main() { + #[cfg(target_os = "linux")] + linux::main().unwrap(); + #[cfg(target_os = "macos")] + mac::main().unwrap(); + #[cfg(target_os = "windows")] + win::main().unwrap(); +} diff --git a/desktop/bundle/src/win.rs b/desktop/bundle/src/win.rs new file mode 100644 index 000000000..78867d185 --- /dev/null +++ b/desktop/bundle/src/win.rs @@ -0,0 +1,34 @@ +use std::error::Error; +use std::fs; +use std::path::{Path, PathBuf}; + +use crate::common::*; + +const EXECUTABLE: &str = "Graphite.exe"; + +pub fn main() -> Result<(), Box> { + let app_bin = build_bin("graphite-desktop-platform-win", None)?; + + let executable = bundle(&profile_path(), &app_bin); + + // TODO: Consider adding more useful cli + if std::env::args().any(|a| a == "open") { + let executable_path = executable.to_string_lossy(); + run_command(&executable_path, &[]).expect("failed to open app") + } + + Ok(()) +} + +fn bundle(out_dir: &Path, app_bin: &Path) -> PathBuf { + let app_dir = out_dir.join(APP_NAME); + + clean_dir(&app_dir); + + copy_dir(&cef_path(), &app_dir); + + let bin_path = app_dir.join(EXECUTABLE); + fs::copy(app_bin, &bin_path).unwrap(); + + bin_path +} diff --git a/desktop/embedded-resources/Cargo.toml b/desktop/embedded-resources/Cargo.toml new file mode 100644 index 000000000..b14c08b1d --- /dev/null +++ b/desktop/embedded-resources/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "graphite-desktop-embedded-resources" +version = "0.1.0" +description = "Graphite Desktop Embedded Resources" +authors = ["Graphite Authors "] +license = "Apache-2.0" +repository = "" +edition = "2024" +rust-version = "1.87" + +[dependencies] +include_dir = { workspace = true } + +[lints.rust] +unexpected_cfgs = { level = "warn", check-cfg = ['cfg(embedded_resources)'] } diff --git a/desktop/embedded-resources/build.rs b/desktop/embedded-resources/build.rs new file mode 100644 index 000000000..4275453af --- /dev/null +++ b/desktop/embedded-resources/build.rs @@ -0,0 +1,32 @@ +const EMBEDDED_RESOURCES_ENV: &str = "EMBEDDED_RESOURCES"; +const DEFAULT_RESOURCES_DIR: &str = "../../frontend/dist"; + +fn main() { + let mut embedded_resources: Option = None; + + println!("cargo:rerun-if-env-changed={EMBEDDED_RESOURCES_ENV}"); + if let Ok(embedded_resources_env) = std::env::var(EMBEDDED_RESOURCES_ENV) + && std::path::PathBuf::from(&embedded_resources_env).exists() + { + embedded_resources = Some(embedded_resources_env); + } + + if embedded_resources.is_none() { + // Check if the directory `DEFAULT_RESOURCES_DIR` exists and sets the embedded_resources cfg accordingly + // Absolute path of `DEFAULT_RESOURCES_DIR` available via the `EMBEDDED_RESOURCES` environment variable + let crate_dir = std::path::PathBuf::from(std::env::var("CARGO_MANIFEST_DIR").unwrap()); + println!("cargo:rerun-if-changed={DEFAULT_RESOURCES_DIR}"); + if let Ok(resources) = crate_dir.join(DEFAULT_RESOURCES_DIR).canonicalize() + && resources.exists() + { + embedded_resources = Some(resources.to_string_lossy().to_string()); + } + } + + if let Some(embedded_resources) = embedded_resources { + println!("cargo:rustc-cfg=embedded_resources"); + println!("cargo:rustc-env={EMBEDDED_RESOURCES_ENV}={embedded_resources}"); + } else { + println!("cargo:warning=Resource directory does not exist. Resources will not be embedded. Did you forget to build the frontend?"); + } +} diff --git a/desktop/embedded-resources/src/lib.rs b/desktop/embedded-resources/src/lib.rs new file mode 100644 index 000000000..fb007d813 --- /dev/null +++ b/desktop/embedded-resources/src/lib.rs @@ -0,0 +1,10 @@ +//! This crate provides `EMBEDDED_RESOURCES` that can be included in the desktop application binary. +//! It is intended to be used by the `embedded_resources` feature of the `graphite-desktop` crate. +//! The build script checks if the specified resources directory exists and sets the `embedded_resources` cfg flag accordingly. +//! If the resources directory does not exist, resources will not be embedded and a warning will be reported during compilation. + +#[cfg(embedded_resources)] +pub static EMBEDDED_RESOURCES: Option = Some(include_dir::include_dir!("$EMBEDDED_RESOURCES")); + +#[cfg(not(embedded_resources))] +pub static EMBEDDED_RESOURCES: Option = None; diff --git a/desktop/platform/linux/Cargo.toml b/desktop/platform/linux/Cargo.toml new file mode 100644 index 000000000..ed50d6a6d --- /dev/null +++ b/desktop/platform/linux/Cargo.toml @@ -0,0 +1,16 @@ +[package] +name = "graphite-desktop-platform-linux" +version = "0.0.0" +description = "Graphite Desktop Platform Linux" +authors = ["Graphite Authors "] +license = "Apache-2.0" +repository = "" +edition = "2024" +rust-version = "1.87" + +[[bin]] +name = "graphite" +path = "src/main.rs" + +[dependencies] +graphite-desktop = { path = "../.." } diff --git a/desktop/platform/linux/src/main.rs b/desktop/platform/linux/src/main.rs new file mode 100644 index 000000000..5420d97bb --- /dev/null +++ b/desktop/platform/linux/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + graphite_desktop::start(); +} diff --git a/desktop/platform/mac/Cargo.toml b/desktop/platform/mac/Cargo.toml new file mode 100644 index 000000000..06ea41312 --- /dev/null +++ b/desktop/platform/mac/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "graphite-desktop-platform-mac" +version = "0.0.0" +description = "Graphite Desktop Platform Mac" +authors = ["Graphite Authors "] +license = "Apache-2.0" +repository = "" +edition = "2024" +rust-version = "1.87" + +[[bin]] +name = "graphite" +path = "src/main.rs" + +[[bin]] +name = "helper" +path = "src/helper.rs" + +[dependencies] +graphite-desktop = { path = "../.." } diff --git a/desktop/platform/mac/src/helper.rs b/desktop/platform/mac/src/helper.rs new file mode 100644 index 000000000..149bb79e8 --- /dev/null +++ b/desktop/platform/mac/src/helper.rs @@ -0,0 +1,3 @@ +fn main() { + graphite_desktop::start_helper(); +} diff --git a/desktop/platform/mac/src/main.rs b/desktop/platform/mac/src/main.rs new file mode 100644 index 000000000..5420d97bb --- /dev/null +++ b/desktop/platform/mac/src/main.rs @@ -0,0 +1,3 @@ +fn main() { + graphite_desktop::start(); +} diff --git a/desktop/platform/win/Cargo.toml b/desktop/platform/win/Cargo.toml new file mode 100644 index 000000000..e268622cc --- /dev/null +++ b/desktop/platform/win/Cargo.toml @@ -0,0 +1,19 @@ +[package] +name = "graphite-desktop-platform-win" +version = "0.0.0" +description = "Graphite Desktop Platform Windows" +authors = ["Graphite Authors "] +license = "Apache-2.0" +repository = "" +edition = "2024" +rust-version = "1.87" + +[[bin]] +name = "graphite" +path = "src/main.rs" + +[dependencies] +graphite-desktop = { path = "../.." } + +[target.'cfg(target_os = "windows")'.build-dependencies] +winres = "0.1" diff --git a/desktop/platform/win/build.rs b/desktop/platform/win/build.rs new file mode 100644 index 000000000..7adda46f1 --- /dev/null +++ b/desktop/platform/win/build.rs @@ -0,0 +1,31 @@ +fn main() { + #[cfg(target_os = "windows")] + { + let mut res = winres::WindowsResource::new(); + + res.set_icon("../../../branding/app-icons/graphite.ico"); + + res.set_language(0x0409); // English (US) + + // TODO: Replace with actual version + res.set_version_info(winres::VersionInfo::FILEVERSION, { + const MAJOR: u64 = 0; + const MINOR: u64 = 0; + const PATCH: u64 = 0; + const RELEASE: u64 = 0; + (MAJOR << 48) | (MINOR << 32) | (PATCH << 16) | RELEASE + }); + res.set("FileVersion", "0.0.0.0"); + res.set("ProductVersion", "0.0.0.0"); + + res.set("OriginalFilename", "Graphite.exe"); + + res.set("FileDescription", "Graphite"); + res.set("ProductName", "Graphite"); + + res.set("LegalCopyright", "Copyright ยฉ 2025 Graphite Labs, LLC"); + res.set("CompanyName", "Graphite Labs, LLC"); + + res.compile().expect("Failed to compile Windows resources"); + } +} diff --git a/desktop/platform/win/src/main.rs b/desktop/platform/win/src/main.rs new file mode 100644 index 000000000..286448031 --- /dev/null +++ b/desktop/platform/win/src/main.rs @@ -0,0 +1,4 @@ +#![windows_subsystem = "windows"] +fn main() { + graphite_desktop::start(); +} diff --git a/desktop/src/app.rs b/desktop/src/app.rs index 0ec9eaa81..9cab62567 100644 --- a/desktop/src/app.rs +++ b/desktop/src/app.rs @@ -1,291 +1,559 @@ -use crate::CustomEvent; -use crate::WindowSize; -use crate::consts::APP_NAME; -use crate::dialogs::dialog_open_graphite_file; -use crate::dialogs::dialog_save_file; -use crate::dialogs::dialog_save_graphite_file; -use crate::render::GraphicsState; -use crate::render::WgpuContext; -use graph_craft::wasm_application_io::WasmApplicationIo; -use graphite_editor::application::Editor; -use graphite_editor::messages::prelude::*; -use std::sync::Arc; -use std::sync::mpsc::Sender; +use rfd::AsyncFileDialog; +use std::fs; +use std::path::PathBuf; +use std::sync::mpsc::{Receiver, Sender, SyncSender}; use std::thread; -use std::time::Duration; -use std::time::Instant; +use std::time::{Duration, Instant}; use winit::application::ApplicationHandler; use winit::dpi::PhysicalSize; -use winit::event::StartCause; -use winit::event::WindowEvent; -use winit::event_loop::ActiveEventLoop; -use winit::event_loop::ControlFlow; -use winit::event_loop::EventLoopProxy; -use winit::window::Window; +use winit::event::{ButtonSource, ElementState, MouseButton, WindowEvent}; +use winit::event_loop::{ActiveEventLoop, ControlFlow}; use winit::window::WindowId; use crate::cef; +use crate::consts::CEF_MESSAGE_LOOP_MAX_ITERATIONS; +use crate::event::{AppEvent, AppEventScheduler}; +use crate::persist::PersistentData; +use crate::render::{RenderError, RenderState}; +use crate::window::Window; +use crate::wrapper::messages::{DesktopFrontendMessage, DesktopWrapperMessage, InputMessage, MouseKeys, MouseState, Platform}; +use crate::wrapper::{DesktopWrapper, NodeGraphExecutionResult, WgpuContext, serialize_frontend_messages}; -pub(crate) struct WinitApp { - cef_context: cef::Context, - window: Option>, - cef_schedule: Option, - window_size_sender: Sender, - graphics_state: Option, +pub(crate) struct App { + render_state: Option, wgpu_context: WgpuContext, - event_loop_proxy: EventLoopProxy, - editor: Editor, + window: Option, + window_scale: f64, + window_size: PhysicalSize, + window_maximized: bool, + window_fullscreen: bool, + ui_scale: f64, + app_event_receiver: Receiver, + app_event_scheduler: AppEventScheduler, + desktop_wrapper: DesktopWrapper, + cef_context: Box, + cef_schedule: Option, + cef_view_info_sender: Sender, + last_ui_update: Instant, + avg_frame_time: f32, + start_render_sender: SyncSender<()>, + web_communication_initialized: bool, + web_communication_startup_buffer: Vec>, + persistent_data: PersistentData, + launch_documents: Vec, } -impl WinitApp { - pub(crate) fn new(cef_context: cef::Context, window_size_sender: Sender, wgpu_context: WgpuContext, event_loop_proxy: EventLoopProxy) -> Self { - Self { - cef_context, - window: None, - cef_schedule: Some(Instant::now()), - graphics_state: None, - window_size_sender, - wgpu_context, - event_loop_proxy, - editor: Editor::new(), - } +impl App { + pub(crate) fn init() { + Window::init(); } - fn dispatch_message(&mut self, message: Message) { - let responses = self.editor.handle_message(message); - self.send_messages_to_editor(responses); - } + pub(crate) fn new( + cef_context: Box, + cef_view_info_sender: Sender, + wgpu_context: WgpuContext, + app_event_receiver: Receiver, + app_event_scheduler: AppEventScheduler, + launch_documents: Vec, + ) -> Self { + let ctrlc_app_event_scheduler = app_event_scheduler.clone(); + ctrlc::set_handler(move || { + tracing::info!("Termination signal received, exiting..."); + ctrlc_app_event_scheduler.schedule(AppEvent::CloseWindow); + }) + .expect("Error setting Ctrl-C handler"); - fn send_messages_to_editor(&mut self, mut responses: Vec) { - for message in responses.extract_if(.., |m| matches!(m, FrontendMessage::RenderOverlays(_))) { - let FrontendMessage::RenderOverlays(overlay_context) = message else { unreachable!() }; - if let Some(graphics_state) = &mut self.graphics_state { - let scene = overlay_context.take_scene(); - graphics_state.set_overlays_scene(scene); + let rendering_app_event_scheduler = app_event_scheduler.clone(); + let (start_render_sender, start_render_receiver) = std::sync::mpsc::sync_channel(1); + std::thread::spawn(move || { + loop { + let result = futures::executor::block_on(DesktopWrapper::execute_node_graph()); + rendering_app_event_scheduler.schedule(AppEvent::NodeGraphExecutionResult(result)); + let _ = start_render_receiver.recv(); } + }); + + let mut persistent_data = PersistentData::default(); + persistent_data.load_from_disk(); + + Self { + render_state: None, + wgpu_context, + window: None, + window_scale: 1., + window_size: PhysicalSize { width: 0, height: 0 }, + window_maximized: false, + window_fullscreen: false, + ui_scale: 1., + app_event_receiver, + app_event_scheduler, + desktop_wrapper: DesktopWrapper::new(), + last_ui_update: Instant::now(), + cef_context, + cef_schedule: Some(Instant::now()), + cef_view_info_sender, + avg_frame_time: 0., + start_render_sender, + web_communication_initialized: false, + web_communication_startup_buffer: Vec::new(), + persistent_data, + launch_documents, + } + } + + fn resize(&mut self) { + let Some(window) = &self.window else { + tracing::error!("Resize failed due to missing window"); + return; + }; + + let maximized = window.is_maximized(); + if maximized != self.window_maximized { + self.window_maximized = maximized; + self.app_event_scheduler.schedule(AppEvent::DesktopWrapperMessage(DesktopWrapperMessage::UpdateMaximized { maximized })); } - for _ in responses.extract_if(.., |m| matches!(m, FrontendMessage::TriggerOpenDocument)) { - let event_loop_proxy = self.event_loop_proxy.clone(); - let _ = thread::spawn(move || { - let path = futures::executor::block_on(dialog_open_graphite_file()); - if let Some(path) = path { - let content = std::fs::read_to_string(&path).unwrap_or_else(|_| { - tracing::error!("Failed to read file: {}", path.display()); - String::new() - }); - let message = PortfolioMessage::OpenDocumentFile { - document_name: path.file_name().and_then(|s| s.to_str()).unwrap_or("unknown").to_string(), - document_serialized_content: content, - }; - let _ = event_loop_proxy.send_event(CustomEvent::DispatchMessage(message.into())); - } + let fullscreen = window.is_fullscreen(); + if fullscreen != self.window_fullscreen { + self.window_fullscreen = fullscreen; + self.app_event_scheduler + .schedule(AppEvent::DesktopWrapperMessage(DesktopWrapperMessage::UpdateFullscreen { fullscreen })); + } + + let size = window.surface_size(); + let scale = window.scale_factor() * self.ui_scale; + let is_new_size = size != self.window_size; + let is_new_scale = scale != self.window_scale; + + if !is_new_size && !is_new_scale { + return; + } + + if is_new_size { + let _ = self.cef_view_info_sender.send(cef::ViewInfoUpdate::Size { + width: size.width, + height: size.height, }); } + if is_new_scale { + let _ = self.cef_view_info_sender.send(cef::ViewInfoUpdate::Scale(scale)); + } - for message in responses.extract_if(.., |m| matches!(m, FrontendMessage::TriggerSaveDocument { .. })) { - let FrontendMessage::TriggerSaveDocument { document_id, name, path, content } = message else { - unreachable!() - }; - if let Some(path) = path { - let _ = std::fs::write(&path, content); - } else { - let event_loop_proxy = self.event_loop_proxy.clone(); + self.cef_context.notify_view_info_changed(); + + if let Some(render_state) = &mut self.render_state { + render_state.resize(size.width, size.height); + } + + window.request_redraw(); + + self.window_size = size; + self.window_scale = scale; + } + + fn handle_desktop_frontend_message(&mut self, message: DesktopFrontendMessage, responses: &mut Vec) { + match message { + DesktopFrontendMessage::ToWeb(messages) => { + let Some(bytes) = serialize_frontend_messages(messages) else { + tracing::error!("Failed to serialize frontend messages"); + return; + }; + self.send_or_queue_web_message(bytes); + } + DesktopFrontendMessage::OpenFileDialog { title, filters, context } => { + let app_event_scheduler = self.app_event_scheduler.clone(); let _ = thread::spawn(move || { - let path = futures::executor::block_on(dialog_save_graphite_file(name)); - if let Some(path) = path { - if let Err(e) = std::fs::write(&path, content) { - tracing::error!("Failed to save file: {}: {}", path.display(), e); + let mut dialog = AsyncFileDialog::new().set_title(title); + for filter in filters { + dialog = dialog.add_filter(filter.name, &filter.extensions); + } + + let show_dialog = async move { dialog.pick_file().await.map(|f| f.path().to_path_buf()) }; + + if let Some(path) = futures::executor::block_on(show_dialog) + && let Ok(content) = fs::read(&path) + { + let message = DesktopWrapperMessage::OpenFileDialogResult { path, content, context }; + app_event_scheduler.schedule(AppEvent::DesktopWrapperMessage(message)); + } + }); + } + DesktopFrontendMessage::SaveFileDialog { + title, + default_filename, + default_folder, + filters, + context, + } => { + let app_event_scheduler = self.app_event_scheduler.clone(); + let _ = thread::spawn(move || { + let mut dialog = AsyncFileDialog::new().set_title(title).set_file_name(default_filename); + if let Some(folder) = default_folder { + dialog = dialog.set_directory(folder); + } + for filter in filters { + dialog = dialog.add_filter(filter.name, &filter.extensions); + } + + let show_dialog = async move { dialog.save_file().await.map(|f| f.path().to_path_buf()) }; + + if let Some(path) = futures::executor::block_on(show_dialog) { + let message = DesktopWrapperMessage::SaveFileDialogResult { path, context }; + app_event_scheduler.schedule(AppEvent::DesktopWrapperMessage(message)); + } + }); + } + DesktopFrontendMessage::WriteFile { path, content } => { + if let Err(e) = fs::write(&path, content) { + tracing::error!("Failed to write file {}: {}", path.display(), e); + } + } + DesktopFrontendMessage::OpenUrl(url) => { + let _ = thread::spawn(move || { + if let Err(e) = open::that(&url) { + tracing::error!("Failed to open URL: {}: {}", url, e); + } + }); + } + DesktopFrontendMessage::UpdateViewportPhysicalBounds { x, y, width, height } => { + if let Some(render_state) = &mut self.render_state + && let Some(window) = &self.window + { + let window_size = window.surface_size(); + + let viewport_offset_x = x / window_size.width as f64; + let viewport_offset_y = y / window_size.height as f64; + render_state.set_viewport_offset([viewport_offset_x as f32, viewport_offset_y as f32]); + + let viewport_scale_x = if width != 0.0 { window_size.width as f64 / width } else { 1.0 }; + let viewport_scale_y = if height != 0.0 { window_size.height as f64 / height } else { 1.0 }; + render_state.set_viewport_scale([viewport_scale_x as f32, viewport_scale_y as f32]); + } + } + DesktopFrontendMessage::UpdateUIScale { scale } => { + self.ui_scale = scale; + self.resize(); + } + DesktopFrontendMessage::UpdateOverlays(scene) => { + if let Some(render_state) = &mut self.render_state { + render_state.set_overlays_scene(scene); + } + } + DesktopFrontendMessage::PersistenceWriteDocument { id, document } => { + self.persistent_data.write_document(id, document); + } + DesktopFrontendMessage::PersistenceDeleteDocument { id } => { + self.persistent_data.delete_document(&id); + } + DesktopFrontendMessage::PersistenceUpdateCurrentDocument { id } => { + self.persistent_data.set_current_document(id); + } + DesktopFrontendMessage::PersistenceUpdateDocumentsList { ids } => { + self.persistent_data.set_document_order(ids); + } + DesktopFrontendMessage::PersistenceWritePreferences { preferences } => { + self.persistent_data.write_preferences(preferences); + } + DesktopFrontendMessage::PersistenceLoadPreferences => { + let preferences = self.persistent_data.load_preferences(); + let message = DesktopWrapperMessage::LoadPreferences { preferences }; + responses.push(message); + } + DesktopFrontendMessage::PersistenceLoadCurrentDocument => { + if let Some((id, document)) = self.persistent_data.current_document() { + let message = DesktopWrapperMessage::LoadDocument { + id, + document, + to_front: false, + select_after_open: true, + }; + responses.push(message); + } + } + DesktopFrontendMessage::PersistenceLoadRemainingDocuments => { + for (id, document) in self.persistent_data.documents_before_current().into_iter().rev() { + let message = DesktopWrapperMessage::LoadDocument { + id, + document, + to_front: true, + select_after_open: false, + }; + responses.push(message); + } + for (id, document) in self.persistent_data.documents_after_current() { + let message = DesktopWrapperMessage::LoadDocument { + id, + document, + to_front: false, + select_after_open: false, + }; + responses.push(message); + } + if let Some(id) = self.persistent_data.current_document_id() { + let message = DesktopWrapperMessage::SelectDocument { id }; + responses.push(message); + } + } + DesktopFrontendMessage::OpenLaunchDocuments => { + if self.launch_documents.is_empty() { + return; + } + let app_event_scheduler = self.app_event_scheduler.clone(); + let launch_documents = std::mem::take(&mut self.launch_documents); + let _ = thread::spawn(move || { + for path in launch_documents { + tracing::info!("Opening file from command line: {}", path.display()); + if let Ok(content) = fs::read(&path) { + let message = DesktopWrapperMessage::OpenFile { path, content }; + app_event_scheduler.schedule(AppEvent::DesktopWrapperMessage(message)); } else { - let message = Message::Portfolio(PortfolioMessage::DocumentPassMessage { - document_id, - message: DocumentMessage::SavedDocument { path: Some(path) }, - }); - let _ = event_loop_proxy.send_event(CustomEvent::DispatchMessage(message)); + tracing::error!("Failed to read file: {}", path.display()); } } }); } + DesktopFrontendMessage::UpdateMenu { entries } => { + if let Some(window) = &self.window { + window.update_menu(entries); + } + } + DesktopFrontendMessage::ClipboardRead => { + if let Some(window) = &self.window { + let content = window.clipboard_read(); + let message = DesktopWrapperMessage::ClipboardReadResult { content }; + self.app_event_scheduler.schedule(AppEvent::DesktopWrapperMessage(message)); + } + } + DesktopFrontendMessage::ClipboardWrite { content } => { + if let Some(window) = &mut self.window { + window.clipboard_write(content); + } + } + DesktopFrontendMessage::WindowClose => { + self.app_event_scheduler.schedule(AppEvent::CloseWindow); + } + DesktopFrontendMessage::WindowMinimize => { + if let Some(window) = &self.window { + window.minimize(); + } + } + DesktopFrontendMessage::WindowMaximize => { + if let Some(window) = &self.window { + window.toggle_maximize(); + } + } + DesktopFrontendMessage::WindowDrag => { + if let Some(window) = &self.window { + window.start_drag(); + } + } + DesktopFrontendMessage::WindowHide => { + if let Some(window) = &self.window { + window.hide(); + } + } + DesktopFrontendMessage::WindowHideOthers => { + if let Some(window) = &self.window { + window.hide_others(); + } + } + DesktopFrontendMessage::WindowShowAll => { + if let Some(window) = &self.window { + window.show_all(); + } + } } + } - for message in responses.extract_if(.., |m| matches!(m, FrontendMessage::TriggerSaveFile { .. })) { - let FrontendMessage::TriggerSaveFile { name, content } = message else { unreachable!() }; - let _ = thread::spawn(move || { - let path = futures::executor::block_on(dialog_save_file(name)); - if let Some(path) = path { - if let Err(e) = std::fs::write(&path, content) { - tracing::error!("Failed to save file: {}: {}", path.display(), e); + fn handle_desktop_frontend_messages(&mut self, messages: Vec) { + let mut responses = Vec::new(); + for message in messages { + self.handle_desktop_frontend_message(message, &mut responses); + } + for message in responses { + self.dispatch_desktop_wrapper_message(message); + } + } + + fn dispatch_desktop_wrapper_message(&mut self, message: DesktopWrapperMessage) { + let responses = self.desktop_wrapper.dispatch(message); + self.handle_desktop_frontend_messages(responses); + } + + fn send_or_queue_web_message(&mut self, message: Vec) { + if self.web_communication_initialized { + self.cef_context.send_web_message(message); + } else { + self.web_communication_startup_buffer.push(message); + } + } + + fn user_event(&mut self, event_loop: &dyn ActiveEventLoop, event: AppEvent) { + match event { + AppEvent::WebCommunicationInitialized => { + self.web_communication_initialized = true; + for message in self.web_communication_startup_buffer.drain(..) { + self.cef_context.send_web_message(message); + } + } + AppEvent::DesktopWrapperMessage(message) => self.dispatch_desktop_wrapper_message(message), + AppEvent::NodeGraphExecutionResult(result) => match result { + NodeGraphExecutionResult::HasRun(texture) => { + self.dispatch_desktop_wrapper_message(DesktopWrapperMessage::PollNodeGraphEvaluation); + if let Some(texture) = texture + && let Some(render_state) = self.render_state.as_mut() + && let Some(window) = self.window.as_ref() + { + render_state.bind_viewport_texture(texture); + window.request_redraw(); } } - }); - } - - for message in responses.extract_if(.., |m| matches!(m, FrontendMessage::TriggerVisitLink { .. })) { - let _ = thread::spawn(move || { - let FrontendMessage::TriggerVisitLink { url } = message else { unreachable!() }; - if let Err(e) = open::that(&url) { - tracing::error!("Failed to open URL: {}: {}", url, e); - } - }); - } - - if responses.is_empty() { - return; - } - let Ok(message) = ron::to_string(&responses) else { - tracing::error!("Failed to serialize Messages"); - return; - }; - self.cef_context.send_web_message(message.as_bytes()); - } -} - -impl ApplicationHandler for WinitApp { - fn about_to_wait(&mut self, event_loop: &ActiveEventLoop) { - // Set a timeout in case we miss any cef schedule requests - let timeout = Instant::now() + Duration::from_millis(10); - let wait_until = timeout.min(self.cef_schedule.unwrap_or(timeout)); - self.cef_context.work(); - - event_loop.set_control_flow(ControlFlow::WaitUntil(wait_until)); - } - - fn new_events(&mut self, _event_loop: &ActiveEventLoop, cause: StartCause) { - if let Some(schedule) = self.cef_schedule - && schedule < Instant::now() - { - self.cef_schedule = None; - self.cef_context.work(); - } - if let StartCause::ResumeTimeReached { .. } = cause { - if let Some(window) = &self.window { - window.request_redraw(); - } - } - } - - fn resumed(&mut self, event_loop: &ActiveEventLoop) { - let mut window = Window::default_attributes() - .with_title(APP_NAME) - .with_min_inner_size(winit::dpi::LogicalSize::new(400, 300)) - .with_inner_size(winit::dpi::LogicalSize::new(1200, 800)); - - #[cfg(target_family = "unix")] - { - use crate::consts::APP_ID; - use winit::platform::wayland::ActiveEventLoopExtWayland; - - window = if event_loop.is_wayland() { - winit::platform::wayland::WindowAttributesExtWayland::with_name(window, APP_ID, "") - } else { - winit::platform::x11::WindowAttributesExtX11::with_name(window, APP_ID, APP_NAME) - } - } - - let window = Arc::new(event_loop.create_window(window).unwrap()); - let graphics_state = GraphicsState::new(window.clone(), self.wgpu_context.clone()); - - self.window = Some(window); - self.graphics_state = Some(graphics_state); - - tracing::info!("Winit window created and ready"); - - let application_io = WasmApplicationIo::new_with_context(self.wgpu_context.clone()); - - futures::executor::block_on(graphite_editor::node_graph_executor::replace_application_io(application_io)); - } - - fn user_event(&mut self, _: &ActiveEventLoop, event: CustomEvent) { - match event { - CustomEvent::UiUpdate(texture) => { - if let Some(graphics_state) = self.graphics_state.as_mut() { - graphics_state.resize(texture.width(), texture.height()); - graphics_state.bind_ui_texture(texture); + NodeGraphExecutionResult::NotRun => {} + }, + AppEvent::UiUpdate(texture) => { + if let Some(render_state) = self.render_state.as_mut() { + render_state.bind_ui_texture(texture); + let elapsed = self.last_ui_update.elapsed().as_secs_f32(); + self.last_ui_update = Instant::now(); + if elapsed < 0.5 { + self.avg_frame_time = (self.avg_frame_time * 3. + elapsed) / 4.; + } } if let Some(window) = &self.window { window.request_redraw(); } } - CustomEvent::ScheduleBrowserWork(instant) => { + AppEvent::ScheduleBrowserWork(instant) => { if instant <= Instant::now() { self.cef_context.work(); } else { self.cef_schedule = Some(instant); } } - CustomEvent::DispatchMessage(message) => { - self.dispatch_message(message); + AppEvent::CursorChange(cursor) => { + if let Some(window) = &mut self.window { + window.set_cursor(event_loop, cursor); + } } - CustomEvent::MessageReceived(message) => { - if let Message::InputPreprocessor(_) = &message { - if let Some(window) = &self.window { - window.request_redraw(); - } - } - if let Message::InputPreprocessor(InputPreprocessorMessage::BoundsOfViewports { bounds_of_viewports }) = &message { - if let Some(graphic_state) = &mut self.graphics_state { - let window_size = self.window.as_ref().unwrap().inner_size(); - let window_size = glam::Vec2::new(window_size.width as f32, window_size.height as f32); - let top_left = bounds_of_viewports[0].top_left.as_vec2() / window_size; - let bottom_right = bounds_of_viewports[0].bottom_right.as_vec2() / window_size; - let offset = top_left.to_array(); - let scale = (bottom_right - top_left).recip(); - graphic_state.set_viewport_offset(offset); - graphic_state.set_viewport_scale(scale.to_array()); - } else { - panic!("graphics state not intialized, viewport offset might be lost"); - } - } + AppEvent::CloseWindow => { + // TODO: Implement graceful shutdown - self.dispatch_message(message); + tracing::info!("Exiting main event loop"); + event_loop.exit(); } - CustomEvent::NodeGraphRan(texture) => { - if let Some(texture) = texture - && let Some(graphics_state) = &mut self.graphics_state - { - graphics_state.bind_viewport_texture(texture); - } - let mut responses = VecDeque::new(); - let err = self.editor.poll_node_graph_evaluation(&mut responses); - if let Err(e) = err { - if e != "No active document" { - tracing::error!("Error poling node graph: {}", e); - } - } - - for message in responses { - self.dispatch_message(message); - } + #[cfg(target_os = "macos")] + AppEvent::MenuEvent { id } => { + self.dispatch_desktop_wrapper_message(DesktopWrapperMessage::MenuEvent { id }); } } } +} +impl ApplicationHandler for App { + fn can_create_surfaces(&mut self, event_loop: &dyn ActiveEventLoop) { + let window = Window::new(event_loop, self.app_event_scheduler.clone()); + self.window = Some(window); - fn window_event(&mut self, event_loop: &ActiveEventLoop, _window_id: WindowId, event: WindowEvent) { - let Some(event) = self.cef_context.handle_window_event(event) else { return }; + let render_state = RenderState::new(self.window.as_ref().unwrap(), self.wgpu_context.clone()); + self.render_state = Some(render_state); + + if let Some(window) = &self.window.as_ref() { + window.show(); + } + + self.resize(); + + self.desktop_wrapper.init(self.wgpu_context.clone()); + + #[cfg(target_os = "windows")] + let platform = Platform::Windows; + #[cfg(target_os = "macos")] + let platform = Platform::Mac; + #[cfg(target_os = "linux")] + let platform = Platform::Linux; + self.dispatch_desktop_wrapper_message(DesktopWrapperMessage::UpdatePlatform(platform)); + } + + fn proxy_wake_up(&mut self, event_loop: &dyn ActiveEventLoop) { + while let Ok(event) = self.app_event_receiver.try_recv() { + self.user_event(event_loop, event); + } + } + + fn window_event(&mut self, event_loop: &dyn ActiveEventLoop, _window_id: WindowId, event: WindowEvent) { + self.cef_context.handle_window_event(&event); match event { WindowEvent::CloseRequested => { - tracing::info!("The close button was pressed; stopping"); - event_loop.exit(); + self.app_event_scheduler.schedule(AppEvent::CloseWindow); } - WindowEvent::Resized(PhysicalSize { width, height }) => { - let _ = self.window_size_sender.send(WindowSize::new(width as usize, height as usize)); - self.cef_context.notify_of_resize(); + WindowEvent::SurfaceResized(_) | WindowEvent::ScaleFactorChanged { .. } => { + self.resize(); } - WindowEvent::RedrawRequested => { - let Some(ref mut graphics_state) = self.graphics_state else { return }; - // Only rerender once we have a new ui texture to display + #[cfg(target_os = "macos")] + self.resize(); - match graphics_state.render() { - Ok(_) => {} - Err(wgpu::SurfaceError::Lost) => { - tracing::warn!("lost surface"); + let Some(render_state) = &mut self.render_state else { return }; + if let Some(window) = &self.window { + if !window.can_render() { + return; } - Err(wgpu::SurfaceError::OutOfMemory) => { - event_loop.exit(); + + match render_state.render(window) { + Ok(_) => {} + Err(RenderError::OutdatedUITextureError) => { + self.cef_context.notify_view_info_changed(); + } + Err(RenderError::SurfaceError(wgpu::SurfaceError::Lost)) => { + tracing::warn!("lost surface"); + } + Err(RenderError::SurfaceError(wgpu::SurfaceError::OutOfMemory)) => { + tracing::error!("GPU out of memory"); + event_loop.exit(); + } + Err(RenderError::SurfaceError(e)) => tracing::error!("Render error: {:?}", e), } - Err(e) => tracing::error!("{:?}", e), + let _ = self.start_render_sender.try_send(()); + } + } + WindowEvent::DragDropped { paths, .. } => { + for path in paths { + match fs::read(&path) { + Ok(content) => { + let message = DesktopWrapperMessage::OpenFile { path, content }; + self.app_event_scheduler.schedule(AppEvent::DesktopWrapperMessage(message)); + } + Err(e) => { + tracing::error!("Failed to read dropped file {}: {}", path.display(), e); + return; + } + }; + } + } + + // Forward and Back buttons are not supported by CEF and thus need to be directly forwarded the editor + WindowEvent::PointerButton { + button: ButtonSource::Mouse(button), + state: ElementState::Pressed, + .. + } => { + let mouse_keys = match button { + MouseButton::Back => Some(MouseKeys::BACK), + MouseButton::Forward => Some(MouseKeys::FORWARD), + _ => None, + }; + if let Some(mouse_keys) = mouse_keys { + let message = DesktopWrapperMessage::Input(InputMessage::PointerDown { + editor_mouse_state: MouseState { mouse_keys, ..Default::default() }, + modifier_keys: Default::default(), + }); + self.app_event_scheduler.schedule(AppEvent::DesktopWrapperMessage(message)); + + let message = DesktopWrapperMessage::Input(InputMessage::PointerUp { + editor_mouse_state: Default::default(), + modifier_keys: Default::default(), + }); + self.app_event_scheduler.schedule(AppEvent::DesktopWrapperMessage(message)); } } _ => {} @@ -294,4 +562,24 @@ impl ApplicationHandler for WinitApp { // Notify cef of possible input events self.cef_context.work(); } + + fn about_to_wait(&mut self, event_loop: &dyn ActiveEventLoop) { + // Set a timeout in case we miss any cef schedule requests + let timeout = Instant::now() + Duration::from_millis(10); + let wait_until = timeout.min(self.cef_schedule.unwrap_or(timeout)); + if let Some(schedule) = self.cef_schedule + && schedule < Instant::now() + { + self.cef_schedule = None; + // Poll cef message loop multiple times to avoid message loop starvation + for _ in 0..CEF_MESSAGE_LOOP_MAX_ITERATIONS { + self.cef_context.work(); + } + } + if let Some(window) = &self.window.as_ref() { + window.request_redraw(); + } + + event_loop.set_control_flow(ControlFlow::WaitUntil(wait_until)); + } } diff --git a/desktop/src/cef.rs b/desktop/src/cef.rs index af1e7ec73..b9649e492 100644 --- a/desktop/src/cef.rs +++ b/desktop/src/cef.rs @@ -1,80 +1,152 @@ -use crate::{CustomEvent, WgpuContext, render::FrameBufferRef}; -use std::{ - sync::{Arc, Mutex, mpsc::Receiver}, - time::Instant, -}; +//! CEF (Chromium Embedded Framework) integration for Graphite Desktop +//! +//! This module provides CEF browser integration with hardware-accelerated texture sharing. +//! +//! # Hardware Acceleration +//! +//! The texture import system supports platform-specific hardware acceleration: +//! +//! - **Linux**: DMA-BUF via Vulkan external memory (`accelerated_paint_dmabuf` feature) +//! - **Windows**: D3D11 shared textures via either Vulkan or D3D12 interop (`accelerated_paint_d3d11` feature) +//! - **macOS**: IOSurface via Metal/Vulkan interop (`accelerated_paint_iosurface` feature) +//! +//! The system gracefully falls back to CPU textures when hardware acceleration is unavailable. +use std::fs::File; +use std::io; +use std::io::Read; +use std::path::PathBuf; +use std::sync::mpsc::Receiver; +use std::sync::{Arc, Mutex}; +use std::time::Instant; + +use crate::event::{AppEvent, AppEventScheduler}; +use crate::render::FrameBufferRef; +use crate::window::Cursor; +use crate::wrapper::{WgpuContext, deserialize_editor_message}; + +mod consts; mod context; mod dirs; mod input; mod internal; mod ipc; -mod scheme_handler; +mod platform; mod utility; -pub(crate) use context::{Context, InitError, Initialized, Setup, SetupError}; -use winit::event_loop::EventLoopProxy; +#[cfg(feature = "accelerated_paint")] +use cef::osr_texture_import::SharedTextureHandle; -pub(crate) trait CefEventHandler: Clone { - fn window_size(&self) -> WindowSize; +pub(crate) use context::{CefContext, CefContextBuilder, InitError}; + +pub(crate) trait CefEventHandler: Send + Sync + 'static { + fn view_info(&self) -> ViewInfo; fn draw<'a>(&self, frame_buffer: FrameBufferRef<'a>); - /// Scheudule the main event loop to run the cef event loop after the timeout - /// [`_cef_browser_process_handler_t::on_schedule_message_pump_work`] for more documentation. + #[cfg(feature = "accelerated_paint")] + fn draw_gpu(&self, shared_texture: SharedTextureHandle); + fn load_resource(&self, path: PathBuf) -> Option; + fn cursor_change(&self, cursor: Cursor); + /// Schedule the main event loop to run the CEF event loop after the timeout. + /// See [`_cef_browser_process_handler_t::on_schedule_message_pump_work`] for more documentation. fn schedule_cef_message_loop_work(&self, scheduled_time: Instant); + fn initialized_web_communication(&self); fn receive_web_message(&self, message: &[u8]); + fn duplicate(&self) -> Self + where + Self: Sized; } #[derive(Clone, Copy)] -pub(crate) struct WindowSize { - pub(crate) width: usize, - pub(crate) height: usize, +pub(crate) struct ViewInfo { + width: u32, + height: u32, + scale: f64, +} +impl ViewInfo { + pub(crate) fn new() -> Self { + Self { width: 1, height: 1, scale: 1. } + } + pub(crate) fn apply_update(&mut self, update: ViewInfoUpdate) { + match update { + ViewInfoUpdate::Size { width, height } if width > 0 && height > 0 => { + self.width = width; + self.height = height; + } + ViewInfoUpdate::Scale(scale) if scale > 0. => { + self.scale = scale; + } + _ => {} + } + } + pub(crate) fn zoom(&self) -> f64 { + self.scale.ln() / 1.2_f64.ln() + } + pub(crate) fn width(&self) -> u32 { + self.width + } + pub(crate) fn height(&self) -> u32 { + self.height + } +} +impl Default for ViewInfo { + fn default() -> Self { + Self::new() + } } -impl WindowSize { - pub(crate) fn new(width: usize, height: usize) -> Self { - Self { width, height } - } +pub(crate) enum ViewInfoUpdate { + Size { width: u32, height: u32 }, + Scale(f64), } #[derive(Clone)] -pub(crate) struct CefHandler { - window_size_receiver: Arc>, - event_loop_proxy: EventLoopProxy, - wgpu_context: WgpuContext, +pub(crate) struct Resource { + pub(crate) reader: ResourceReader, + pub(crate) mimetype: Option, } -struct WindowSizeReceiver { - receiver: Receiver, - window_size: WindowSize, + +#[expect(dead_code)] +#[derive(Clone)] +pub(crate) enum ResourceReader { + Embedded(io::Cursor<&'static [u8]>), + File(Arc), } -impl WindowSizeReceiver { - fn new(window_size_receiver: Receiver) -> Self { - Self { - window_size: WindowSize { width: 1, height: 1 }, - receiver: window_size_receiver, +impl Read for ResourceReader { + fn read(&mut self, buf: &mut [u8]) -> std::io::Result { + match self { + ResourceReader::Embedded(cursor) => cursor.read(buf), + ResourceReader::File(file) => file.as_ref().read(buf), } } } + +pub(crate) struct CefHandler { + wgpu_context: WgpuContext, + app_event_scheduler: AppEventScheduler, + view_info_receiver: Arc>, +} + impl CefHandler { - pub(crate) fn new(window_size_receiver: Receiver, event_loop_proxy: EventLoopProxy, wgpu_context: WgpuContext) -> Self { + pub(crate) fn new(wgpu_context: WgpuContext, app_event_scheduler: AppEventScheduler, view_info_receiver: Receiver) -> Self { Self { - window_size_receiver: Arc::new(Mutex::new(WindowSizeReceiver::new(window_size_receiver))), - event_loop_proxy, wgpu_context, + app_event_scheduler, + view_info_receiver: Arc::new(Mutex::new(ViewInfoReceiver::new(view_info_receiver))), } } } impl CefEventHandler for CefHandler { - fn window_size(&self) -> WindowSize { - let Ok(mut guard) = self.window_size_receiver.lock() else { - tracing::error!("Failed to lock window_size_receiver"); - return WindowSize::new(1, 1); + fn view_info(&self) -> ViewInfo { + let Ok(mut guard) = self.view_info_receiver.lock() else { + tracing::error!("Failed to lock view_info_receiver"); + return ViewInfo::new(); }; - let WindowSizeReceiver { receiver, window_size } = &mut *guard; - for new_window_size in receiver.try_iter() { - *window_size = new_window_size; + let ViewInfoReceiver { receiver, view_info } = &mut *guard; + for update in receiver.try_iter() { + view_info.apply_update(update); } - *window_size + *view_info } fn draw<'a>(&self, frame_buffer: FrameBufferRef<'a>) { let width = frame_buffer.width() as u32; @@ -89,7 +161,7 @@ impl CefEventHandler for CefHandler { mip_level_count: 1, sample_count: 1, dimension: wgpu::TextureDimension::D2, - format: wgpu::TextureFormat::Bgra8UnormSrgb, + format: wgpu::TextureFormat::Bgra8Unorm, usage: wgpu::TextureUsages::TEXTURE_BINDING | wgpu::TextureUsages::COPY_DST, view_formats: &[], }); @@ -113,22 +185,114 @@ impl CefEventHandler for CefHandler { }, ); - let _ = self.event_loop_proxy.send_event(CustomEvent::UiUpdate(texture)); + self.app_event_scheduler.schedule(AppEvent::UiUpdate(texture)); } - fn schedule_cef_message_loop_work(&self, scheduled_time: std::time::Instant) { - let _ = self.event_loop_proxy.send_event(CustomEvent::ScheduleBrowserWork(scheduled_time)); - } - - fn receive_web_message(&self, message: &[u8]) { - let str = std::str::from_utf8(message).unwrap(); - match ron::from_str(str) { - Ok(message) => { - let _ = self.event_loop_proxy.send_event(CustomEvent::MessageReceived(message)); + #[cfg(feature = "accelerated_paint")] + fn draw_gpu(&self, shared_texture: SharedTextureHandle) { + match shared_texture.import_texture(&self.wgpu_context.device) { + Ok(texture) => { + self.app_event_scheduler.schedule(AppEvent::UiUpdate(texture)); } Err(e) => { - tracing::error!("Failed to deserialize message {:?}", e) + tracing::error!("Failed to import shared texture: {}", e); } } } + + fn load_resource(&self, path: PathBuf) -> Option { + let path = if path.as_os_str().is_empty() { PathBuf::from("index.html") } else { path }; + + let mimetype = match path.extension().and_then(|s| s.to_str()).unwrap_or("") { + "html" => Some("text/html".to_string()), + "css" => Some("text/css".to_string()), + "txt" => Some("text/plain".to_string()), + "wasm" => Some("application/wasm".to_string()), + "js" => Some("application/javascript".to_string()), + "png" => Some("image/png".to_string()), + "jpg" | "jpeg" => Some("image/jpeg".to_string()), + "svg" => Some("image/svg+xml".to_string()), + "xml" => Some("application/xml".to_string()), + "json" => Some("application/json".to_string()), + "ico" => Some("image/x-icon".to_string()), + "woff" => Some("font/woff".to_string()), + "woff2" => Some("font/woff2".to_string()), + "ttf" => Some("font/ttf".to_string()), + "otf" => Some("font/otf".to_string()), + "webmanifest" => Some("application/manifest+json".to_string()), + "graphite" => Some("application/graphite+json".to_string()), + _ => None, + }; + + #[cfg(feature = "embedded_resources")] + { + if let Some(resources) = &graphite_desktop_embedded_resources::EMBEDDED_RESOURCES + && let Some(file) = resources.get_file(&path) + { + return Some(Resource { + reader: ResourceReader::Embedded(io::Cursor::new(file.contents())), + mimetype, + }); + } + } + + #[cfg(not(feature = "embedded_resources"))] + { + use std::path::Path; + let asset_path_env = std::env::var("GRAPHITE_RESOURCES").ok()?; + let asset_path = Path::new(&asset_path_env); + let file_path = asset_path.join(path.strip_prefix("/").unwrap_or(&path)); + if file_path.exists() && file_path.is_file() { + if let Ok(file) = std::fs::File::open(file_path) { + return Some(Resource { + reader: ResourceReader::File(file.into()), + mimetype, + }); + } + } + } + + None + } + + fn cursor_change(&self, cursor: Cursor) { + self.app_event_scheduler.schedule(AppEvent::CursorChange(cursor)); + } + + fn schedule_cef_message_loop_work(&self, scheduled_time: std::time::Instant) { + self.app_event_scheduler.schedule(AppEvent::ScheduleBrowserWork(scheduled_time)); + } + + fn initialized_web_communication(&self) { + self.app_event_scheduler.schedule(AppEvent::WebCommunicationInitialized); + } + + fn receive_web_message(&self, message: &[u8]) { + let Some(desktop_wrapper_message) = deserialize_editor_message(message) else { + tracing::error!("Failed to deserialize web message"); + return; + }; + self.app_event_scheduler.schedule(AppEvent::DesktopWrapperMessage(desktop_wrapper_message)); + } + + fn duplicate(&self) -> Self + where + Self: Sized, + { + Self { + wgpu_context: self.wgpu_context.clone(), + app_event_scheduler: self.app_event_scheduler.clone(), + view_info_receiver: self.view_info_receiver.clone(), + } + } +} + +struct ViewInfoReceiver { + view_info: ViewInfo, + receiver: Receiver, +} +impl ViewInfoReceiver { + fn new(receiver: Receiver) -> Self { + Self { view_info: ViewInfo::new(), receiver } + } } diff --git a/desktop/src/cef/consts.rs b/desktop/src/cef/consts.rs new file mode 100644 index 000000000..bcd0e7fcb --- /dev/null +++ b/desktop/src/cef/consts.rs @@ -0,0 +1,22 @@ +use std::time::Duration; + +pub(crate) const RESOURCE_SCHEME: &str = "resources"; +pub(crate) const RESOURCE_DOMAIN: &str = "resources"; + +pub(crate) const SCROLL_LINE_HEIGHT: usize = 40; +pub(crate) const SCROLL_LINE_WIDTH: usize = 40; + +#[cfg(target_os = "linux")] +pub(crate) const SCROLL_SPEED_X: f32 = 3.0; +#[cfg(target_os = "linux")] +pub(crate) const SCROLL_SPEED_Y: f32 = 3.0; + +#[cfg(not(target_os = "linux"))] +pub(crate) const SCROLL_SPEED_X: f32 = 1.0; +#[cfg(not(target_os = "linux"))] +pub(crate) const SCROLL_SPEED_Y: f32 = 1.0; + +pub(crate) const PINCH_ZOOM_SPEED: f64 = 300.0; + +pub(crate) const MULTICLICK_TIMEOUT: Duration = Duration::from_millis(500); +pub(crate) const MULTICLICK_ALLOWED_TRAVEL: usize = 4; diff --git a/desktop/src/cef/context.rs b/desktop/src/cef/context.rs index 5a0f642c2..53eac0aee 100644 --- a/desktop/src/cef/context.rs +++ b/desktop/src/cef/context.rs @@ -1,161 +1,16 @@ -use cef::sys::{CEF_API_VERSION_LAST, cef_resultcode_t}; -use cef::{App, BrowserSettings, Client, DictionaryValue, ImplBrowser, ImplBrowserHost, ImplCommandLine, RenderHandler, RequestContext, WindowInfo, browser_host_create_browser_sync, initialize}; -use cef::{Browser, CefString, Settings, api_hash, args::Args, execute_process}; -use thiserror::Error; -use winit::event::WindowEvent; +#[cfg(not(target_os = "macos"))] +mod multithreaded; +mod singlethreaded; -use crate::cef::dirs::{cef_cache_dir, cef_data_dir}; +mod builder; +pub(crate) use builder::{CefContextBuilder, InitError}; -use super::input::InputState; -use super::ipc::{MessageType, SendMessage}; -use super::scheme_handler::{FRONTEND_DOMAIN, GRAPHITE_SCHEME}; -use super::{CefEventHandler, input}; +pub(crate) trait CefContext { + fn work(&mut self); -use super::internal::{BrowserProcessAppImpl, BrowserProcessClientImpl, RenderHandlerImpl, RenderProcessAppImpl}; + fn handle_window_event(&mut self, event: &winit::event::WindowEvent); -pub(crate) struct Setup {} -pub(crate) struct Initialized {} -pub(crate) trait ContextState {} -impl ContextState for Setup {} -impl ContextState for Initialized {} + fn notify_view_info_changed(&self); -pub(crate) struct Context { - args: Args, - pub(crate) browser: Option, - pub(crate) input_state: InputState, - marker: std::marker::PhantomData, -} - -impl Context { - pub(crate) fn new() -> Result, SetupError> { - #[cfg(target_os = "macos")] - let _loader = { - let loader = library_loader::LibraryLoader::new(&std::env::current_exe().unwrap(), false); - assert!(loader.load()); - loader - }; - let _ = api_hash(CEF_API_VERSION_LAST, 0); - - let args = Args::new(); - let cmd = args.as_cmd_line().unwrap(); - let switch = CefString::from("type"); - let is_browser_process = cmd.has_switch(Some(&switch)) != 1; - - if !is_browser_process { - let process_type = CefString::from(&cmd.switch_value(Some(&switch))); - let mut app = RenderProcessAppImpl::app(); - let ret = execute_process(Some(args.as_main_args()), Some(&mut app), std::ptr::null_mut()); - if ret >= 0 { - return Err(SetupError::SubprocessFailed(process_type.to_string())); - } else { - return Err(SetupError::Subprocess); - } - } - - Ok(Context { - args, - browser: None, - input_state: InputState::default(), - marker: std::marker::PhantomData::, - }) - } - - pub(crate) fn init(self, event_handler: impl CefEventHandler) -> Result, InitError> { - let settings = Settings { - windowless_rendering_enabled: 1, - multi_threaded_message_loop: 0, - external_message_pump: 1, - root_cache_path: cef_data_dir().to_str().map(CefString::from).unwrap(), - cache_path: cef_cache_dir().to_str().map(CefString::from).unwrap(), - ..Default::default() - }; - - // Attention! Wrapping this in an extra App is necessary, otherwise the program still compiles but segfaults - let mut cef_app = App::new(BrowserProcessAppImpl::new(event_handler.clone())); - - let result = initialize(Some(self.args.as_main_args()), Some(&settings), Some(&mut cef_app), std::ptr::null_mut()); - if result != 1 { - let cef_exit_code = cef::get_exit_code() as u32; - if cef_exit_code == cef_resultcode_t::CEF_RESULT_CODE_NORMAL_EXIT_PROCESS_NOTIFIED as u32 { - return Err(InitError::AlreadyRunning); - } - return Err(InitError::InitializationFailed(cef_exit_code)); - } - - let render_handler = RenderHandler::new(RenderHandlerImpl::new(event_handler.clone())); - let mut client = Client::new(BrowserProcessClientImpl::new(render_handler, event_handler.clone())); - - let url = CefString::from(format!("{GRAPHITE_SCHEME}://{FRONTEND_DOMAIN}/").as_str()); - - let window_info = WindowInfo { - windowless_rendering_enabled: 1, - ..Default::default() - }; - - let settings = BrowserSettings { - windowless_frame_rate: 60, - background_color: 0x0, - ..Default::default() - }; - - let browser = browser_host_create_browser_sync( - Some(&window_info), - Some(&mut client), - Some(&url), - Some(&settings), - Option::<&mut DictionaryValue>::None, - Option::<&mut RequestContext>::None, - ); - - Ok(Context { - args: self.args.clone(), - browser, - input_state: self.input_state.clone(), - marker: std::marker::PhantomData::, - }) - } -} - -impl Context { - pub(crate) fn work(&mut self) { - cef::do_message_loop_work(); - } - - pub(crate) fn handle_window_event(&mut self, event: WindowEvent) -> Option { - input::handle_window_event(self, event) - } - - pub(crate) fn notify_of_resize(&self) { - if let Some(browser) = &self.browser { - browser.host().unwrap().was_resized(); - } - } - - pub(crate) fn send_web_message(&self, message: &[u8]) { - self.send_message(MessageType::SendToJS, message); - } -} - -impl Drop for Context { - fn drop(&mut self) { - if self.browser.is_some() { - cef::shutdown(); - } - } -} - -#[derive(Error, Debug)] -pub(crate) enum SetupError { - #[error("this is the sub process should exit immediately")] - Subprocess, - #[error("subprocess returned non zero exit code")] - SubprocessFailed(String), -} - -#[derive(Error, Debug)] -pub(crate) enum InitError { - #[error("initialization failed")] - InitializationFailed(u32), - #[error("Another instance is already running")] - AlreadyRunning, + fn send_web_message(&self, message: Vec); } diff --git a/desktop/src/cef/context/builder.rs b/desktop/src/cef/context/builder.rs new file mode 100644 index 000000000..566ef1a0b --- /dev/null +++ b/desktop/src/cef/context/builder.rs @@ -0,0 +1,230 @@ +use std::path::{Path, PathBuf}; + +use cef::args::Args; +use cef::sys::{CEF_API_VERSION_LAST, cef_resultcode_t}; +use cef::{ + App, BrowserSettings, CefString, Client, DictionaryValue, ImplCommandLine, ImplRequestContext, RequestContextSettings, SchemeHandlerFactory, Settings, WindowInfo, api_hash, + browser_host_create_browser_sync, execute_process, +}; + +use super::CefContext; +use super::singlethreaded::SingleThreadedCefContext; +use crate::cef::CefEventHandler; +use crate::cef::consts::{RESOURCE_DOMAIN, RESOURCE_SCHEME}; +use crate::cef::dirs::{create_instance_dir, delete_instance_dirs}; +use crate::cef::input::InputState; +use crate::cef::internal::{BrowserProcessAppImpl, BrowserProcessClientImpl, RenderProcessAppImpl, SchemeHandlerFactoryImpl}; + +pub(crate) struct CefContextBuilder { + pub(crate) args: Args, + pub(crate) is_sub_process: bool, + _marker: std::marker::PhantomData, +} + +unsafe impl Send for CefContextBuilder {} + +impl CefContextBuilder { + pub(crate) fn new() -> Self { + Self::new_inner(false) + } + + pub(crate) fn new_helper() -> Self { + Self::new_inner(true) + } + + fn new_inner(helper: bool) -> Self { + #[cfg(target_os = "macos")] + let _loader = { + let loader = cef::library_loader::LibraryLoader::new(&std::env::current_exe().unwrap(), helper); + assert!(loader.load()); + loader + }; + #[cfg(not(target_os = "macos"))] + let _ = helper; + + let _ = api_hash(CEF_API_VERSION_LAST, 0); + + let args = Args::new(); + let cmd = args.as_cmd_line().unwrap(); + let switch = CefString::from("type"); + let is_sub_process = cmd.has_switch(Some(&switch)) == 1; + + Self { + args, + is_sub_process, + _marker: std::marker::PhantomData, + } + } + + pub(crate) fn is_sub_process(&self) -> bool { + self.is_sub_process + } + + pub(crate) fn execute_sub_process(&self) -> SetupError { + let cmd = self.args.as_cmd_line().unwrap(); + let switch = CefString::from("type"); + let process_type = CefString::from(&cmd.switch_value(Some(&switch))); + let mut app = RenderProcessAppImpl::::app(); + let ret = execute_process(Some(self.args.as_main_args()), Some(&mut app), std::ptr::null_mut()); + if ret >= 0 { + SetupError::SubprocessFailed(process_type.to_string()) + } else { + SetupError::Subprocess + } + } + + fn common_settings(instance_dir: &Path) -> Settings { + Settings { + windowless_rendering_enabled: 1, + root_cache_path: instance_dir.to_str().map(CefString::from).unwrap(), + cache_path: CefString::from(""), + disable_signal_handlers: 1, + ..Default::default() + } + } + + #[cfg(target_os = "macos")] + pub(crate) fn initialize(self, event_handler: H, disable_gpu_acceleration: bool) -> Result { + delete_instance_dirs(); + let instance_dir = create_instance_dir(); + + let exe = std::env::current_exe().expect("cannot get current exe path"); + let app_root = exe.parent().and_then(|p| p.parent()).expect("bad path structure").parent().expect("bad path structure"); + + let settings = Settings { + main_bundle_path: CefString::from(app_root.to_str().unwrap()), + multi_threaded_message_loop: 0, + external_message_pump: 1, + no_sandbox: 1, // GPU helper crashes when running with sandbox + ..Self::common_settings(&instance_dir) + }; + + self.initialize_inner(&event_handler, settings)?; + + create_browser(event_handler, instance_dir, disable_gpu_acceleration) + } + + #[cfg(not(target_os = "macos"))] + pub(crate) fn initialize(self, event_handler: H, disable_gpu_acceleration: bool) -> Result { + delete_instance_dirs(); + let instance_dir = create_instance_dir(); + + let settings = Settings { + multi_threaded_message_loop: 1, + ..Self::common_settings(&instance_dir) + }; + + self.initialize_inner(&event_handler, settings)?; + + super::multithreaded::run_on_ui_thread(move || match create_browser(event_handler, instance_dir, disable_gpu_acceleration) { + Ok(context) => { + super::multithreaded::CONTEXT.with(|b| { + *b.borrow_mut() = Some(context); + }); + } + Err(e) => { + tracing::error!("Failed to initialize CEF context: {:?}", e); + std::process::exit(1); + } + }); + + Ok(super::multithreaded::MultiThreadedCefContextProxy) + } + + fn initialize_inner(self, event_handler: &H, settings: Settings) -> Result<(), InitError> { + // Attention! Wrapping this in an extra App is necessary, otherwise the program still compiles but segfaults + let mut cef_app = App::new(BrowserProcessAppImpl::new(event_handler.duplicate())); + + let result = cef::initialize(Some(self.args.as_main_args()), Some(&settings), Some(&mut cef_app), std::ptr::null_mut()); + if result != 1 { + let cef_exit_code = cef::get_exit_code() as u32; + if cef_exit_code == cef_resultcode_t::CEF_RESULT_CODE_NORMAL_EXIT_PROCESS_NOTIFIED as u32 { + return Err(InitError::AlreadyRunning); + } + return Err(InitError::InitializationFailed(cef_exit_code)); + } + Ok(()) + } +} + +fn create_browser(event_handler: H, instance_dir: PathBuf, disable_gpu_acceleration: bool) -> Result { + let mut client = Client::new(BrowserProcessClientImpl::new(&event_handler)); + + #[cfg(feature = "accelerated_paint")] + let use_accelerated_paint = if disable_gpu_acceleration { + false + } else { + crate::cef::platform::should_enable_hardware_acceleration() + }; + + let window_info = WindowInfo { + windowless_rendering_enabled: 1, + #[cfg(feature = "accelerated_paint")] + shared_texture_enabled: use_accelerated_paint as i32, + ..Default::default() + }; + + let settings = BrowserSettings { + windowless_frame_rate: crate::consts::CEF_WINDOWLESS_FRAME_RATE, + background_color: 0x0, + ..Default::default() + }; + + let Some(mut incognito_request_context) = cef::request_context_create_context( + Some(&RequestContextSettings { + persist_session_cookies: 0, + cache_path: CefString::from(""), + ..Default::default() + }), + Option::<&mut cef::RequestContextHandler>::None, + ) else { + return Err(InitError::RequestContextCreationFailed); + }; + + let mut scheme_handler_factory = SchemeHandlerFactory::new(SchemeHandlerFactoryImpl::new(event_handler.duplicate())); + incognito_request_context.clear_scheme_handler_factories(); + incognito_request_context.register_scheme_handler_factory(Some(&CefString::from(RESOURCE_SCHEME)), Some(&CefString::from(RESOURCE_DOMAIN)), Some(&mut scheme_handler_factory)); + + let url = CefString::from(format!("{RESOURCE_SCHEME}://{RESOURCE_DOMAIN}/").as_str()); + + let browser = browser_host_create_browser_sync( + Some(&window_info), + Some(&mut client), + Some(&url), + Some(&settings), + Option::<&mut DictionaryValue>::None, + Some(&mut incognito_request_context), + ); + + if let Some(browser) = browser { + Ok(SingleThreadedCefContext { + event_handler: Box::new(event_handler), + browser, + input_state: InputState::default(), + instance_dir, + }) + } else { + tracing::error!("Failed to create browser"); + Err(InitError::BrowserCreationFailed) + } +} + +#[derive(thiserror::Error, Debug)] +pub(crate) enum SetupError { + #[error("This is the sub process should exit immediately")] + Subprocess, + #[error("Subprocess returned non zero exit code")] + SubprocessFailed(String), +} + +#[derive(thiserror::Error, Debug)] +pub(crate) enum InitError { + #[error("Initialization failed")] + InitializationFailed(u32), + #[error("Browser creation failed")] + BrowserCreationFailed, + #[error("Request context creation failed")] + RequestContextCreationFailed, + #[error("Another instance is already running")] + AlreadyRunning, +} diff --git a/desktop/src/cef/context/multithreaded.rs b/desktop/src/cef/context/multithreaded.rs new file mode 100644 index 000000000..90c8001fd --- /dev/null +++ b/desktop/src/cef/context/multithreaded.rs @@ -0,0 +1,67 @@ +use cef::sys::cef_thread_id_t; +use cef::{Task, ThreadId, post_task}; +use std::cell::RefCell; +use winit::event::WindowEvent; + +use crate::cef::internal::task::ClosureTask; + +use super::CefContext; +use super::singlethreaded::SingleThreadedCefContext; + +thread_local! { + pub(super) static CONTEXT: RefCell> = const { RefCell::new(None) }; +} + +pub(super) struct MultiThreadedCefContextProxy; + +impl CefContext for MultiThreadedCefContextProxy { + fn work(&mut self) { + // CEF handles its own message loop in multi-threaded mode + } + + fn handle_window_event(&mut self, event: &WindowEvent) { + let event_clone = event.clone(); + run_on_ui_thread(move || { + CONTEXT.with(|b| { + if let Some(context) = b.borrow_mut().as_mut() { + context.handle_window_event(&event_clone); + } + }); + }); + } + + fn notify_view_info_changed(&self) { + run_on_ui_thread(move || { + CONTEXT.with(|b| { + if let Some(context) = b.borrow_mut().as_mut() { + context.notify_view_info_changed(); + } + }); + }); + } + + fn send_web_message(&self, message: Vec) { + run_on_ui_thread(move || { + CONTEXT.with(|b| { + if let Some(context) = b.borrow_mut().as_mut() { + context.send_web_message(message); + } + }); + }); + } +} + +impl Drop for MultiThreadedCefContextProxy { + fn drop(&mut self) { + cef::shutdown(); + } +} + +pub(super) fn run_on_ui_thread(closure: F) +where + F: FnOnce() + Send + 'static, +{ + let closure_task = ClosureTask::new(closure); + let mut task = Task::new(closure_task); + post_task(ThreadId::from(cef_thread_id_t::TID_UI), Some(&mut task)); +} diff --git a/desktop/src/cef/context/singlethreaded.rs b/desktop/src/cef/context/singlethreaded.rs new file mode 100644 index 000000000..61662c4d4 --- /dev/null +++ b/desktop/src/cef/context/singlethreaded.rs @@ -0,0 +1,71 @@ +use cef::{Browser, ImplBrowser, ImplBrowserHost}; +use winit::event::WindowEvent; + +use crate::cef::input::InputState; +use crate::cef::ipc::{MessageType, SendMessage}; +use crate::cef::{CefEventHandler, input}; + +use super::CefContext; + +pub(super) struct SingleThreadedCefContext { + pub(super) event_handler: Box, + pub(super) browser: Browser, + pub(super) input_state: InputState, + pub(super) instance_dir: std::path::PathBuf, +} + +impl CefContext for SingleThreadedCefContext { + fn work(&mut self) { + cef::do_message_loop_work(); + } + + fn handle_window_event(&mut self, event: &WindowEvent) { + input::handle_window_event(&self.browser, &mut self.input_state, event); + } + + fn notify_view_info_changed(&self) { + let view_info = self.event_handler.view_info(); + let host = self.browser.host().unwrap(); + host.set_zoom_level(view_info.zoom()); + host.was_resized(); + + // Fix for CEF not updating the view after resize on windows and mac + // TODO: remove once https://github.com/chromiumembedded/cef/issues/3822 is fixed + #[cfg(any(target_os = "windows", target_os = "macos"))] + host.invalidate(cef::PaintElementType::default()); + } + + fn send_web_message(&self, message: Vec) { + self.send_message(MessageType::SendToJS, &message); + } +} + +impl Drop for SingleThreadedCefContext { + fn drop(&mut self) { + cef::shutdown(); + + // Sometimes some CEF processes still linger at this point and hold file handles to the cache directory. + // To mitigate this, we try to remove the directory multiple times with some delay. + // TODO: find a better solution if possible. + for _ in 0..30 { + match std::fs::remove_dir_all(&self.instance_dir) { + Ok(_) => break, + Err(e) => { + tracing::warn!("Failed to remove CEF cache directory, retrying...: {e}"); + std::thread::sleep(std::time::Duration::from_millis(100)); + } + } + } + } +} + +impl SendMessage for SingleThreadedCefContext { + fn send_message(&self, message_type: MessageType, message: &[u8]) { + let Some(frame) = self.browser.main_frame() else { + tracing::error!("Main frame is not available, cannot send message"); + return; + }; + + frame.send_message(message_type, message); + } +} diff --git a/desktop/src/cef/dirs.rs b/desktop/src/cef/dirs.rs index 0d4ce6fbc..5046fc6e7 100644 --- a/desktop/src/cef/dirs.rs +++ b/desktop/src/cef/dirs.rs @@ -1,17 +1,24 @@ use std::path::PathBuf; -use crate::dirs::{ensure_dir_exists, graphite_data_dir}; +use crate::dirs::{app_data_dir, ensure_dir_exists}; static CEF_DIR_NAME: &str = "browser"; -pub(crate) fn cef_data_dir() -> PathBuf { - let path = graphite_data_dir().join(CEF_DIR_NAME); - ensure_dir_exists(&path); - path +pub(crate) fn delete_instance_dirs() { + let cef_dir = app_data_dir().join(CEF_DIR_NAME); + if let Ok(entries) = std::fs::read_dir(&cef_dir) { + for entry in entries.flatten() { + let path = entry.path(); + if path.is_dir() { + let _ = std::fs::remove_dir_all(&path); + } + } + } } -pub(crate) fn cef_cache_dir() -> PathBuf { - let path = cef_data_dir().join("cache"); +pub(crate) fn create_instance_dir() -> PathBuf { + let instance_id: String = (0..32).map(|_| format!("{:x}", rand::random::() % 16)).collect(); + let path = app_data_dir().join(CEF_DIR_NAME).join(instance_id); ensure_dir_exists(&path); path } diff --git a/desktop/src/cef/input.rs b/desktop/src/cef/input.rs index 103838a18..bf15ec46a 100644 --- a/desktop/src/cef/input.rs +++ b/desktop/src/cef/input.rs @@ -1,277 +1,177 @@ use cef::sys::{cef_event_flags_t, cef_key_event_type_t, cef_mouse_button_type_t}; -use cef::{ImplBrowser, ImplBrowserHost, KeyEvent, KeyEventType, MouseEvent}; -use winit::dpi::PhysicalPosition; -use winit::event::{ElementState, MouseButton, MouseScrollDelta, WindowEvent}; - -use super::context::{Context, Initialized}; +use cef::{Browser, ImplBrowser, ImplBrowserHost, KeyEvent, MouseEvent}; +use winit::event::{ButtonSource, ElementState, MouseButton, MouseScrollDelta, WindowEvent}; +use winit::keyboard::Key; mod keymap; -use keymap::{ToDomBits, ToVKBits}; +use keymap::{ToCharRepresentation, ToNativeKeycode, ToVKBits}; -pub(crate) fn handle_window_event(context: &mut Context, event: WindowEvent) -> Option { +mod state; +pub(crate) use state::{CefModifiers, InputState}; + +use super::consts::{PINCH_ZOOM_SPEED, SCROLL_LINE_HEIGHT, SCROLL_LINE_WIDTH, SCROLL_SPEED_X, SCROLL_SPEED_Y}; + +pub(crate) fn handle_window_event(browser: &Browser, input_state: &mut InputState, event: &WindowEvent) { match event { - WindowEvent::CursorMoved { position, .. } => { - if let Some(browser) = &context.browser { - if let Some(host) = browser.host() { - host.set_focus(1); - } - - context.input_state.update_mouse_position(&position); - let mouse_event: MouseEvent = (&context.input_state).into(); - browser.host().unwrap().send_mouse_move_event(Some(&mouse_event), 0); + WindowEvent::PointerMoved { position, .. } | WindowEvent::PointerEntered { position, .. } => { + if !input_state.cursor_move(position) { + return; } + + let Some(host) = browser.host() else { return }; + host.send_mouse_move_event(Some(&input_state.into()), 0); } - WindowEvent::MouseInput { state, button, .. } => { - if let Some(browser) = &context.browser { - if let Some(host) = browser.host() { - host.set_focus(1); - - let mouse_up = match state { - ElementState::Pressed => 0, - ElementState::Released => 1, - }; - - let cef_button = match button { - MouseButton::Left => Some(cef::MouseButtonType::from(cef_mouse_button_type_t::MBT_LEFT)), - MouseButton::Right => Some(cef::MouseButtonType::from(cef_mouse_button_type_t::MBT_RIGHT)), - MouseButton::Middle => Some(cef::MouseButtonType::from(cef_mouse_button_type_t::MBT_MIDDLE)), - MouseButton::Forward => None, //TODO: Handle Forward button - MouseButton::Back => None, //TODO: Handle Back button - _ => None, - }; - - let mut mouse_state = context.input_state.mouse_state.clone(); - match button { - MouseButton::Left => { - mouse_state.left = match state { - ElementState::Pressed => true, - ElementState::Released => false, - } - } - MouseButton::Right => { - mouse_state.right = match state { - ElementState::Pressed => true, - ElementState::Released => false, - } - } - MouseButton::Middle => { - mouse_state.middle = match state { - ElementState::Pressed => true, - ElementState::Released => false, - } - } - _ => {} - }; - context.input_state.update_mouse_state(mouse_state); - - let mouse_event: MouseEvent = (&context.input_state).into(); - - if let Some(button) = cef_button { - host.send_mouse_click_event( - Some(&mouse_event), - button, - mouse_up, - 1, // click count - ); - } - } + WindowEvent::PointerLeft { position, .. } => { + if let Some(position) = position { + let _ = input_state.cursor_move(position); } + + let Some(host) = browser.host() else { return }; + host.send_mouse_move_event(Some(&(input_state.into())), 1); + } + WindowEvent::PointerButton { state, button, .. } => { + let mouse_button = match button { + ButtonSource::Mouse(mouse_button) => mouse_button, + _ => { + return; // TODO: Handle touch input + } + }; + + let cef_click_count = input_state.mouse_input(mouse_button, state).into(); + let cef_mouse_up = match state { + ElementState::Pressed => 0, + ElementState::Released => 1, + }; + let cef_button = match mouse_button { + MouseButton::Left => cef::MouseButtonType::from(cef_mouse_button_type_t::MBT_LEFT), + MouseButton::Right => cef::MouseButtonType::from(cef_mouse_button_type_t::MBT_RIGHT), + MouseButton::Middle => cef::MouseButtonType::from(cef_mouse_button_type_t::MBT_MIDDLE), + _ => return, + }; + + let Some(host) = browser.host() else { return }; + host.send_mouse_click_event(Some(&input_state.into()), cef_button, cef_mouse_up, cef_click_count); } WindowEvent::MouseWheel { delta, phase: _, device_id: _, .. } => { - if let Some(browser) = &context.browser { - if let Some(host) = browser.host() { - let mouse_event = (&context.input_state).into(); - let line_width = 40; //feels about right, TODO: replace with correct value - let line_height = 30; //feels about right, TODO: replace with correct value - let (delta_x, delta_y) = match delta { - MouseScrollDelta::LineDelta(x, y) => (x * line_width as f32, y * line_height as f32), - MouseScrollDelta::PixelDelta(physical_position) => (physical_position.x as f32, physical_position.y as f32), - }; - host.send_mouse_wheel_event(Some(&mouse_event), delta_x as i32, delta_y as i32); - } - } + let mouse_event = input_state.into(); + let (mut delta_x, mut delta_y) = match delta { + MouseScrollDelta::LineDelta(x, y) => (x * SCROLL_LINE_WIDTH as f32, y * SCROLL_LINE_HEIGHT as f32), + MouseScrollDelta::PixelDelta(physical_position) => (physical_position.x as f32, physical_position.y as f32), + }; + delta_x *= SCROLL_SPEED_X; + delta_y *= SCROLL_SPEED_Y; + + let Some(host) = browser.host() else { return }; + host.send_mouse_wheel_event(Some(&mouse_event), delta_x as i32, delta_y as i32); } WindowEvent::ModifiersChanged(modifiers) => { - context.input_state.update_modifiers(&modifiers.state()); + input_state.modifiers_changed(&modifiers.state()); } WindowEvent::KeyboardInput { device_id: _, event, is_synthetic: _ } => { - if let Some(browser) = &context.browser { - if let Some(host) = browser.host() { - host.set_focus(1); + let Some(host) = browser.host() else { return }; - let (named_key, character) = match &event.logical_key { - winit::keyboard::Key::Named(named_key) => ( - Some(named_key), - match named_key { - winit::keyboard::NamedKey::Space => Some(' '), - winit::keyboard::NamedKey::Enter => Some('\u{000d}'), - _ => None, - }, - ), - winit::keyboard::Key::Character(str) => { - let char = str.chars().next().unwrap_or('\0'); - (None, Some(char)) - } - _ => return None, - }; - - let mut key_event = KeyEvent { - size: size_of::(), - focus_on_editable_field: 1, - modifiers: context.input_state.cef_modifiers(&event.location, event.repeat).raw(), - is_system_key: 0, - ..Default::default() - }; - - if let Some(named_key) = named_key { - key_event.native_key_code = named_key.to_dom_bits(); - key_event.windows_key_code = named_key.to_vk_bits(); - } else if let Some(char) = character { - key_event.native_key_code = char.to_dom_bits(); - key_event.windows_key_code = char.to_vk_bits(); - } - - match event.state { - ElementState::Pressed => { - key_event.type_ = KeyEventType::from(cef_key_event_type_t::KEYEVENT_RAWKEYDOWN); - host.send_key_event(Some(&key_event)); - - if let Some(char) = character { - let mut buf = [0; 2]; - char.encode_utf16(&mut buf); - key_event.character = buf[0]; - let mut buf = [0; 2]; - char.to_lowercase().next().unwrap().encode_utf16(&mut buf); - key_event.unmodified_character = buf[0]; - - key_event.type_ = KeyEventType::from(cef_key_event_type_t::KEYEVENT_CHAR); - host.send_key_event(Some(&key_event)); - } - } - ElementState::Released => { - key_event.type_ = KeyEventType::from(cef_key_event_type_t::KEYEVENT_KEYUP); - host.send_key_event(Some(&key_event)); - } - }; + let mut key_event = KeyEvent { + type_: match (event.state, &event.logical_key) { + (ElementState::Pressed, winit::keyboard::Key::Character(_)) => cef_key_event_type_t::KEYEVENT_CHAR, + (ElementState::Pressed, _) => cef_key_event_type_t::KEYEVENT_RAWKEYDOWN, + (ElementState::Released, _) => cef_key_event_type_t::KEYEVENT_KEYUP, } + .into(), + ..Default::default() + }; + + key_event.modifiers = input_state.cef_modifiers(&event.location, event.repeat).into(); + + match (&event.logical_key, event.state) { + (Key::Named(winit::keyboard::NamedKey::Control), ElementState::Pressed) => { + key_event.modifiers |= cef_event_flags_t::EVENTFLAG_CONTROL_DOWN.0; + } + (Key::Named(winit::keyboard::NamedKey::Control), ElementState::Released) => { + key_event.modifiers &= !(cef_event_flags_t::EVENTFLAG_CONTROL_DOWN.0); + } + (Key::Named(winit::keyboard::NamedKey::Shift), ElementState::Pressed) => { + key_event.modifiers |= cef_event_flags_t::EVENTFLAG_SHIFT_DOWN.0; + } + (Key::Named(winit::keyboard::NamedKey::Shift), ElementState::Released) => { + key_event.modifiers &= !(cef_event_flags_t::EVENTFLAG_SHIFT_DOWN.0); + } + (Key::Named(winit::keyboard::NamedKey::Alt), ElementState::Pressed) => { + key_event.modifiers |= cef_event_flags_t::EVENTFLAG_ALT_DOWN.0; + } + (Key::Named(winit::keyboard::NamedKey::Alt), ElementState::Released) => { + key_event.modifiers &= !(cef_event_flags_t::EVENTFLAG_ALT_DOWN.0); + } + (Key::Named(winit::keyboard::NamedKey::Meta), ElementState::Pressed) => { + key_event.modifiers |= cef_event_flags_t::EVENTFLAG_COMMAND_DOWN.0; + } + (Key::Named(winit::keyboard::NamedKey::Meta), ElementState::Released) => { + key_event.modifiers &= !(cef_event_flags_t::EVENTFLAG_COMMAND_DOWN.0); + } + + _ => {} } + + key_event.windows_key_code = match &event.logical_key { + winit::keyboard::Key::Named(named) => named.to_vk_bits(), + winit::keyboard::Key::Character(char) => char.chars().next().unwrap_or_default().to_vk_bits(), + _ => 0, + }; + + key_event.native_key_code = event.physical_key.to_native_keycode(); + + key_event.character = event.logical_key.to_char_representation() as u16; + + if event.state == ElementState::Pressed && key_event.character != 0 { + key_event.type_ = cef_key_event_type_t::KEYEVENT_CHAR.into(); + } + + // Mitigation for CEF on Mac bug to prevent NSMenu being triggered by this key event. + // + // CEF converts the key event into an `NSEvent` internally and passes that to Chromium. + // In some cases the `NSEvent` gets to the native Cocoa application, is considered "unhandled" and can trigger menus. + // + // Why mitigation works: + // Leaving `key_event.unmodified_character = 0` still leads to CEF forwarding a "unhandled" event to the native application + // but that event is discarded because `key_event.unmodified_character = 0` is considered non-printable and not used for shortcut matching. + // + // See https://github.com/chromiumembedded/cef/issues/3857 + // + // TODO: Remove mitigation once bug is fixed or a better solution is found. + #[cfg(not(target_os = "macos"))] + { + key_event.unmodified_character = event.key_without_modifiers.to_char_representation() as u16; + } + + #[cfg(target_os = "macos")] // See https://www.magpcss.org/ceforum/viewtopic.php?start=10&t=11650 + if key_event.character == 0 && key_event.unmodified_character == 0 && event.text_with_all_modifiers.is_some() { + key_event.character = 1; + } + + if key_event.type_ == cef_key_event_type_t::KEYEVENT_CHAR.into() { + let mut key_down_event = key_event.clone(); + key_down_event.type_ = cef_key_event_type_t::KEYEVENT_RAWKEYDOWN.into(); + host.send_key_event(Some(&key_down_event)); + + key_event.windows_key_code = event.logical_key.to_char_representation() as i32; + } + + host.send_key_event(Some(&key_event)); } - e => return Some(e), - } - None -} + WindowEvent::PinchGesture { delta, .. } => { + if !delta.is_normal() { + return; + } + let Some(host) = browser.host() else { return }; -#[derive(Default, Clone)] -pub(crate) struct MouseState { - left: bool, - right: bool, - middle: bool, -} + let mouse_event = MouseEvent { + modifiers: CefModifiers::PINCH_MODIFIERS.into(), + ..input_state.into() + }; -#[derive(Default, Clone, Debug)] -pub(crate) struct MousePosition { - x: usize, - y: usize, -} + let delta = (delta * PINCH_ZOOM_SPEED).round() as i32; -impl From<&PhysicalPosition> for MousePosition { - fn from(position: &PhysicalPosition) -> Self { - Self { - x: position.x as usize, - y: position.y as usize, + host.send_mouse_wheel_event(Some(&mouse_event), 0, delta); } - } -} - -#[derive(Default, Clone)] -pub(crate) struct InputState { - modifiers: winit::keyboard::ModifiersState, - mouse_position: MousePosition, - mouse_state: MouseState, -} - -impl InputState { - fn update_modifiers(&mut self, modifiers: &winit::keyboard::ModifiersState) { - self.modifiers = *modifiers; - } - - fn update_mouse_position(&mut self, position: &PhysicalPosition) { - self.mouse_position = position.into(); - } - - fn update_mouse_state(&mut self, state: MouseState) { - self.mouse_state = state; - } - - fn cef_modifiers(&self, location: &winit::keyboard::KeyLocation, is_repeat: bool) -> CefModifiers { - CefModifiers::new(self, location, is_repeat) - } - - fn cef_modifiers_mouse_event(&self) -> CefModifiers { - self.cef_modifiers(&winit::keyboard::KeyLocation::Standard, false) - } -} - -impl From for CefModifiers { - fn from(val: InputState) -> Self { - CefModifiers::new(&val, &winit::keyboard::KeyLocation::Standard, false) - } -} - -impl From<&InputState> for MouseEvent { - fn from(val: &InputState) -> Self { - MouseEvent { - x: val.mouse_position.x as i32, - y: val.mouse_position.y as i32, - modifiers: val.cef_modifiers_mouse_event().raw(), - } - } -} - -struct CefModifiers(u32); - -impl CefModifiers { - fn new(input_state: &InputState, location: &winit::keyboard::KeyLocation, is_repeat: bool) -> Self { - let mut inner = 0; - - if input_state.modifiers.shift_key() { - inner |= cef_event_flags_t::EVENTFLAG_SHIFT_DOWN as u32; - } - if input_state.modifiers.control_key() { - inner |= cef_event_flags_t::EVENTFLAG_CONTROL_DOWN as u32; - } - if input_state.modifiers.alt_key() { - inner |= cef_event_flags_t::EVENTFLAG_ALT_DOWN as u32; - } - if input_state.modifiers.super_key() { - inner |= cef_event_flags_t::EVENTFLAG_COMMAND_DOWN as u32; - } - - if input_state.mouse_state.left { - inner |= cef_event_flags_t::EVENTFLAG_LEFT_MOUSE_BUTTON as u32; - } - if input_state.mouse_state.right { - inner |= cef_event_flags_t::EVENTFLAG_RIGHT_MOUSE_BUTTON as u32; - } - if input_state.mouse_state.middle { - inner |= cef_event_flags_t::EVENTFLAG_MIDDLE_MOUSE_BUTTON as u32; - } - - if is_repeat { - inner |= cef_event_flags_t::EVENTFLAG_IS_REPEAT as u32; - } - - inner |= match location { - winit::keyboard::KeyLocation::Left => cef_event_flags_t::EVENTFLAG_IS_LEFT as u32, - winit::keyboard::KeyLocation::Right => cef_event_flags_t::EVENTFLAG_IS_RIGHT as u32, - winit::keyboard::KeyLocation::Numpad => cef_event_flags_t::EVENTFLAG_IS_KEY_PAD as u32, - winit::keyboard::KeyLocation::Standard => 0, - }; - - Self(inner) - } - - fn raw(&self) -> u32 { - self.0 + _ => {} } } diff --git a/desktop/src/cef/input/keymap.rs b/desktop/src/cef/input/keymap.rs index e37821a35..17816fb69 100644 --- a/desktop/src/cef/input/keymap.rs +++ b/desktop/src/cef/input/keymap.rs @@ -1,3 +1,48 @@ +use winit::keyboard::{Key, NamedKey, PhysicalKey}; + +pub(crate) trait ToCharRepresentation { + fn to_char_representation(&self) -> char; +} + +impl ToCharRepresentation for Key { + fn to_char_representation(&self) -> char { + match self { + Key::Named(named) => match named { + NamedKey::Tab => '\t', + NamedKey::Enter => '\r', + NamedKey::Backspace => '\x08', + NamedKey::Escape => '\x1b', + _ => '\0', + }, + Key::Character(char) => char.chars().next().unwrap_or_default(), + _ => '\0', + } + } +} + +pub(crate) trait ToNativeKeycode { + fn to_native_keycode(&self) -> i32; +} + +impl ToNativeKeycode for PhysicalKey { + fn to_native_keycode(&self) -> i32 { + use winit::platform::scancode::PhysicalKeyExtScancode; + + #[cfg(target_os = "linux")] + { + self.to_scancode().map(|evdev| (evdev + 8) as i32).unwrap_or_default() + } + #[cfg(any(target_os = "macos", target_os = "windows"))] + { + self.to_scancode().map(|c| c as i32).unwrap_or_default() + } + } +} + +pub(crate) trait ToVKBits { + fn to_vk_bits(&self) -> i32; +} + macro_rules! map_enum { ($target:expr, $enum:ident, $( ($code:expr, $variant:ident), )+ ) => { match $target { @@ -8,26 +53,8 @@ macro_rules! map_enum { } }; } - -macro_rules! map { - ($target:expr, $( ($code:expr, $variant:literal), )+ ) => { - match $target { - $( - $variant => $code, - )+ - _ => 0, - } - }; -} - -// Windows Virtual keyboard binary representation -pub(crate) trait ToVKBits { - fn to_vk_bits(&self) -> i32; -} - impl ToVKBits for winit::keyboard::NamedKey { fn to_vk_bits(&self) -> i32 { - use winit::keyboard::NamedKey; map_enum!( self, NamedKey, @@ -39,14 +66,12 @@ impl ToVKBits for winit::keyboard::NamedKey { (0x91, ScrollLock), (0x10, Shift), (0x5B, Meta), - (0x5C, Super), (0x0D, Enter), (0x09, Tab), - (0x20, Space), - (0x28, ArrowDown), (0x25, ArrowLeft), - (0x27, ArrowRight), (0x26, ArrowUp), + (0x27, ArrowRight), + (0x28, ArrowDown), (0x23, End), (0x24, Home), (0x22, PageDown), @@ -136,6 +161,16 @@ impl ToVKBits for winit::keyboard::NamedKey { } } +macro_rules! map { + ($target:expr, $( ($code:expr, $variant:literal), )+ ) => { + match $target { + $( + $variant => $code, + )+ + _ => 0, + } + }; +} impl ToVKBits for char { fn to_vk_bits(&self) -> i32 { map!( @@ -234,215 +269,7 @@ impl ToVKBits for char { (0xDE, '"'), (0xBF, '/'), (0xBF, '?'), - ) - } -} - -// Chromium dom key binary representation -pub(crate) trait ToDomBits { - fn to_dom_bits(&self) -> i32; -} - -impl ToDomBits for winit::keyboard::NamedKey { - fn to_dom_bits(&self) -> i32 { - use winit::keyboard::NamedKey; - map_enum!( - self, - NamedKey, - (0x00, Hyper), - (0x85, Super), - (0x25, Control), - (0x32, Shift), - (0x40, Alt), - (0x00, Fn), - (0x00, FnLock), - (0x24, Enter), - (0x09, Escape), - (0x16, Backspace), - (0x17, Tab), - (0x41, Space), - (0x42, CapsLock), - (0x43, F1), - (0x44, F2), - (0x45, F3), - (0x46, F4), - (0x47, F5), - (0x48, F6), - (0x49, F7), - (0x4a, F8), - (0x4b, F9), - (0x4c, F10), - (0x5f, F11), - (0x60, F12), - (0x6b, PrintScreen), - (0x4e, ScrollLock), - (0x7f, Pause), - (0x76, Insert), - (0x6e, Home), - (0x70, PageUp), - (0x77, Delete), - (0x73, End), - (0x75, PageDown), - (0x72, ArrowRight), - (0x71, ArrowLeft), - (0x74, ArrowDown), - (0x6f, ArrowUp), - (0x4d, NumLock), - (0x87, ContextMenu), - (0x7c, Power), - (0xbf, F13), - (0xc0, F14), - (0xc1, F15), - (0xc2, F16), - (0xc3, F17), - (0xc4, F18), - (0xc5, F19), - (0xc6, F20), - (0xc7, F21), - (0xc8, F22), - (0xc9, F23), - (0xca, F24), - (0x8e, Open), - (0x92, Help), - (0x8c, Select), - (0x89, Again), - (0x8b, Undo), - (0x91, Cut), - (0x8d, Copy), - (0x8f, Paste), - (0x90, Find), - (0x79, AudioVolumeMute), - (0x7b, AudioVolumeUp), - (0x7a, AudioVolumeDown), - (0x65, KanaMode), - (0x64, Convert), - (0x66, NonConvert), - (0x00, Props), - (0xe9, BrightnessUp), - (0xe8, BrightnessDown), - (0xd7, MediaPlay), - (0xd1, MediaPause), - (0xaf, MediaRecord), - (0xd8, MediaFastForward), - (0xb0, MediaRewind), - (0xab, MediaTrackNext), - (0xad, MediaTrackPrevious), - (0xae, MediaStop), - (0xa9, Eject), - (0xac, MediaPlayPause), - (0xa3, LaunchMail), - (0xe1, BrowserSearch), - (0xb4, BrowserHome), - (0xa6, BrowserBack), - (0xa7, BrowserForward), - (0x88, BrowserStop), - (0xb5, BrowserRefresh), - (0xa4, BrowserFavorites), - (0xf0, MailReply), - (0xf1, MailForward), - (0xef, MailSend), - ) - } -} - -impl ToDomBits for char { - fn to_dom_bits(&self) -> i32 { - map!( - self, - (0x26, 'a'), - (0x38, 'b'), - (0x36, 'c'), - (0x28, 'd'), - (0x1a, 'e'), - (0x29, 'f'), - (0x2a, 'g'), - (0x2b, 'h'), - (0x1f, 'i'), - (0x2c, 'j'), - (0x2d, 'k'), - (0x2e, 'l'), - (0x3a, 'm'), - (0x39, 'n'), - (0x20, 'o'), - (0x21, 'p'), - (0x18, 'q'), - (0x1b, 'r'), - (0x27, 's'), - (0x1c, 't'), - (0x1e, 'u'), - (0x37, 'v'), - (0x19, 'w'), - (0x35, 'x'), - (0x1d, 'y'), - (0x34, 'z'), - (0x26, 'A'), - (0x38, 'B'), - (0x36, 'C'), - (0x28, 'D'), - (0x1a, 'E'), - (0x29, 'F'), - (0x2a, 'G'), - (0x2b, 'H'), - (0x1f, 'I'), - (0x2c, 'J'), - (0x2d, 'K'), - (0x2e, 'L'), - (0x3a, 'M'), - (0x39, 'N'), - (0x20, 'O'), - (0x21, 'P'), - (0x18, 'Q'), - (0x1b, 'R'), - (0x27, 'S'), - (0x1c, 'T'), - (0x1e, 'U'), - (0x37, 'V'), - (0x19, 'W'), - (0x35, 'X'), - (0x1d, 'Y'), - (0x34, 'Z'), - (0x0a, '1'), - (0x0b, '2'), - (0x0c, '3'), - (0x0d, '4'), - (0x0e, '5'), - (0x0f, '6'), - (0x10, '7'), - (0x11, '8'), - (0x12, '9'), - (0x13, '0'), - (0x0a, '!'), - (0x0b, '@'), - (0x0c, '#'), - (0x0d, '$'), - (0x0e, '%'), - (0x0f, '^'), - (0x10, '&'), - (0x11, '*'), - (0x12, '('), - (0x13, ')'), - (0x31, '`'), - (0x31, '~'), - (0x14, '-'), - (0x14, '_'), - (0x15, '='), - (0x15, '+'), - (0x22, '['), - (0x22, '{'), - (0x23, ']'), - (0x23, '}'), - (0x33, '\\'), - (0x33, '|'), - (0x2f, ';'), - (0x2f, ':'), - (0x3b, ','), - (0x3b, '<'), - (0x3c, '.'), - (0x3c, '>'), - (0x30, '\''), - (0x30, '"'), - (0x3d, '/'), - (0x3d, '?'), + (0x20, ' '), ) } } diff --git a/desktop/src/cef/input/state.rs b/desktop/src/cef/input/state.rs new file mode 100644 index 000000000..d3c249cba --- /dev/null +++ b/desktop/src/cef/input/state.rs @@ -0,0 +1,256 @@ +use cef::MouseEvent; +use cef::sys::cef_event_flags_t; +use std::time::Instant; +use winit::dpi::PhysicalPosition; +use winit::event::{ElementState, MouseButton}; +use winit::keyboard::{KeyLocation, ModifiersState}; + +use crate::cef::consts::{MULTICLICK_ALLOWED_TRAVEL, MULTICLICK_TIMEOUT}; + +#[derive(Default)] +pub(crate) struct InputState { + modifiers: ModifiersState, + mouse_position: MousePosition, + mouse_state: MouseState, + mouse_click_tracker: ClickTracker, +} +impl InputState { + pub(crate) fn modifiers_changed(&mut self, modifiers: &ModifiersState) { + self.modifiers = *modifiers; + } + + pub(crate) fn cursor_move(&mut self, position: &PhysicalPosition) -> bool { + let new = position.into(); + if self.mouse_position == new { + return false; + } + self.mouse_position = new; + true + } + + pub(crate) fn mouse_input(&mut self, button: &MouseButton, state: &ElementState) -> ClickCount { + self.mouse_state.update(button, state); + self.mouse_click_tracker.input(button, state, self.mouse_position) + } + + pub(crate) fn cef_modifiers(&self, location: &KeyLocation, is_repeat: bool) -> CefModifiers { + CefModifiers::new(self, location, is_repeat) + } + + pub(crate) fn cef_mouse_modifiers(&self) -> CefModifiers { + self.cef_modifiers(&KeyLocation::Standard, false) + } +} + +impl From for CefModifiers { + fn from(val: InputState) -> Self { + CefModifiers::new(&val, &KeyLocation::Standard, false) + } +} +impl From<&InputState> for MouseEvent { + fn from(val: &InputState) -> Self { + MouseEvent { + x: val.mouse_position.x as i32, + y: val.mouse_position.y as i32, + modifiers: val.cef_mouse_modifiers().into(), + } + } +} +impl From<&mut InputState> for MouseEvent { + fn from(val: &mut InputState) -> Self { + MouseEvent { + x: val.mouse_position.x as i32, + y: val.mouse_position.y as i32, + modifiers: val.cef_mouse_modifiers().into(), + } + } +} + +#[derive(Default, Clone, Copy, Eq, PartialEq)] +pub(crate) struct MousePosition { + x: usize, + y: usize, +} +impl From<&PhysicalPosition> for MousePosition { + fn from(position: &PhysicalPosition) -> Self { + Self { + x: position.x as usize, + y: position.y as usize, + } + } +} + +#[derive(Default, Clone)] +pub(crate) struct MouseState { + left: bool, + right: bool, + middle: bool, +} +impl MouseState { + pub(crate) fn update(&mut self, button: &MouseButton, state: &ElementState) { + match state { + ElementState::Pressed => match button { + MouseButton::Left => self.left = true, + MouseButton::Right => self.right = true, + MouseButton::Middle => self.middle = true, + _ => {} + }, + ElementState::Released => match button { + MouseButton::Left => self.left = false, + MouseButton::Right => self.right = false, + MouseButton::Middle => self.middle = false, + _ => {} + }, + } + } +} + +#[derive(Default)] +struct ClickTracker { + left: Option, + middle: Option, + right: Option, +} +impl ClickTracker { + fn input(&mut self, button: &MouseButton, state: &ElementState, position: MousePosition) -> ClickCount { + let record = match button { + MouseButton::Left => &mut self.left, + MouseButton::Right => &mut self.right, + MouseButton::Middle => &mut self.middle, + _ => return ClickCount::Single, + }; + + let Some(record) = record else { + *record = Some(ClickRecord { position, ..Default::default() }); + return ClickCount::Single; + }; + + let prev_time = record.time; + let prev_position = record.position; + + let now = Instant::now(); + record.time = now; + record.position = position; + + match state { + ElementState::Pressed if record.down_count == ClickCount::Double => { + *record = ClickRecord { + down_count: ClickCount::Single, + ..*record + }; + return ClickCount::Single; + } + ElementState::Released if record.up_count == ClickCount::Double => { + *record = ClickRecord { + up_count: ClickCount::Single, + ..*record + }; + return ClickCount::Single; + } + _ => {} + } + + let dx = position.x.abs_diff(prev_position.x); + let dy = position.y.abs_diff(prev_position.y); + let within_dist = dx <= MULTICLICK_ALLOWED_TRAVEL && dy <= MULTICLICK_ALLOWED_TRAVEL; + let within_time = now.saturating_duration_since(prev_time) <= MULTICLICK_TIMEOUT; + + let count = if within_time && within_dist { ClickCount::Double } else { ClickCount::Single }; + + *record = match state { + ElementState::Pressed => ClickRecord { down_count: count, ..*record }, + ElementState::Released => ClickRecord { up_count: count, ..*record }, + }; + count + } +} + +#[derive(Clone, Copy, PartialEq, Default)] +pub(crate) enum ClickCount { + #[default] + Single, + Double, +} +impl From for i32 { + fn from(count: ClickCount) -> i32 { + match count { + ClickCount::Single => 1, + ClickCount::Double => 2, + } + } +} + +#[derive(Clone, Copy)] +struct ClickRecord { + time: Instant, + position: MousePosition, + down_count: ClickCount, + up_count: ClickCount, +} + +impl Default for ClickRecord { + fn default() -> Self { + Self { + time: Instant::now(), + position: Default::default(), + down_count: Default::default(), + up_count: Default::default(), + } + } +} + +pub(crate) struct CefModifiers(cef_event_flags_t); +impl CefModifiers { + fn new(input_state: &InputState, location: &KeyLocation, is_repeat: bool) -> Self { + let mut inner = cef_event_flags_t::EVENTFLAG_NONE; + + if input_state.modifiers.shift_key() { + inner |= cef_event_flags_t::EVENTFLAG_SHIFT_DOWN; + } + if input_state.modifiers.control_key() { + inner |= cef_event_flags_t::EVENTFLAG_CONTROL_DOWN; + } + if input_state.modifiers.alt_key() { + inner |= cef_event_flags_t::EVENTFLAG_ALT_DOWN; + } + if input_state.modifiers.meta_key() { + inner |= cef_event_flags_t::EVENTFLAG_COMMAND_DOWN; + } + + if input_state.mouse_state.left { + inner |= cef_event_flags_t::EVENTFLAG_LEFT_MOUSE_BUTTON; + } + if input_state.mouse_state.right { + inner |= cef_event_flags_t::EVENTFLAG_RIGHT_MOUSE_BUTTON; + } + if input_state.mouse_state.middle { + inner |= cef_event_flags_t::EVENTFLAG_MIDDLE_MOUSE_BUTTON; + } + + if is_repeat { + inner |= cef_event_flags_t::EVENTFLAG_IS_REPEAT; + } + + inner |= match location { + KeyLocation::Left => cef_event_flags_t::EVENTFLAG_IS_LEFT, + KeyLocation::Right => cef_event_flags_t::EVENTFLAG_IS_RIGHT, + KeyLocation::Numpad => cef_event_flags_t::EVENTFLAG_IS_KEY_PAD, + KeyLocation::Standard => cef_event_flags_t::EVENTFLAG_NONE, + }; + + Self(inner) + } + + pub(super) const PINCH_MODIFIERS: Self = Self(cef_event_flags_t( + cef_event_flags_t::EVENTFLAG_CONTROL_DOWN.0 | cef_event_flags_t::EVENTFLAG_PRECISION_SCROLLING_DELTA.0, + )); +} + +impl From for u32 { + fn from(val: CefModifiers) -> Self { + #[cfg(not(target_os = "windows"))] + return val.0.0; + #[cfg(target_os = "windows")] + return val.0.0 as u32; + } +} diff --git a/desktop/src/cef/internal.rs b/desktop/src/cef/internal.rs index 03a520e66..a71e3089c 100644 --- a/desktop/src/cef/internal.rs +++ b/desktop/src/cef/internal.rs @@ -1,13 +1,24 @@ mod browser_process_app; mod browser_process_client; mod browser_process_handler; -mod browser_process_life_span_handler; -mod render_handler; + mod render_process_app; mod render_process_handler; mod render_process_v8_handler; +mod context_menu_handler; +mod display_handler; +mod life_span_handler; +mod load_handler; +mod resource_handler; +mod scheme_handler_factory; + +pub(super) mod render_handler; + +#[cfg(not(target_os = "macos"))] +pub(super) mod task; + pub(super) use browser_process_app::BrowserProcessAppImpl; pub(super) use browser_process_client::BrowserProcessClientImpl; -pub(super) use render_handler::RenderHandlerImpl; pub(super) use render_process_app::RenderProcessAppImpl; +pub(super) use scheme_handler_factory::SchemeHandlerFactoryImpl; diff --git a/desktop/src/cef/internal/browser_process_app.rs b/desktop/src/cef/internal/browser_process_app.rs index 82999c587..de75b5bb8 100644 --- a/desktop/src/cef/internal/browser_process_app.rs +++ b/desktop/src/cef/internal/browser_process_app.rs @@ -1,20 +1,19 @@ +#[cfg(target_os = "linux")] use std::env; use cef::rc::{Rc, RcImpl}; use cef::sys::{_cef_app_t, cef_base_ref_counted_t}; use cef::{BrowserProcessHandler, CefString, ImplApp, ImplCommandLine, SchemeRegistrar, WrapApp}; -use crate::cef::CefEventHandler; - -use crate::cef::scheme_handler::GraphiteSchemeHandlerFactory; - use super::browser_process_handler::BrowserProcessHandlerImpl; +use super::scheme_handler_factory::SchemeHandlerFactoryImpl; +use crate::cef::CefEventHandler; pub(crate) struct BrowserProcessAppImpl { object: *mut RcImpl<_cef_app_t, Self>, event_handler: H, } -impl BrowserProcessAppImpl { +impl BrowserProcessAppImpl { pub(crate) fn new(event_handler: H) -> Self { Self { object: std::ptr::null_mut(), @@ -23,23 +22,49 @@ impl BrowserProcessAppImpl { } } -impl ImplApp for BrowserProcessAppImpl { +impl ImplApp for BrowserProcessAppImpl { fn browser_process_handler(&self) -> Option { - Some(BrowserProcessHandler::new(BrowserProcessHandlerImpl::new(self.event_handler.clone()))) + Some(BrowserProcessHandler::new(BrowserProcessHandlerImpl::new(self.event_handler.duplicate()))) } fn on_register_custom_schemes(&self, registrar: Option<&mut SchemeRegistrar>) { - GraphiteSchemeHandlerFactory::register_schemes(registrar); + SchemeHandlerFactoryImpl::::register_schemes(registrar); } fn on_before_command_line_processing(&self, _process_type: Option<&cef::CefString>, command_line: Option<&mut cef::CommandLine>) { if let Some(cmd) = command_line { - // Disable GPU acceleration, because it is not supported for Offscreen Rendering and can cause crashes. - cmd.append_switch(Some(&CefString::from("disable-gpu"))); - cmd.append_switch(Some(&CefString::from("disable-gpu-compositing"))); + cmd.append_switch_with_value(Some(&CefString::from("renderer-process-limit")), Some(&CefString::from("1"))); + cmd.append_switch_with_value(Some(&CefString::from("disk-cache-size")), Some(&CefString::from("0"))); + cmd.append_switch(Some(&CefString::from("incognito"))); + cmd.append_switch(Some(&CefString::from("no-first-run"))); + cmd.append_switch(Some(&CefString::from("disable-file-system"))); + cmd.append_switch(Some(&CefString::from("disable-local-storage"))); + cmd.append_switch(Some(&CefString::from("disable-background-networking"))); + cmd.append_switch(Some(&CefString::from("disable-audio-input"))); + cmd.append_switch(Some(&CefString::from("disable-audio-output"))); + + #[cfg(not(feature = "accelerated_paint"))] + { + // Disable GPU acceleration when accelerated_paint feature is not enabled + cmd.append_switch(Some(&CefString::from("disable-gpu"))); + cmd.append_switch(Some(&CefString::from("disable-gpu-compositing"))); + } + + #[cfg(feature = "accelerated_paint")] + { + // Enable GPU acceleration switches for better performance + cmd.append_switch(Some(&CefString::from("enable-gpu-rasterization"))); + cmd.append_switch(Some(&CefString::from("enable-accelerated-2d-canvas"))); + } + + #[cfg(all(feature = "accelerated_paint", target_os = "linux"))] + { + // Use Vulkan for accelerated painting + cmd.append_switch_with_value(Some(&CefString::from("use-angle")), Some(&CefString::from("vulkan"))); + } // Tell CEF to use Wayland if available - #[cfg(not(any(target_os = "macos", target_os = "windows")))] + #[cfg(target_os = "linux")] { let use_wayland = env::var("WAYLAND_DISPLAY") .ok() @@ -51,6 +76,20 @@ impl ImplApp for BrowserProcessAppImpl { cmd.append_switch_with_value(Some(&CefString::from("ozone-platform")), Some(&CefString::from("wayland"))); } } + + #[cfg(target_os = "macos")] + { + // Hide user prompt asking for keychain access + cmd.append_switch(Some(&CefString::from("use-mock-keychain"))); + } + + // Enable browser debugging via environment variable + if let Some(env) = std::env::var("GRAPHITE_BROWSER_DEBUG_PORT").ok() + && let Some(port) = env.parse::().ok() + { + cmd.append_switch_with_value(Some(&CefString::from("remote-debugging-port")), Some(&CefString::from(port.to_string().as_str()))); + cmd.append_switch_with_value(Some(&CefString::from("remote-allow-origins")), Some(&CefString::from("*"))); + } } } @@ -59,7 +98,7 @@ impl ImplApp for BrowserProcessAppImpl { } } -impl Clone for BrowserProcessAppImpl { +impl Clone for BrowserProcessAppImpl { fn clone(&self) -> Self { unsafe { let rc_impl = &mut *self.object; @@ -67,7 +106,7 @@ impl Clone for BrowserProcessAppImpl { } Self { object: self.object, - event_handler: self.event_handler.clone(), + event_handler: self.event_handler.duplicate(), } } } @@ -79,7 +118,7 @@ impl Rc for BrowserProcessAppImpl { } } } -impl WrapApp for BrowserProcessAppImpl { +impl WrapApp for BrowserProcessAppImpl { fn wrap_rc(&mut self, object: *mut RcImpl<_cef_app_t, Self>) { self.object = object; } diff --git a/desktop/src/cef/internal/browser_process_client.rs b/desktop/src/cef/internal/browser_process_client.rs index d5bd70edf..5c7d1084c 100644 --- a/desktop/src/cef/internal/browser_process_client.rs +++ b/desktop/src/cef/internal/browser_process_client.rs @@ -1,23 +1,31 @@ use cef::rc::{Rc, RcImpl}; use cef::sys::{_cef_client_t, cef_base_ref_counted_t}; -use cef::{ImplClient, LifeSpanHandler, RenderHandler, WrapClient}; +use cef::{ContextMenuHandler, DisplayHandler, ImplClient, LifeSpanHandler, LoadHandler, RenderHandler, WrapClient}; use crate::cef::CefEventHandler; use crate::cef::ipc::{MessageType, UnpackMessage, UnpackedMessage}; -use super::browser_process_life_span_handler::BrowserProcessLifeSpanHandlerImpl; +use super::context_menu_handler::ContextMenuHandlerImpl; +use super::display_handler::DisplayHandlerImpl; +use super::life_span_handler::LifeSpanHandlerImpl; +use super::load_handler::LoadHandlerImpl; +use super::render_handler::RenderHandlerImpl; pub(crate) struct BrowserProcessClientImpl { object: *mut RcImpl<_cef_client_t, Self>, - render_handler: RenderHandler, event_handler: H, + load_handler: LoadHandler, + render_handler: RenderHandler, + display_handler: DisplayHandler, } impl BrowserProcessClientImpl { - pub(crate) fn new(render_handler: RenderHandler, event_handler: H) -> Self { + pub(crate) fn new(event_handler: &H) -> Self { Self { object: std::ptr::null_mut(), - render_handler, - event_handler, + event_handler: event_handler.duplicate(), + load_handler: LoadHandler::new(LoadHandlerImpl::new(event_handler.duplicate())), + render_handler: RenderHandler::new(RenderHandlerImpl::new(event_handler.duplicate())), + display_handler: DisplayHandler::new(DisplayHandlerImpl::new(event_handler.duplicate())), } } } @@ -29,9 +37,13 @@ impl ImplClient for BrowserProcessClientImpl { _frame: Option<&mut cef::Frame>, _source_process: cef::ProcessId, message: Option<&mut cef::ProcessMessage>, - ) -> ::std::os::raw::c_int { + ) -> std::ffi::c_int { let unpacked_message = unsafe { message.and_then(|m| m.unpack()) }; match unpacked_message { + Some(UnpackedMessage { + message_type: MessageType::Initialized, + data: _, + }) => self.event_handler.initialized_web_communication(), Some(UnpackedMessage { message_type: MessageType::SendToNative, data, @@ -45,12 +57,24 @@ impl ImplClient for BrowserProcessClientImpl { 1 } + fn load_handler(&self) -> Option { + Some(self.load_handler.clone()) + } + fn render_handler(&self) -> Option { Some(self.render_handler.clone()) } fn life_span_handler(&self) -> Option { - Some(LifeSpanHandler::new(BrowserProcessLifeSpanHandlerImpl::new())) + Some(LifeSpanHandler::new(LifeSpanHandlerImpl::new())) + } + + fn display_handler(&self) -> Option { + Some(self.display_handler.clone()) + } + + fn context_menu_handler(&self) -> Option { + Some(ContextMenuHandler::new(ContextMenuHandlerImpl::new())) } fn get_raw(&self) -> *mut _cef_client_t { @@ -66,8 +90,10 @@ impl Clone for BrowserProcessClientImpl { } Self { object: self.object, + event_handler: self.event_handler.duplicate(), + load_handler: self.load_handler.clone(), render_handler: self.render_handler.clone(), - event_handler: self.event_handler.clone(), + display_handler: self.display_handler.clone(), } } } diff --git a/desktop/src/cef/internal/browser_process_handler.rs b/desktop/src/cef/internal/browser_process_handler.rs index 4edacc5c1..3560483ba 100644 --- a/desktop/src/cef/internal/browser_process_handler.rs +++ b/desktop/src/cef/internal/browser_process_handler.rs @@ -2,10 +2,9 @@ use std::time::{Duration, Instant}; use cef::rc::{Rc, RcImpl}; use cef::sys::{_cef_browser_process_handler_t, cef_base_ref_counted_t, cef_browser_process_handler_t}; -use cef::{CefString, ImplBrowserProcessHandler, SchemeHandlerFactory, WrapBrowserProcessHandler}; +use cef::{CefString, ImplBrowserProcessHandler, WrapBrowserProcessHandler}; use crate::cef::CefEventHandler; -use crate::cef::scheme_handler::{GRAPHITE_SCHEME, GraphiteSchemeHandlerFactory}; pub(crate) struct BrowserProcessHandlerImpl { object: *mut RcImpl, @@ -20,16 +19,12 @@ impl BrowserProcessHandlerImpl { } } -impl ImplBrowserProcessHandler for BrowserProcessHandlerImpl { - fn on_context_initialized(&self) { - cef::register_scheme_handler_factory(Some(&CefString::from(GRAPHITE_SCHEME)), None, Some(&mut SchemeHandlerFactory::new(GraphiteSchemeHandlerFactory::new()))); - } - +impl ImplBrowserProcessHandler for BrowserProcessHandlerImpl { fn on_schedule_message_pump_work(&self, delay_ms: i64) { self.event_handler.schedule_cef_message_loop_work(Instant::now() + Duration::from_millis(delay_ms as u64)); } - fn on_already_running_app_relaunch(&self, _command_line: Option<&mut cef::CommandLine>, _current_directory: Option<&CefString>) -> ::std::os::raw::c_int { + fn on_already_running_app_relaunch(&self, _command_line: Option<&mut cef::CommandLine>, _current_directory: Option<&CefString>) -> std::ffi::c_int { 1 // Return 1 to prevent default behavior of opening a empty browser window } @@ -38,7 +33,7 @@ impl ImplBrowserProcessHandler for BrowserProcessHan } } -impl Clone for BrowserProcessHandlerImpl { +impl Clone for BrowserProcessHandlerImpl { fn clone(&self) -> Self { unsafe { let rc_impl = &mut *self.object; @@ -46,7 +41,7 @@ impl Clone for BrowserProcessHandlerImpl { } Self { object: self.object, - event_handler: self.event_handler.clone(), + event_handler: self.event_handler.duplicate(), } } } @@ -58,7 +53,7 @@ impl Rc for BrowserProcessHandlerImpl { } } } -impl WrapBrowserProcessHandler for BrowserProcessHandlerImpl { +impl WrapBrowserProcessHandler for BrowserProcessHandlerImpl { fn wrap_rc(&mut self, object: *mut RcImpl<_cef_browser_process_handler_t, Self>) { self.object = object; } diff --git a/desktop/src/cef/internal/context_menu_handler.rs b/desktop/src/cef/internal/context_menu_handler.rs new file mode 100644 index 000000000..e49cfd2f3 --- /dev/null +++ b/desktop/src/cef/internal/context_menu_handler.rs @@ -0,0 +1,66 @@ +use cef::rc::{Rc, RcImpl}; +use cef::sys::{_cef_context_menu_handler_t, cef_base_ref_counted_t}; +use cef::{ImplContextMenuHandler, WrapContextMenuHandler}; + +pub(crate) struct ContextMenuHandlerImpl { + object: *mut RcImpl<_cef_context_menu_handler_t, Self>, +} +impl ContextMenuHandlerImpl { + pub(crate) fn new() -> Self { + Self { object: std::ptr::null_mut() } + } +} + +impl ImplContextMenuHandler for ContextMenuHandlerImpl { + fn run_context_menu( + &self, + _browser: Option<&mut cef::Browser>, + _frame: Option<&mut cef::Frame>, + _params: Option<&mut cef::ContextMenuParams>, + _model: Option<&mut cef::MenuModel>, + _callback: Option<&mut cef::RunContextMenuCallback>, + ) -> std::ffi::c_int { + // Prevent context menu + 1 + } + + fn run_quick_menu( + &self, + _browser: Option<&mut cef::Browser>, + _frame: Option<&mut cef::Frame>, + _location: Option<&cef::Point>, + _size: Option<&cef::Size>, + _edit_state_flags: cef::QuickMenuEditStateFlags, + _callback: Option<&mut cef::RunQuickMenuCallback>, + ) -> std::ffi::c_int { + // Prevent quick menu + 1 + } + + fn get_raw(&self) -> *mut _cef_context_menu_handler_t { + self.object.cast() + } +} + +impl Clone for ContextMenuHandlerImpl { + fn clone(&self) -> Self { + unsafe { + let rc_impl = &mut *self.object; + rc_impl.interface.add_ref(); + } + Self { object: self.object } + } +} +impl Rc for ContextMenuHandlerImpl { + fn as_base(&self) -> &cef_base_ref_counted_t { + unsafe { + let base = &*self.object; + std::mem::transmute(&base.cef_object) + } + } +} +impl WrapContextMenuHandler for ContextMenuHandlerImpl { + fn wrap_rc(&mut self, object: *mut RcImpl<_cef_context_menu_handler_t, Self>) { + self.object = object; + } +} diff --git a/desktop/src/cef/internal/display_handler.rs b/desktop/src/cef/internal/display_handler.rs new file mode 100644 index 000000000..d1263e854 --- /dev/null +++ b/desktop/src/cef/internal/display_handler.rs @@ -0,0 +1,147 @@ +use cef::rc::{Rc, RcImpl}; +use cef::sys::{_cef_display_handler_t, cef_base_ref_counted_t, cef_cursor_type_t::*, cef_log_severity_t::*}; +use cef::{CefString, ImplDisplayHandler, Point, Size, WrapDisplayHandler}; +use winit::cursor::CursorIcon; + +use crate::cef::CefEventHandler; + +pub(crate) struct DisplayHandlerImpl { + object: *mut RcImpl<_cef_display_handler_t, Self>, + event_handler: H, +} + +impl DisplayHandlerImpl { + pub fn new(event_handler: H) -> Self { + Self { + object: std::ptr::null_mut(), + event_handler, + } + } +} + +#[cfg(not(target_os = "macos"))] +type CefCursorHandle = cef::CursorHandle; +#[cfg(target_os = "macos")] +type CefCursorHandle = *mut u8; + +impl ImplDisplayHandler for DisplayHandlerImpl { + fn on_cursor_change(&self, _browser: Option<&mut cef::Browser>, _cursor: CefCursorHandle, cursor_type: cef::CursorType, custom_cursor_info: Option<&cef::CursorInfo>) -> std::ffi::c_int { + if let Some(custom_cursor_info) = custom_cursor_info { + let Size { width, height } = custom_cursor_info.size; + let Point { x: hotspot_x, y: hotspot_y } = custom_cursor_info.hotspot; + let buffer_size = (width * height * 4) as usize; + let buffer_ptr = custom_cursor_info.buffer as *const u8; + + if !buffer_ptr.is_null() && buffer_ptr.align_offset(std::mem::align_of::()) == 0 { + let buffer = unsafe { std::slice::from_raw_parts(buffer_ptr, buffer_size) }.to_vec(); + let cursor = winit::cursor::CustomCursorSource::from_rgba(buffer, width as u16, height as u16, hotspot_x as u16, hotspot_y as u16).unwrap(); + self.event_handler.cursor_change(cursor.into()); + return 1; // We handled the cursor change. + } + } + + let cursor = match cursor_type.into() { + CT_POINTER => CursorIcon::Default, + CT_CROSS => CursorIcon::Crosshair, + CT_HAND => CursorIcon::Pointer, + CT_IBEAM => CursorIcon::Text, + CT_WAIT => CursorIcon::Wait, + CT_HELP => CursorIcon::Help, + CT_EASTRESIZE => CursorIcon::EResize, + CT_NORTHRESIZE => CursorIcon::NResize, + CT_NORTHEASTRESIZE => CursorIcon::NeResize, + CT_NORTHWESTRESIZE => CursorIcon::NwResize, + CT_SOUTHRESIZE => CursorIcon::SResize, + CT_SOUTHEASTRESIZE => CursorIcon::SeResize, + CT_SOUTHWESTRESIZE => CursorIcon::SwResize, + CT_WESTRESIZE => CursorIcon::WResize, + CT_NORTHSOUTHRESIZE => CursorIcon::NsResize, + CT_EASTWESTRESIZE => CursorIcon::EwResize, + CT_NORTHEASTSOUTHWESTRESIZE => CursorIcon::NeswResize, + CT_NORTHWESTSOUTHEASTRESIZE => CursorIcon::NwseResize, + CT_COLUMNRESIZE => CursorIcon::ColResize, + CT_ROWRESIZE => CursorIcon::RowResize, + CT_MIDDLEPANNING => CursorIcon::AllScroll, + CT_EASTPANNING => CursorIcon::AllScroll, + CT_NORTHPANNING => CursorIcon::AllScroll, + CT_NORTHEASTPANNING => CursorIcon::AllScroll, + CT_NORTHWESTPANNING => CursorIcon::AllScroll, + CT_SOUTHPANNING => CursorIcon::AllScroll, + CT_SOUTHEASTPANNING => CursorIcon::AllScroll, + CT_SOUTHWESTPANNING => CursorIcon::AllScroll, + CT_WESTPANNING => CursorIcon::AllScroll, + CT_MOVE => CursorIcon::Move, + CT_VERTICALTEXT => CursorIcon::VerticalText, + CT_CELL => CursorIcon::Cell, + CT_CONTEXTMENU => CursorIcon::ContextMenu, + CT_ALIAS => CursorIcon::Alias, + CT_PROGRESS => CursorIcon::Progress, + CT_NODROP => CursorIcon::NoDrop, + CT_COPY => CursorIcon::Copy, + CT_NONE => CursorIcon::Default, + CT_NOTALLOWED => CursorIcon::NotAllowed, + CT_ZOOMIN => CursorIcon::ZoomIn, + CT_ZOOMOUT => CursorIcon::ZoomOut, + CT_GRAB => CursorIcon::Grab, + CT_GRABBING => CursorIcon::Grabbing, + CT_MIDDLE_PANNING_VERTICAL => CursorIcon::AllScroll, + CT_MIDDLE_PANNING_HORIZONTAL => CursorIcon::AllScroll, + CT_DND_NONE => CursorIcon::Default, + CT_DND_MOVE => CursorIcon::Move, + CT_DND_COPY => CursorIcon::Copy, + CT_DND_LINK => CursorIcon::Alias, + CT_NUM_VALUES => CursorIcon::Default, + _ => CursorIcon::Default, + }; + + self.event_handler.cursor_change(cursor.into()); + + 1 // We handled the cursor change. + } + + fn on_console_message(&self, _browser: Option<&mut cef::Browser>, level: cef::LogSeverity, message: Option<&CefString>, source: Option<&CefString>, line: std::ffi::c_int) -> std::ffi::c_int { + let message = message.map(|m| m.to_string()).unwrap_or_default(); + let source = source.map(|s| s.to_string()).unwrap_or_default(); + let line = line as i64; + let browser_source = format!("{source}:{line}"); + static BROWSER: &str = "browser"; + match level.as_ref() { + LOGSEVERITY_FATAL | LOGSEVERITY_ERROR => tracing::error!(target: BROWSER, "{browser_source} {message}"), + LOGSEVERITY_WARNING => tracing::warn!(target: BROWSER, "{browser_source} {message}"), + LOGSEVERITY_INFO => tracing::info!(target: BROWSER, "{browser_source} {message}"), + LOGSEVERITY_DEFAULT | LOGSEVERITY_VERBOSE => tracing::debug!(target: BROWSER, "{browser_source} {message}"), + _ => tracing::trace!(target: BROWSER, "{browser_source} {message}"), + } + 0 + } + + fn get_raw(&self) -> *mut _cef_display_handler_t { + self.object.cast() + } +} + +impl Clone for DisplayHandlerImpl { + fn clone(&self) -> Self { + unsafe { + let rc_impl = &mut *self.object; + rc_impl.interface.add_ref(); + } + Self { + object: self.object, + event_handler: self.event_handler.duplicate(), + } + } +} +impl Rc for DisplayHandlerImpl { + fn as_base(&self) -> &cef_base_ref_counted_t { + unsafe { + let base = &*self.object; + std::mem::transmute(&base.cef_object) + } + } +} +impl WrapDisplayHandler for DisplayHandlerImpl { + fn wrap_rc(&mut self, object: *mut RcImpl<_cef_display_handler_t, Self>) { + self.object = object; + } +} diff --git a/desktop/src/cef/internal/browser_process_life_span_handler.rs b/desktop/src/cef/internal/life_span_handler.rs similarity index 71% rename from desktop/src/cef/internal/browser_process_life_span_handler.rs rename to desktop/src/cef/internal/life_span_handler.rs index 9d4707432..4a501cc0f 100644 --- a/desktop/src/cef/internal/browser_process_life_span_handler.rs +++ b/desktop/src/cef/internal/life_span_handler.rs @@ -2,32 +2,32 @@ use cef::rc::{Rc, RcImpl}; use cef::sys::{_cef_life_span_handler_t, cef_base_ref_counted_t}; use cef::{ImplLifeSpanHandler, WrapLifeSpanHandler}; -pub(crate) struct BrowserProcessLifeSpanHandlerImpl { +pub(crate) struct LifeSpanHandlerImpl { object: *mut RcImpl<_cef_life_span_handler_t, Self>, } -impl BrowserProcessLifeSpanHandlerImpl { +impl LifeSpanHandlerImpl { pub(crate) fn new() -> Self { Self { object: std::ptr::null_mut() } } } -impl ImplLifeSpanHandler for BrowserProcessLifeSpanHandlerImpl { +impl ImplLifeSpanHandler for LifeSpanHandlerImpl { fn on_before_popup( &self, _browser: Option<&mut cef::Browser>, _frame: Option<&mut cef::Frame>, - _popup_id: ::std::os::raw::c_int, + _popup_id: std::ffi::c_int, target_url: Option<&cef::CefString>, _target_frame_name: Option<&cef::CefString>, _target_disposition: cef::WindowOpenDisposition, - _user_gesture: ::std::os::raw::c_int, + _user_gesture: std::ffi::c_int, _popup_features: Option<&cef::PopupFeatures>, _window_info: Option<&mut cef::WindowInfo>, - _client: Option<&mut Option>, + _client: Option<&mut Option>, _settings: Option<&mut cef::BrowserSettings>, _extra_info: Option<&mut Option>, - _no_javascript_access: Option<&mut ::std::os::raw::c_int>, - ) -> ::std::os::raw::c_int { + _no_javascript_access: Option<&mut std::ffi::c_int>, + ) -> std::ffi::c_int { let target = target_url.map(|url| url.to_string()).unwrap_or("unknown".to_string()); tracing::error!("Browser tried to open a popup at URL: {}", target); @@ -40,7 +40,7 @@ impl ImplLifeSpanHandler for BrowserProcessLifeSpanHandlerImpl { } } -impl Clone for BrowserProcessLifeSpanHandlerImpl { +impl Clone for LifeSpanHandlerImpl { fn clone(&self) -> Self { unsafe { let rc_impl = &mut *self.object; @@ -49,7 +49,7 @@ impl Clone for BrowserProcessLifeSpanHandlerImpl { Self { object: self.object } } } -impl Rc for BrowserProcessLifeSpanHandlerImpl { +impl Rc for LifeSpanHandlerImpl { fn as_base(&self) -> &cef_base_ref_counted_t { unsafe { let base = &*self.object; @@ -57,7 +57,7 @@ impl Rc for BrowserProcessLifeSpanHandlerImpl { } } } -impl WrapLifeSpanHandler for BrowserProcessLifeSpanHandlerImpl { +impl WrapLifeSpanHandler for LifeSpanHandlerImpl { fn wrap_rc(&mut self, object: *mut RcImpl<_cef_life_span_handler_t, Self>) { self.object = object; } diff --git a/desktop/src/cef/internal/load_handler.rs b/desktop/src/cef/internal/load_handler.rs new file mode 100644 index 000000000..c23352aef --- /dev/null +++ b/desktop/src/cef/internal/load_handler.rs @@ -0,0 +1,60 @@ +use cef::rc::{Rc, RcImpl}; +use cef::sys::{_cef_load_handler_t, cef_base_ref_counted_t, cef_load_handler_t}; +use cef::{ImplBrowser, ImplBrowserHost, ImplLoadHandler, WrapLoadHandler}; + +use crate::cef::CefEventHandler; + +pub(crate) struct LoadHandlerImpl { + object: *mut RcImpl, + event_handler: H, +} +impl LoadHandlerImpl { + pub(crate) fn new(event_handler: H) -> Self { + Self { + object: std::ptr::null_mut(), + event_handler, + } + } +} + +impl ImplLoadHandler for LoadHandlerImpl { + fn on_loading_state_change(&self, browser: Option<&mut cef::Browser>, is_loading: std::ffi::c_int, _can_go_back: std::ffi::c_int, _can_go_forward: std::ffi::c_int) { + let view_info = self.event_handler.view_info(); + + if let Some(browser) = browser + && is_loading == 0 + { + browser.host().unwrap().set_zoom_level(view_info.zoom()); + } + } + + fn get_raw(&self) -> *mut _cef_load_handler_t { + self.object.cast() + } +} + +impl Clone for LoadHandlerImpl { + fn clone(&self) -> Self { + unsafe { + let rc_impl = &mut *self.object; + rc_impl.interface.add_ref(); + } + Self { + object: self.object, + event_handler: self.event_handler.duplicate(), + } + } +} +impl Rc for LoadHandlerImpl { + fn as_base(&self) -> &cef_base_ref_counted_t { + unsafe { + let base = &*self.object; + std::mem::transmute(&base.cef_object) + } + } +} +impl WrapLoadHandler for LoadHandlerImpl { + fn wrap_rc(&mut self, object: *mut RcImpl<_cef_load_handler_t, Self>) { + self.object = object; + } +} diff --git a/desktop/src/cef/internal/render_handler.rs b/desktop/src/cef/internal/render_handler.rs index 21d818a09..dc2971807 100644 --- a/desktop/src/cef/internal/render_handler.rs +++ b/desktop/src/cef/internal/render_handler.rs @@ -17,29 +17,21 @@ impl RenderHandlerImpl { } } } + impl ImplRenderHandler for RenderHandlerImpl { fn view_rect(&self, _browser: Option<&mut Browser>, rect: Option<&mut Rect>) { if let Some(rect) = rect { - let view = self.event_handler.window_size(); + let view_info = self.event_handler.view_info(); *rect = Rect { x: 0, y: 0, - width: view.width as i32, - height: view.height as i32, + width: view_info.width() as i32, + height: view_info.height() as i32, }; } } - fn on_paint( - &self, - _browser: Option<&mut Browser>, - _type_: PaintElementType, - _dirty_rect_count: usize, - _dirty_rects: Option<&Rect>, - buffer: *const u8, - width: ::std::os::raw::c_int, - height: ::std::os::raw::c_int, - ) { + fn on_paint(&self, _browser: Option<&mut Browser>, _type_: PaintElementType, _dirty_rects: Option<&[Rect]>, buffer: *const u8, width: std::ffi::c_int, height: std::ffi::c_int) { let buffer_size = (width * height * 4) as usize; let buffer_slice = unsafe { std::slice::from_raw_parts(buffer, buffer_size) }; let frame_buffer = FrameBufferRef::new(buffer_slice, width as usize, height as usize).expect("Failed to create frame buffer"); @@ -47,6 +39,23 @@ impl ImplRenderHandler for RenderHandlerImpl { self.event_handler.draw(frame_buffer) } + #[cfg(feature = "accelerated_paint")] + fn on_accelerated_paint(&self, _browser: Option<&mut Browser>, type_: PaintElementType, _dirty_rects: Option<&[Rect]>, info: Option<&cef::AcceleratedPaintInfo>) { + use cef::osr_texture_import::SharedTextureHandle; + + if type_ != PaintElementType::default() { + return; + } + + let shared_handle = SharedTextureHandle::new(info.unwrap()); + if let SharedTextureHandle::Unsupported = shared_handle { + tracing::error!("Platform does not support accelerated painting"); + return; + } + + self.event_handler.draw_gpu(shared_handle); + } + fn get_raw(&self) -> *mut _cef_render_handler_t { self.object.cast() } @@ -60,7 +69,7 @@ impl Clone for RenderHandlerImpl { } Self { object: self.object, - event_handler: self.event_handler.clone(), + event_handler: self.event_handler.duplicate(), } } } diff --git a/desktop/src/cef/internal/render_process_app.rs b/desktop/src/cef/internal/render_process_app.rs index d9e66bafb..300690d77 100644 --- a/desktop/src/cef/internal/render_process_app.rs +++ b/desktop/src/cef/internal/render_process_app.rs @@ -3,13 +3,14 @@ use cef::sys::{_cef_app_t, cef_base_ref_counted_t}; use cef::{App, ImplApp, RenderProcessHandler, SchemeRegistrar, WrapApp}; use super::render_process_handler::RenderProcessHandlerImpl; -use crate::cef::scheme_handler::GraphiteSchemeHandlerFactory; +use super::scheme_handler_factory::SchemeHandlerFactoryImpl; +use crate::cef::CefEventHandler; -pub(crate) struct RenderProcessAppImpl { +pub(crate) struct RenderProcessAppImpl { object: *mut RcImpl<_cef_app_t, Self>, render_process_handler: RenderProcessHandler, } -impl RenderProcessAppImpl { +impl RenderProcessAppImpl { pub(crate) fn app() -> App { App::new(Self { object: std::ptr::null_mut(), @@ -18,9 +19,9 @@ impl RenderProcessAppImpl { } } -impl ImplApp for RenderProcessAppImpl { +impl ImplApp for RenderProcessAppImpl { fn on_register_custom_schemes(&self, registrar: Option<&mut SchemeRegistrar>) { - GraphiteSchemeHandlerFactory::register_schemes(registrar); + SchemeHandlerFactoryImpl::::register_schemes(registrar); } fn render_process_handler(&self) -> Option { @@ -32,7 +33,7 @@ impl ImplApp for RenderProcessAppImpl { } } -impl Clone for RenderProcessAppImpl { +impl Clone for RenderProcessAppImpl { fn clone(&self) -> Self { unsafe { let rc_impl = &mut *self.object; @@ -44,7 +45,7 @@ impl Clone for RenderProcessAppImpl { } } } -impl Rc for RenderProcessAppImpl { +impl Rc for RenderProcessAppImpl { fn as_base(&self) -> &cef_base_ref_counted_t { unsafe { let base = &*self.object; @@ -52,7 +53,7 @@ impl Rc for RenderProcessAppImpl { } } } -impl WrapApp for RenderProcessAppImpl { +impl WrapApp for RenderProcessAppImpl { fn wrap_rc(&mut self, object: *mut RcImpl<_cef_app_t, Self>) { self.object = object; } diff --git a/desktop/src/cef/internal/render_process_handler.rs b/desktop/src/cef/internal/render_process_handler.rs index 62917a8b8..45ce66cf9 100644 --- a/desktop/src/cef/internal/render_process_handler.rs +++ b/desktop/src/cef/internal/render_process_handler.rs @@ -4,7 +4,7 @@ use cef::{CefString, ImplFrame, ImplRenderProcessHandler, ImplV8Context, ImplV8V use crate::cef::ipc::{MessageType, UnpackMessage, UnpackedMessage}; -use super::render_process_v8_handler::BrowserProcessV8HandlerImpl; +use super::render_process_v8_handler::RenderProcessV8HandlerImpl; pub(crate) struct RenderProcessHandlerImpl { object: *mut RcImpl, @@ -22,7 +22,7 @@ impl ImplRenderProcessHandler for RenderProcessHandlerImpl { frame: Option<&mut cef::Frame>, _source_process: cef::ProcessId, message: Option<&mut cef::ProcessMessage>, - ) -> ::std::os::raw::c_int { + ) -> std::ffi::c_int { let unpacked_message = unsafe { message.and_then(|m| m.unpack()) }; match unpacked_message { Some(UnpackedMessage { @@ -76,24 +76,30 @@ impl ImplRenderProcessHandler for RenderProcessHandlerImpl { } fn on_context_created(&self, _browser: Option<&mut cef::Browser>, _frame: Option<&mut cef::Frame>, context: Option<&mut cef::V8Context>) { - let function_name = "sendNativeMessage"; + let register_js_function = |context: &mut cef::V8Context, name: &'static str| { + let mut v8_handler = V8Handler::new(RenderProcessV8HandlerImpl::new()); + let Some(mut function) = v8_value_create_function(Some(&CefString::from(name)), Some(&mut v8_handler)) else { + tracing::error!("Failed to create V8 function {name}"); + return; + }; + + let Some(global) = context.global() else { + tracing::error!("Global object is not available in V8 context"); + return; + }; + global.set_value_bykey(Some(&CefString::from(name)), Some(&mut function), V8Propertyattribute::default()); + }; let Some(context) = context else { tracing::error!("V8 context is not available"); return; }; - let mut v8_handler = V8Handler::new(BrowserProcessV8HandlerImpl::new()); - let Some(mut function) = v8_value_create_function(Some(&CefString::from(function_name)), Some(&mut v8_handler)) else { - tracing::error!("Failed to create V8 function {function_name}"); - return; - }; + let initialized_function_name = "initializeNativeCommunication"; + let send_function_name = "sendNativeMessage"; - let Some(global) = context.global() else { - tracing::error!("Global object is not available in V8 context"); - return; - }; - global.set_value_bykey(Some(&CefString::from(function_name)), Some(&mut function), V8Propertyattribute::default()); + register_js_function(context, initialized_function_name); + register_js_function(context, send_function_name); } fn get_raw(&self) -> *mut _cef_render_process_handler_t { diff --git a/desktop/src/cef/internal/render_process_v8_handler.rs b/desktop/src/cef/internal/render_process_v8_handler.rs index e742ac9da..2ff18e470 100644 --- a/desktop/src/cef/internal/render_process_v8_handler.rs +++ b/desktop/src/cef/internal/render_process_v8_handler.rs @@ -2,17 +2,16 @@ use cef::{ImplV8Handler, ImplV8Value, V8Value, WrapV8Handler, rc::Rc, v8_context use crate::cef::ipc::{MessageType, SendMessage}; -pub struct BrowserProcessV8HandlerImpl { +pub struct RenderProcessV8HandlerImpl { object: *mut cef::rc::RcImpl, } - -impl BrowserProcessV8HandlerImpl { +impl RenderProcessV8HandlerImpl { pub(crate) fn new() -> Self { Self { object: std::ptr::null_mut() } } } -impl ImplV8Handler for BrowserProcessV8HandlerImpl { +impl ImplV8Handler for RenderProcessV8HandlerImpl { fn execute( &self, name: Option<&cef::CefString>, @@ -20,9 +19,12 @@ impl ImplV8Handler for BrowserProcessV8HandlerImpl { arguments: Option<&[Option]>, _retval: Option<&mut Option>, _exception: Option<&mut cef::CefString>, - ) -> ::std::os::raw::c_int { - if let Some(name) = name { - if name.to_string() == "sendNativeMessage" { + ) -> std::ffi::c_int { + match name.map(|s| s.to_string()).unwrap_or_default().as_str() { + "initializeNativeCommunication" => { + v8_context_get_current_context().send_message(MessageType::Initialized, vec![0u8].as_slice()); + } + "sendNativeMessage" => { let Some(args) = arguments else { tracing::error!("No arguments provided to sendNativeMessage"); return 0; @@ -48,6 +50,9 @@ impl ImplV8Handler for BrowserProcessV8HandlerImpl { return 1; } + name => { + tracing::error!("Unknown V8 function called: {}", name); + } } 1 } @@ -57,7 +62,7 @@ impl ImplV8Handler for BrowserProcessV8HandlerImpl { } } -impl Clone for BrowserProcessV8HandlerImpl { +impl Clone for RenderProcessV8HandlerImpl { fn clone(&self) -> Self { unsafe { let rc_impl = &mut *self.object; @@ -66,8 +71,7 @@ impl Clone for BrowserProcessV8HandlerImpl { Self { object: self.object } } } - -impl Rc for BrowserProcessV8HandlerImpl { +impl Rc for RenderProcessV8HandlerImpl { fn as_base(&self) -> &cef::sys::cef_base_ref_counted_t { unsafe { let base = &*self.object; @@ -75,8 +79,7 @@ impl Rc for BrowserProcessV8HandlerImpl { } } } - -impl WrapV8Handler for BrowserProcessV8HandlerImpl { +impl WrapV8Handler for RenderProcessV8HandlerImpl { fn wrap_rc(&mut self, object: *mut cef::rc::RcImpl) { self.object = object; } diff --git a/desktop/src/cef/internal/resource_handler.rs b/desktop/src/cef/internal/resource_handler.rs new file mode 100644 index 000000000..8c21b2cfb --- /dev/null +++ b/desktop/src/cef/internal/resource_handler.rs @@ -0,0 +1,108 @@ +use cef::rc::{Rc, RcImpl}; +use cef::sys::{_cef_resource_handler_t, cef_base_ref_counted_t}; +use cef::{Callback, CefString, ImplResourceHandler, ImplResponse, Request, ResourceReadCallback, Response, WrapResourceHandler}; +use std::cell::RefCell; +use std::ffi::c_int; +use std::io::Read; + +use crate::cef::{Resource, ResourceReader}; + +pub(crate) struct ResourceHandlerImpl { + object: *mut RcImpl<_cef_resource_handler_t, Self>, + reader: Option>, + mimetype: Option, +} + +impl ResourceHandlerImpl { + pub fn new(resource: Option) -> Self { + if let Some(resource) = resource { + Self { + object: std::ptr::null_mut(), + reader: Some(resource.reader.into()), + mimetype: resource.mimetype, + } + } else { + Self { + object: std::ptr::null_mut(), + reader: None, + mimetype: None, + } + } + } +} + +impl ImplResourceHandler for ResourceHandlerImpl { + fn open(&self, _request: Option<&mut Request>, handle_request: Option<&mut c_int>, _callback: Option<&mut Callback>) -> c_int { + if let Some(handle_request) = handle_request { + *handle_request = 1; + } + 1 + } + + fn response_headers(&self, response: Option<&mut Response>, response_length: Option<&mut i64>, _redirect_url: Option<&mut CefString>) { + if let Some(response_length) = response_length { + *response_length = -1; // Indicating that the length is unknown + } + if let Some(response) = response { + if self.reader.is_some() { + if let Some(mimetype) = &self.mimetype { + let cef_mime = CefString::from(mimetype.as_str()); + response.set_mime_type(Some(&cef_mime)); + } else { + response.set_mime_type(None); + } + response.set_status(200); + } else { + response.set_status(404); + response.set_mime_type(Some(&CefString::from("text/plain"))); + } + } + } + + fn read(&self, data_out: *mut u8, bytes_to_read: c_int, bytes_read: Option<&mut c_int>, _callback: Option<&mut ResourceReadCallback>) -> c_int { + let Some(bytes_read) = bytes_read else { unreachable!() }; + let out = unsafe { std::slice::from_raw_parts_mut(data_out, bytes_to_read as usize) }; + if let Some(reader) = &self.reader { + if let Ok(read) = reader.borrow_mut().read(out) { + *bytes_read = read as i32; + if read > 0 { + return 1; // Indicating that data was read + } + } else { + *bytes_read = -2; // Indicating ERR_FAILED + } + } + 0 // Indicating no data was read + } + + fn get_raw(&self) -> *mut _cef_resource_handler_t { + self.object.cast() + } +} + +impl Clone for ResourceHandlerImpl { + fn clone(&self) -> Self { + unsafe { + let rc_impl = &mut *self.object; + rc_impl.interface.add_ref(); + } + Self { + object: self.object, + reader: self.reader.clone(), + mimetype: self.mimetype.clone(), + } + } +} +impl Rc for ResourceHandlerImpl { + fn as_base(&self) -> &cef_base_ref_counted_t { + unsafe { + let base = &*self.object; + std::mem::transmute(&base.cef_object) + } + } +} +impl WrapResourceHandler for ResourceHandlerImpl { + fn wrap_rc(&mut self, object: *mut RcImpl<_cef_resource_handler_t, Self>) { + self.object = object; + } +} diff --git a/desktop/src/cef/internal/scheme_handler_factory.rs b/desktop/src/cef/internal/scheme_handler_factory.rs new file mode 100644 index 000000000..2c597df5e --- /dev/null +++ b/desktop/src/cef/internal/scheme_handler_factory.rs @@ -0,0 +1,74 @@ +use cef::rc::{Rc, RcImpl}; +use cef::sys::{_cef_scheme_handler_factory_t, cef_base_ref_counted_t, cef_scheme_options_t}; +use cef::{Browser, CefString, Frame, ImplRequest, ImplSchemeHandlerFactory, ImplSchemeRegistrar, Request, ResourceHandler, SchemeRegistrar, WrapSchemeHandlerFactory}; + +use super::resource_handler::ResourceHandlerImpl; +use crate::cef::CefEventHandler; +use crate::cef::consts::{RESOURCE_DOMAIN, RESOURCE_SCHEME}; + +pub(crate) struct SchemeHandlerFactoryImpl { + object: *mut RcImpl<_cef_scheme_handler_factory_t, Self>, + event_handler: H, +} +impl SchemeHandlerFactoryImpl { + pub(crate) fn new(event_handler: H) -> Self { + Self { + object: std::ptr::null_mut(), + event_handler, + } + } + + pub(crate) fn register_schemes(registrar: Option<&mut SchemeRegistrar>) { + if let Some(registrar) = registrar { + let mut scheme_options = 0; + scheme_options |= cef_scheme_options_t::CEF_SCHEME_OPTION_STANDARD as i32; + scheme_options |= cef_scheme_options_t::CEF_SCHEME_OPTION_FETCH_ENABLED as i32; + scheme_options |= cef_scheme_options_t::CEF_SCHEME_OPTION_SECURE as i32; + scheme_options |= cef_scheme_options_t::CEF_SCHEME_OPTION_CORS_ENABLED as i32; + registrar.add_custom_scheme(Some(&CefString::from(RESOURCE_SCHEME)), scheme_options); + } + } +} + +impl ImplSchemeHandlerFactory for SchemeHandlerFactoryImpl { + fn create(&self, _browser: Option<&mut Browser>, _frame: Option<&mut Frame>, _scheme_name: Option<&CefString>, request: Option<&mut Request>) -> Option { + if let Some(request) = request { + let url = CefString::from(&request.url()).to_string(); + let path = url + .strip_prefix(&format!("{RESOURCE_SCHEME}://{RESOURCE_DOMAIN}/")) + .expect("CEF should only call this for our custom scheme and domain that we registered this factory for"); + let resource = self.event_handler.load_resource(path.to_string().into()); + return Some(ResourceHandler::new(ResourceHandlerImpl::new(resource))); + } + None + } + fn get_raw(&self) -> *mut _cef_scheme_handler_factory_t { + self.object.cast() + } +} + +impl Clone for SchemeHandlerFactoryImpl { + fn clone(&self) -> Self { + unsafe { + let rc_impl = &mut *self.object; + rc_impl.interface.add_ref(); + } + Self { + object: self.object, + event_handler: self.event_handler.duplicate(), + } + } +} +impl Rc for SchemeHandlerFactoryImpl { + fn as_base(&self) -> &cef_base_ref_counted_t { + unsafe { + let base = &*self.object; + std::mem::transmute(&base.cef_object) + } + } +} +impl WrapSchemeHandlerFactory for SchemeHandlerFactoryImpl { + fn wrap_rc(&mut self, object: *mut RcImpl<_cef_scheme_handler_factory_t, Self>) { + self.object = object; + } +} diff --git a/desktop/src/cef/internal/task.rs b/desktop/src/cef/internal/task.rs new file mode 100644 index 000000000..fe29e3de9 --- /dev/null +++ b/desktop/src/cef/internal/task.rs @@ -0,0 +1,61 @@ +use cef::rc::{Rc, RcImpl}; +use cef::sys::{_cef_task_t, cef_base_ref_counted_t}; +use cef::{ImplTask, WrapTask}; +use std::cell::RefCell; + +// Closure-based task wrapper following CEF patterns +pub struct ClosureTask { + pub(crate) object: *mut RcImpl<_cef_task_t, Self>, + pub(crate) closure: RefCell>, +} + +impl ClosureTask { + pub fn new(closure: F) -> Self { + Self { + object: std::ptr::null_mut(), + closure: RefCell::new(Some(closure)), + } + } +} + +impl ImplTask for ClosureTask { + fn execute(&self) { + if let Some(closure) = self.closure.borrow_mut().take() { + closure(); + } + } + + fn get_raw(&self) -> *mut _cef_task_t { + self.object.cast() + } +} + +impl Clone for ClosureTask { + fn clone(&self) -> Self { + unsafe { + if !self.object.is_null() { + let rc_impl = &mut *self.object; + rc_impl.interface.add_ref(); + } + } + Self { + object: self.object, + closure: RefCell::new(None), // Closure can only be executed once + } + } +} + +impl Rc for ClosureTask { + fn as_base(&self) -> &cef_base_ref_counted_t { + unsafe { + let base = &*self.object; + std::mem::transmute(&base.cef_object) + } + } +} + +impl WrapTask for ClosureTask { + fn wrap_rc(&mut self, object: *mut RcImpl<_cef_task_t, Self>) { + self.object = object; + } +} diff --git a/desktop/src/cef/ipc.rs b/desktop/src/cef/ipc.rs index 69b344a46..b1a27741b 100644 --- a/desktop/src/cef/ipc.rs +++ b/desktop/src/cef/ipc.rs @@ -1,14 +1,17 @@ -use cef::{CefString, Frame, ImplBinaryValue, ImplBrowser, ImplFrame, ImplListValue, ImplProcessMessage, ImplV8Context, ProcessId, V8Context, sys::cef_process_id_t}; - -use super::{Context, Initialized}; +use cef::{CefString, Frame, ImplBinaryValue, ImplFrame, ImplListValue, ImplProcessMessage, ImplV8Context, ProcessId, V8Context, sys::cef_process_id_t}; pub(crate) enum MessageType { + Initialized, SendToJS, SendToNative, } impl From for MessageInfo { fn from(val: MessageType) -> Self { match val { + MessageType::Initialized => MessageInfo { + name: "initialized".to_string(), + target: cef_process_id_t::PID_BROWSER.into(), + }, MessageType::SendToJS => MessageInfo { name: "send_to_js".to_string(), target: cef_process_id_t::PID_RENDERER.into(), @@ -24,6 +27,7 @@ impl TryFrom for MessageType { type Error = (); fn try_from(value: String) -> Result { match value.as_str() { + "initialized" => Ok(MessageType::Initialized), "send_to_js" => Ok(MessageType::SendToJS), "send_to_native" => Ok(MessageType::SendToNative), _ => Err(()), @@ -39,21 +43,6 @@ pub(crate) struct MessageInfo { pub(crate) trait SendMessage { fn send_message(&self, message_type: MessageType, message: &[u8]); } -impl SendMessage for Context { - fn send_message(&self, message_type: MessageType, message: &[u8]) { - let Some(browser) = &self.browser else { - tracing::error!("Browser is not initialized, cannot send message"); - return; - }; - - let Some(frame) = browser.main_frame() else { - tracing::error!("Main frame is not available, cannot send message"); - return; - }; - - frame.send_message(message_type, message); - } -} impl SendMessage for Option { fn send_message(&self, message_type: MessageType, message: &[u8]) { let Some(context) = self else { diff --git a/desktop/src/cef/platform.rs b/desktop/src/cef/platform.rs new file mode 100644 index 000000000..7df5d5f98 --- /dev/null +++ b/desktop/src/cef/platform.rs @@ -0,0 +1,59 @@ +#[cfg(feature = "accelerated_paint")] +pub fn should_enable_hardware_acceleration() -> bool { + #[cfg(target_os = "linux")] + { + // Check if running on Wayland or X11 + let has_wayland = std::env::var("WAYLAND_DISPLAY") + .ok() + .filter(|var| !var.is_empty()) + .or_else(|| std::env::var("WAYLAND_SOCKET").ok()) + .filter(|var| !var.is_empty()) + .is_some(); + + let has_x11 = std::env::var("DISPLAY").ok().filter(|var| !var.is_empty()).is_some(); + + if !has_wayland && !has_x11 { + tracing::warn!("No display server detected, disabling hardware acceleration"); + return false; + } + + // Check for NVIDIA proprietary driver (known to have issues) + if let Ok(driver_info) = std::fs::read_to_string("/proc/driver/nvidia/version") { + if driver_info.contains("NVIDIA") { + tracing::warn!("NVIDIA proprietary driver detected, hardware acceleration may be unstable"); + // Still return true but with warning + } + } + + // Check for basic GPU capabilities + if has_wayland { + tracing::info!("Wayland detected, enabling hardware acceleration"); + true + } else if has_x11 { + tracing::info!("X11 detected, enabling hardware acceleration"); + true + } else { + false + } + } + + #[cfg(target_os = "windows")] + { + // Windows generally has good D3D11 support + tracing::info!("Windows detected, enabling hardware acceleration"); + true + } + + #[cfg(target_os = "macos")] + { + // macOS has good Metal/IOSurface support + tracing::info!("macOS detected, enabling hardware acceleration"); + true + } + + #[cfg(not(any(target_os = "linux", target_os = "windows", target_os = "macos")))] + { + tracing::warn!("Unsupported platform for hardware acceleration"); + false + } +} diff --git a/desktop/src/cef/scheme_handler.rs b/desktop/src/cef/scheme_handler.rs deleted file mode 100644 index 0cbb8bb54..000000000 --- a/desktop/src/cef/scheme_handler.rs +++ /dev/null @@ -1,223 +0,0 @@ -use std::cell::RefCell; -use std::ffi::c_int; -use std::ops::DerefMut; -use std::slice::Iter; - -use cef::rc::{Rc, RcImpl}; -use cef::sys::{_cef_resource_handler_t, _cef_scheme_handler_factory_t, cef_base_ref_counted_t, cef_scheme_options_t}; -use cef::{ - Browser, Callback, CefString, Frame, ImplRequest, ImplResourceHandler, ImplResponse, ImplSchemeHandlerFactory, ImplSchemeRegistrar, Request, ResourceHandler, ResourceReadCallback, Response, - SchemeRegistrar, WrapResourceHandler, WrapSchemeHandlerFactory, -}; -use include_dir::{Dir, include_dir}; - -pub(crate) const GRAPHITE_SCHEME: &str = "graphite-static"; -pub(crate) const FRONTEND_DOMAIN: &str = "frontend"; - -pub(crate) struct GraphiteSchemeHandlerFactory { - object: *mut RcImpl<_cef_scheme_handler_factory_t, Self>, -} -impl GraphiteSchemeHandlerFactory { - pub(crate) fn new() -> Self { - Self { object: std::ptr::null_mut() } - } - - pub(crate) fn register_schemes(registrar: Option<&mut SchemeRegistrar>) { - if let Some(registrar) = registrar { - let mut scheme_options = 0; - scheme_options |= cef_scheme_options_t::CEF_SCHEME_OPTION_STANDARD as i32; - scheme_options |= cef_scheme_options_t::CEF_SCHEME_OPTION_FETCH_ENABLED as i32; - scheme_options |= cef_scheme_options_t::CEF_SCHEME_OPTION_SECURE as i32; - scheme_options |= cef_scheme_options_t::CEF_SCHEME_OPTION_CORS_ENABLED as i32; - registrar.add_custom_scheme(Some(&CefString::from(GRAPHITE_SCHEME)), scheme_options); - } - } -} -impl ImplSchemeHandlerFactory for GraphiteSchemeHandlerFactory { - fn create(&self, _browser: Option<&mut Browser>, _frame: Option<&mut Frame>, scheme_name: Option<&CefString>, request: Option<&mut Request>) -> Option { - if let Some(scheme_name) = scheme_name { - if scheme_name.to_string() != GRAPHITE_SCHEME { - return None; - } - if let Some(request) = request { - let url = CefString::from(&request.url()).to_string(); - let path = url.strip_prefix(&format!("{GRAPHITE_SCHEME}://")).unwrap(); - let domain = path.split('/').next().unwrap_or(""); - let path = path.strip_prefix(domain).unwrap_or(""); - let path = path.trim_start_matches('/'); - return match domain { - FRONTEND_DOMAIN => { - if path.is_empty() { - Some(ResourceHandler::new(GraphiteFrontendResourceHandler::new("index.html"))) - } else { - Some(ResourceHandler::new(GraphiteFrontendResourceHandler::new(path))) - } - } - _ => None, - }; - } - return None; - } - None - } - fn get_raw(&self) -> *mut _cef_scheme_handler_factory_t { - self.object.cast() - } -} - -static FRONTEND: Dir = include_dir!("$CARGO_MANIFEST_DIR/../frontend/dist"); - -struct GraphiteFrontendResourceHandler<'a> { - object: *mut RcImpl<_cef_resource_handler_t, Self>, - data: Option>>, - mimetype: Option, -} -impl<'a> GraphiteFrontendResourceHandler<'a> { - pub fn new(path: &str) -> Self { - let file = FRONTEND.get_file(path); - let data = if let Some(file) = file { - Some(RefCell::new(file.contents().iter())) - } else { - tracing::error!("Failed to find asset at path: {}", path); - None - }; - let mimetype = if let Some(file) = file { - let ext = file.path().extension().and_then(|s| s.to_str()).unwrap_or(""); - - // We know what file types will be in the assets this should be fine - match ext { - "html" => Some("text/html".to_string()), - "css" => Some("text/css".to_string()), - "wasm" => Some("application/wasm".to_string()), - "js" => Some("application/javascript".to_string()), - "png" => Some("image/png".to_string()), - "jpg" | "jpeg" => Some("image/jpeg".to_string()), - "svg" => Some("image/svg+xml".to_string()), - "xml" => Some("application/xml".to_string()), - "json" => Some("application/json".to_string()), - "ico" => Some("image/x-icon".to_string()), - "woff" => Some("font/woff".to_string()), - "woff2" => Some("font/woff2".to_string()), - "ttf" => Some("font/ttf".to_string()), - "otf" => Some("font/otf".to_string()), - "webmanifest" => Some("application/manifest+json".to_string()), - "graphite" => Some("application/graphite+json".to_string()), - _ => None, - } - } else { - None - }; - Self { - object: std::ptr::null_mut(), - data, - mimetype, - } - } -} -impl<'a> ImplResourceHandler for GraphiteFrontendResourceHandler<'a> { - fn open(&self, _request: Option<&mut Request>, handle_request: Option<&mut c_int>, _callback: Option<&mut Callback>) -> c_int { - if let Some(handle_request) = handle_request { - *handle_request = 1; - } - 1 - } - - fn response_headers(&self, response: Option<&mut Response>, response_length: Option<&mut i64>, _redirect_url: Option<&mut CefString>) { - if let Some(response_length) = response_length { - *response_length = -1; // Indicating that the length is unknown - } - if let Some(response) = response { - if self.data.is_some() { - if let Some(mimetype) = &self.mimetype { - let cef_mime = CefString::from(mimetype.as_str()); - response.set_mime_type(Some(&cef_mime)); - } else { - response.set_mime_type(None); - } - response.set_status(200); - } else { - response.set_status(404); - response.set_mime_type(Some(&CefString::from("text/plain"))); - } - } - } - - fn read(&self, data_out: *mut u8, bytes_to_read: c_int, bytes_read: Option<&mut c_int>, _callback: Option<&mut ResourceReadCallback>) -> c_int { - let mut read = 0; - - let out = unsafe { std::slice::from_raw_parts_mut(data_out, bytes_to_read as usize) }; - if let Some(data) = &self.data { - let mut data = data.borrow_mut(); - - for (out, &data) in out.iter_mut().zip(data.deref_mut()) { - *out = data; - read += 1; - } - } - - if let Some(bytes_read) = bytes_read { - *bytes_read = read; - } - - if read > 0 { - 1 // Indicating that data was read - } else { - 0 // Indicating no data was read - } - } - - fn get_raw(&self) -> *mut _cef_resource_handler_t { - self.object.cast() - } -} - -impl WrapSchemeHandlerFactory for GraphiteSchemeHandlerFactory { - fn wrap_rc(&mut self, object: *mut RcImpl<_cef_scheme_handler_factory_t, Self>) { - self.object = object; - } -} -impl<'a> WrapResourceHandler for GraphiteFrontendResourceHandler<'a> { - fn wrap_rc(&mut self, object: *mut RcImpl<_cef_resource_handler_t, Self>) { - self.object = object; - } -} - -impl Clone for GraphiteSchemeHandlerFactory { - fn clone(&self) -> Self { - unsafe { - let rc_impl = &mut *self.object; - rc_impl.interface.add_ref(); - } - Self { object: self.object } - } -} -impl<'a> Clone for GraphiteFrontendResourceHandler<'a> { - fn clone(&self) -> Self { - unsafe { - let rc_impl = &mut *self.object; - rc_impl.interface.add_ref(); - } - Self { - object: self.object, - data: self.data.clone(), - mimetype: self.mimetype.clone(), - } - } -} - -impl Rc for GraphiteSchemeHandlerFactory { - fn as_base(&self) -> &cef_base_ref_counted_t { - unsafe { - let base = &*self.object; - std::mem::transmute(&base.cef_object) - } - } -} -impl<'a> Rc for GraphiteFrontendResourceHandler<'a> { - fn as_base(&self) -> &cef_base_ref_counted_t { - unsafe { - let base = &*self.object; - std::mem::transmute(&base.cef_object) - } - } -} diff --git a/desktop/src/cli.rs b/desktop/src/cli.rs new file mode 100644 index 000000000..3af8e10c4 --- /dev/null +++ b/desktop/src/cli.rs @@ -0,0 +1,9 @@ +#[derive(clap::Parser)] +#[clap(name = "graphite", version)] +pub struct Cli { + #[arg(help = "Files to open on startup")] + pub files: Vec, + + #[arg(long, action = clap::ArgAction::SetTrue, help = "Disable hardware accelerated UI rendering")] + pub disable_ui_acceleration: bool, +} diff --git a/desktop/src/consts.rs b/desktop/src/consts.rs index 49543588f..f56b2a2d7 100644 --- a/desktop/src/consts.rs +++ b/desktop/src/consts.rs @@ -1,3 +1,13 @@ -pub(crate) static APP_NAME: &str = "Graphite"; -pub(crate) static APP_ID: &str = "rs.graphite.GraphiteEditor"; -pub(crate) static APP_DIRECTORY_NAME: &str = "graphite-editor"; +pub(crate) const APP_NAME: &str = "Graphite"; +#[cfg(any(target_os = "linux", target_os = "windows"))] +pub(crate) const APP_ID: &str = "art.graphite.Graphite"; + +pub(crate) const APP_DIRECTORY_NAME: &str = "graphite"; +pub(crate) const APP_LOCK_FILE_NAME: &str = "instance.lock"; +pub(crate) const APP_STATE_FILE_NAME: &str = "state.ron"; +pub(crate) const APP_PREFERENCES_FILE_NAME: &str = "preferences.ron"; +pub(crate) const APP_DOCUMENTS_DIRECTORY_NAME: &str = "documents"; + +// CEF configuration constants +pub(crate) const CEF_WINDOWLESS_FRAME_RATE: i32 = 60; +pub(crate) const CEF_MESSAGE_LOOP_MAX_ITERATIONS: usize = 10; diff --git a/desktop/src/dialogs.rs b/desktop/src/dialogs.rs deleted file mode 100644 index a4a70f022..000000000 --- a/desktop/src/dialogs.rs +++ /dev/null @@ -1,26 +0,0 @@ -use std::path::PathBuf; - -use rfd::AsyncFileDialog; - -pub(crate) async fn dialog_open_graphite_file() -> Option { - AsyncFileDialog::new() - .add_filter("Graphite", &["graphite"]) - .set_title("Open Graphite Document") - .pick_file() - .await - .map(|f| f.path().to_path_buf()) -} - -pub(crate) async fn dialog_save_graphite_file(name: String) -> Option { - AsyncFileDialog::new() - .add_filter("Graphite", &["graphite"]) - .set_title("Save Graphite Document") - .set_file_name(name) - .save_file() - .await - .map(|f| f.path().to_path_buf()) -} - -pub(crate) async fn dialog_save_file(name: String) -> Option { - AsyncFileDialog::new().set_title("Save File").set_file_name(name).save_file().await.map(|f| f.path().to_path_buf()) -} diff --git a/desktop/src/dirs.rs b/desktop/src/dirs.rs index 6a964e017..584f1a290 100644 --- a/desktop/src/dirs.rs +++ b/desktop/src/dirs.rs @@ -1,7 +1,7 @@ use std::fs::create_dir_all; use std::path::PathBuf; -use crate::consts::APP_DIRECTORY_NAME; +use crate::consts::{APP_DIRECTORY_NAME, APP_DOCUMENTS_DIRECTORY_NAME}; pub(crate) fn ensure_dir_exists(path: &PathBuf) { if !path.exists() { @@ -9,8 +9,14 @@ pub(crate) fn ensure_dir_exists(path: &PathBuf) { } } -pub(crate) fn graphite_data_dir() -> PathBuf { +pub(crate) fn app_data_dir() -> PathBuf { let path = dirs::data_dir().expect("Failed to get data directory").join(APP_DIRECTORY_NAME); ensure_dir_exists(&path); path } + +pub(crate) fn app_autosave_documents_dir() -> PathBuf { + let path = app_data_dir().join(APP_DOCUMENTS_DIRECTORY_NAME); + ensure_dir_exists(&path); + path +} diff --git a/desktop/src/event.rs b/desktop/src/event.rs new file mode 100644 index 000000000..f334b0879 --- /dev/null +++ b/desktop/src/event.rs @@ -0,0 +1,39 @@ +use crate::wrapper::NodeGraphExecutionResult; +use crate::wrapper::messages::DesktopWrapperMessage; + +pub(crate) enum AppEvent { + UiUpdate(wgpu::Texture), + CursorChange(crate::window::Cursor), + ScheduleBrowserWork(std::time::Instant), + WebCommunicationInitialized, + DesktopWrapperMessage(DesktopWrapperMessage), + NodeGraphExecutionResult(NodeGraphExecutionResult), + CloseWindow, + #[cfg(target_os = "macos")] + MenuEvent { + id: String, + }, +} + +#[derive(Clone)] +pub(crate) struct AppEventScheduler { + pub(crate) proxy: winit::event_loop::EventLoopProxy, + pub(crate) sender: std::sync::mpsc::Sender, +} + +impl AppEventScheduler { + pub(crate) fn schedule(&self, event: AppEvent) { + let _ = self.sender.send(event); + self.proxy.wake_up(); + } +} + +pub(crate) trait CreateAppEventSchedulerEventLoopExt { + fn create_app_event_scheduler(&self, sender: std::sync::mpsc::Sender) -> AppEventScheduler; +} + +impl CreateAppEventSchedulerEventLoopExt for winit::event_loop::EventLoop { + fn create_app_event_scheduler(&self, sender: std::sync::mpsc::Sender) -> AppEventScheduler { + AppEventScheduler { proxy: self.create_proxy(), sender } + } +} diff --git a/desktop/src/gpu_context.rs b/desktop/src/gpu_context.rs new file mode 100644 index 000000000..9b25f30fd --- /dev/null +++ b/desktop/src/gpu_context.rs @@ -0,0 +1,23 @@ +use crate::wrapper::{WgpuContext, WgpuContextBuilder, WgpuFeatures}; + +pub(super) async fn create_wgpu_context() -> WgpuContext { + let wgpu_context_builder = WgpuContextBuilder::new().with_features(WgpuFeatures::PUSH_CONSTANTS); + + // TODO: add a cli flag to list adapters and exit instead of always printing + println!("\nAvailable WGPU adapters:\n{}", wgpu_context_builder.available_adapters_fmt().await); + + // TODO: make this configurable via cli flags instead + let wgpu_context = match std::env::var("GRAPHITE_WGPU_ADAPTER").ok().and_then(|s| s.parse().ok()) { + None => wgpu_context_builder.build().await, + Some(adapter_index) => { + tracing::info!("Overriding WGPU adapter selection with adapter index {adapter_index}"); + wgpu_context_builder.build_with_adapter_selection(|_| Some(adapter_index)).await + } + } + .expect("Failed to create WGPU context"); + + // TODO: add a cli flag to list adapters and exit instead of always printing + println!("Using WGPU adapter: {:?}", wgpu_context.adapter.get_info()); + + wgpu_context +} diff --git a/desktop/src/lib.rs b/desktop/src/lib.rs new file mode 100644 index 000000000..692adbab0 --- /dev/null +++ b/desktop/src/lib.rs @@ -0,0 +1,102 @@ +use clap::Parser; +use std::process::exit; +use tracing_subscriber::EnvFilter; +use winit::event_loop::EventLoop; + +pub(crate) mod consts; + +mod app; +mod cef; +mod cli; +mod dirs; +mod event; +mod persist; +mod render; +mod window; + +mod gpu_context; + +pub(crate) use graphite_desktop_wrapper as wrapper; + +use app::App; +use cef::CefHandler; +use cli::Cli; +use event::CreateAppEventSchedulerEventLoopExt; + +use crate::consts::APP_LOCK_FILE_NAME; + +pub fn start() { + tracing_subscriber::fmt().with_env_filter(EnvFilter::from_default_env()).init(); + + let cef_context_builder = cef::CefContextBuilder::::new(); + + if cef_context_builder.is_sub_process() { + // We are in a CEF subprocess + // This will block until the CEF subprocess quits + let error = cef_context_builder.execute_sub_process(); + tracing::warn!("Cef subprocess failed with error: {error}"); + return; + } + + let mut lock = pidlock::Pidlock::new_validated(dirs::app_data_dir().join(APP_LOCK_FILE_NAME)).unwrap(); + match lock.acquire() { + Ok(lock) => { + tracing::info!("Acquired application lock"); + lock + } + Err(pidlock::PidlockError::LockExists) => { + tracing::error!("Another instance is already running, Exiting."); + exit(0); + } + Err(err) => { + tracing::error!("Failed to acquire application lock: {err}"); + exit(1); + } + }; + + App::init(); + + let cli = Cli::parse(); + + let wgpu_context = futures::executor::block_on(gpu_context::create_wgpu_context()); + + let event_loop = EventLoop::new().unwrap(); + let (app_event_sender, app_event_receiver) = std::sync::mpsc::channel(); + let app_event_scheduler = event_loop.create_app_event_scheduler(app_event_sender); + + let (cef_view_info_sender, cef_view_info_receiver) = std::sync::mpsc::channel(); + + let cef_handler = cef::CefHandler::new(wgpu_context.clone(), app_event_scheduler.clone(), cef_view_info_receiver); + let cef_context = match cef_context_builder.initialize(cef_handler, cli.disable_ui_acceleration) { + Ok(c) => { + tracing::info!("CEF initialized successfully"); + c + } + Err(cef::InitError::AlreadyRunning) => { + tracing::error!("Another instance is already running, Exiting."); + exit(1); + } + Err(cef::InitError::InitializationFailed(code)) => { + tracing::error!("Cef initialization failed with code: {code}"); + exit(1); + } + Err(cef::InitError::BrowserCreationFailed) => { + tracing::error!("Failed to create CEF browser"); + exit(1); + } + Err(cef::InitError::RequestContextCreationFailed) => { + tracing::error!("Failed to create CEF request context"); + exit(1); + } + }; + + let mut app = App::new(Box::new(cef_context), cef_view_info_sender, wgpu_context, app_event_receiver, app_event_scheduler, cli.files); + + event_loop.run_app(&mut app).unwrap(); +} + +pub fn start_helper() { + let cef_context_builder = cef::CefContextBuilder::::new_helper(); + assert!(cef_context_builder.is_sub_process()); + cef_context_builder.execute_sub_process(); +} diff --git a/desktop/src/main.rs b/desktop/src/main.rs index 36fe41db8..5420d97bb 100644 --- a/desktop/src/main.rs +++ b/desktop/src/main.rs @@ -1,82 +1,3 @@ -use std::process::exit; -use std::time::Instant; -use std::{fmt::Debug, time::Duration}; - -use graphite_editor::messages::prelude::Message; -use tracing_subscriber::EnvFilter; -use winit::event_loop::EventLoop; - -pub(crate) mod consts; - -mod cef; -use cef::{Setup, WindowSize}; - -mod render; -use render::WgpuContext; - -mod app; -use app::WinitApp; - -mod dirs; - -mod dialogs; - -#[derive(Debug)] -pub(crate) enum CustomEvent { - UiUpdate(wgpu::Texture), - ScheduleBrowserWork(Instant), - DispatchMessage(Message), - MessageReceived(Message), - NodeGraphRan(Option), -} - fn main() { - tracing_subscriber::fmt().with_env_filter(EnvFilter::from_default_env()).init(); - - let cef_context = match cef::Context::::new() { - Ok(c) => c, - Err(cef::SetupError::Subprocess) => exit(0), - Err(cef::SetupError::SubprocessFailed(t)) => { - tracing::error!("Subprocess of type {t} failed"); - exit(1); - } - }; - - let event_loop = EventLoop::::with_user_event().build().unwrap(); - - let (window_size_sender, window_size_receiver) = std::sync::mpsc::channel(); - - let wgpu_context = futures::executor::block_on(WgpuContext::new()).unwrap(); - let cef_context = match cef_context.init(cef::CefHandler::new(window_size_receiver, event_loop.create_proxy(), wgpu_context.clone())) { - Ok(c) => c, - Err(cef::InitError::AlreadyRunning) => { - tracing::error!("Another instance is already running, Exiting."); - exit(0); - } - Err(cef::InitError::InitializationFailed(code)) => { - tracing::error!("Cef initialization failed with code: {code}"); - exit(1); - } - }; - - tracing::info!("Cef initialized successfully"); - - let rendering_loop_proxy = event_loop.create_proxy(); - let target_fps = 60; - std::thread::spawn(move || { - loop { - let last_render = Instant::now(); - let (has_run, texture) = futures::executor::block_on(graphite_editor::node_graph_executor::run_node_graph()); - if has_run { - let _ = rendering_loop_proxy.send_event(CustomEvent::NodeGraphRan(texture.map(|t| (*t.texture).clone()))); - } - let frame_time = Duration::from_secs_f32((target_fps as f32).recip()); - let sleep = last_render + frame_time - Instant::now(); - std::thread::sleep(sleep); - } - }); - - let mut winit_app = WinitApp::new(cef_context, window_size_sender, wgpu_context, event_loop.create_proxy()); - - event_loop.run_app(&mut winit_app).unwrap(); + graphite_desktop::start(); } diff --git a/desktop/src/persist.rs b/desktop/src/persist.rs new file mode 100644 index 000000000..a5baa211b --- /dev/null +++ b/desktop/src/persist.rs @@ -0,0 +1,214 @@ +use crate::wrapper::messages::{Document, DocumentId, Preferences}; + +#[derive(Default, serde::Serialize, serde::Deserialize)] +pub(crate) struct PersistentData { + documents: DocumentStore, + current_document: Option, + #[serde(skip)] + document_order: Option>, +} + +impl PersistentData { + pub(crate) fn write_document(&mut self, id: DocumentId, document: Document) { + self.documents.write(id, document); + if let Some(order) = &self.document_order { + self.documents.force_order(order); + } + self.flush(); + } + + pub(crate) fn delete_document(&mut self, id: &DocumentId) { + if Some(*id) == self.current_document { + self.current_document = None; + } + self.documents.delete(id); + self.flush(); + } + + pub(crate) fn current_document_id(&self) -> Option { + match self.current_document { + Some(id) => Some(id), + None => Some(*self.documents.document_ids().first()?), + } + } + + pub(crate) fn current_document(&self) -> Option<(DocumentId, Document)> { + let current_id = self.current_document_id()?; + Some((current_id, self.documents.read(¤t_id)?)) + } + + pub(crate) fn documents_before_current(&self) -> Vec<(DocumentId, Document)> { + let Some(current_id) = self.current_document_id() else { + return Vec::new(); + }; + self.documents + .document_ids() + .into_iter() + .take_while(|id| *id != current_id) + .filter_map(|id| Some((id, self.documents.read(&id)?))) + .collect() + } + + pub(crate) fn documents_after_current(&self) -> Vec<(DocumentId, Document)> { + let Some(current_id) = self.current_document_id() else { + return Vec::new(); + }; + self.documents + .document_ids() + .into_iter() + .skip_while(|id| *id != current_id) + .skip(1) + .filter_map(|id| Some((id, self.documents.read(&id)?))) + .collect() + } + + pub(crate) fn set_current_document(&mut self, id: DocumentId) { + self.current_document = Some(id); + self.flush(); + } + + pub(crate) fn set_document_order(&mut self, order: Vec) { + self.document_order = Some(order); + self.flush(); + } + + pub(crate) fn write_preferences(&mut self, preferences: Preferences) { + let Ok(preferences) = ron::ser::to_string_pretty(&preferences, Default::default()) else { + tracing::error!("Failed to serialize preferences"); + return; + }; + std::fs::write(Self::preferences_file_path(), &preferences).unwrap_or_else(|e| { + tracing::error!("Failed to write preferences to disk: {e}"); + }); + } + + pub(crate) fn load_preferences(&self) -> Option { + let data = std::fs::read_to_string(Self::preferences_file_path()).ok()?; + let preferences = ron::from_str(&data).ok()?; + Some(preferences) + } + + fn flush(&self) { + let data = match ron::ser::to_string_pretty(self, Default::default()) { + Ok(d) => d, + Err(e) => { + tracing::error!("Failed to serialize persistent data: {e}"); + return; + } + }; + if let Err(e) = std::fs::write(Self::state_file_path(), data) { + tracing::error!("Failed to write persistent data to disk: {e}"); + } + } + + pub(crate) fn load_from_disk(&mut self) { + let path = Self::state_file_path(); + let data = match std::fs::read_to_string(&path) { + Ok(d) => d, + Err(e) if e.kind() == std::io::ErrorKind::NotFound => { + tracing::info!("No persistent data file found at {path:?}, starting fresh"); + return; + } + Err(e) => { + tracing::error!("Failed to read persistent data from disk: {e}"); + return; + } + }; + let loaded = match ron::from_str(&data) { + Ok(d) => d, + Err(e) => { + tracing::error!("Failed to deserialize persistent data: {e}"); + return; + } + }; + *self = loaded; + } + + fn state_file_path() -> std::path::PathBuf { + let mut path = crate::dirs::app_data_dir(); + path.push(crate::consts::APP_STATE_FILE_NAME); + path + } + + fn preferences_file_path() -> std::path::PathBuf { + let mut path = crate::dirs::app_data_dir(); + path.push(crate::consts::APP_PREFERENCES_FILE_NAME); + path + } +} + +#[derive(Default, serde::Serialize, serde::Deserialize)] +struct DocumentStore(Vec); +impl DocumentStore { + fn write(&mut self, id: DocumentId, document: Document) { + let meta = DocumentInfo::new(id, &document); + if let Some(existing) = self.0.iter_mut().find(|meta| meta.id == id) { + *existing = meta; + } else { + self.0.push(meta); + } + if let Err(e) = std::fs::write(Self::document_path(&id), document.content) { + tracing::error!("Failed to write document {id:?} to disk: {e}"); + } + } + + fn delete(&mut self, id: &DocumentId) { + self.0.retain(|meta| meta.id != *id); + if let Err(e) = std::fs::remove_file(Self::document_path(id)) { + tracing::error!("Failed to delete document {id:?} from disk: {e}"); + } + } + + fn read(&self, id: &DocumentId) -> Option { + let meta = self.0.iter().find(|meta| meta.id == *id)?; + let content = std::fs::read_to_string(Self::document_path(id)).ok()?; + Some(Document { + content, + name: meta.name.clone(), + path: meta.path.clone(), + is_saved: meta.is_saved, + }) + } + + fn force_order(&mut self, desired_order: &Vec) { + let mut ordered_prefix_len = 0; + for id in desired_order { + if let Some(offset) = self.0[ordered_prefix_len..].iter().position(|meta| meta.id == *id) { + let found_index = ordered_prefix_len + offset; + if found_index != ordered_prefix_len { + self.0[ordered_prefix_len..=found_index].rotate_right(1); + } + ordered_prefix_len += 1; + } + } + self.0.truncate(ordered_prefix_len); + } + + fn document_ids(&self) -> Vec { + self.0.iter().map(|meta| meta.id).collect() + } + + fn document_path(id: &DocumentId) -> std::path::PathBuf { + let mut path = crate::dirs::app_autosave_documents_dir(); + path.push(format!("{:x}.graphite", id.0)); + path + } +} + +#[derive(serde::Serialize, serde::Deserialize)] +struct DocumentInfo { + id: DocumentId, + name: String, + path: Option, + is_saved: bool, +} +impl DocumentInfo { + fn new(id: DocumentId, Document { name, path, is_saved, .. }: &Document) -> Self { + Self { + id, + name: name.clone(), + path: path.clone(), + is_saved: *is_saved, + } + } +} diff --git a/desktop/src/render.rs b/desktop/src/render.rs index 0fe3ad7d0..e5d57982d 100644 --- a/desktop/src/render.rs +++ b/desktop/src/render.rs @@ -1,5 +1,5 @@ mod frame_buffer_ref; pub(crate) use frame_buffer_ref::FrameBufferRef; -mod graphics_state; -pub(crate) use graphics_state::{GraphicsState, WgpuContext}; +mod state; +pub(crate) use state::{RenderError, RenderState}; diff --git a/desktop/src/render/composite_shader.wgsl b/desktop/src/render/composite_shader.wgsl index 3232e44f9..98cecfc6c 100644 --- a/desktop/src/render/composite_shader.wgsl +++ b/desktop/src/render/composite_shader.wgsl @@ -8,15 +8,9 @@ fn vs_main(@builtin(vertex_index) vertex_index: u32) -> VertexOutput { var out: VertexOutput; let pos = array( - // 1st triangle - vec2f( -1.0, -1.0), // center - vec2f( 1.0, -1.0), // right, center - vec2f( -1.0, 1.0), // center, top - - // 2nd triangle - vec2f( -1.0, 1.0), // center, top - vec2f( 1.0, -1.0), // right, center - vec2f( 1.0, 1.0), // right, top + vec2f( -1.0, -1.0), + vec2f( 3.0, -1.0), + vec2f( -1.0, 3.0), ); let xy = pos[vertex_index]; out.clip_position = vec4f(xy , 0.0, 1.0); @@ -29,6 +23,8 @@ fn vs_main(@builtin(vertex_index) vertex_index: u32) -> VertexOutput { struct Constants { viewport_scale: vec2, viewport_offset: vec2, + ui_scale: vec2, + background_color: vec4, }; var constants: Constants; @@ -44,34 +40,48 @@ var s_diffuse: sampler; @fragment fn fs_main(in: VertexOutput) -> @location(0) vec4 { - let ui = textureSample(t_ui, s_diffuse, in.tex_coords); - if (ui.a >= 0.999) { - return ui; + let ui_coordinate = in.tex_coords * constants.ui_scale; + if (ui_coordinate.x < 0.0 || ui_coordinate.x > 1.0 || + ui_coordinate.y < 0.0 || ui_coordinate.y > 1.0) { + return srgb_to_linear(constants.background_color); } + let ui_linear = srgb_to_linear(textureSample(t_ui, s_diffuse, ui_coordinate)); + if (ui_linear.a >= 0.999) { + return ui_linear; + } + + // UI texture is premultiplied, we need to unpremultiply before blending + let ui_srgb = linear_to_srgb(unpremultiply(ui_linear)); + let viewport_coordinate = (in.tex_coords - constants.viewport_offset) * constants.viewport_scale; - - // Vello renders its values to an `RgbaUnorm` texture, but if we try to use this in the main rendering pipeline - // which renders to an `Srgb` surface, gamma mapping is applied twice. This converts back to linear to compensate. - let overlay_raw = textureSample(t_overlays, s_diffuse, viewport_coordinate); - let overlay = vec4(srgb_to_linear(overlay_raw.rgb), overlay_raw.a); - let viewport_raw = textureSample(t_viewport, s_diffuse, viewport_coordinate); - let viewport = vec4(srgb_to_linear(viewport_raw.rgb), viewport_raw.a); - - if (overlay.a < 0.001) { - return blend(ui, viewport); + if (viewport_coordinate.x < 0.0 || viewport_coordinate.x > 1.0 || + viewport_coordinate.y < 0.0 || viewport_coordinate.y > 1.0) { + return srgb_to_linear(constants.background_color); } - let composite = blend(overlay, viewport); - return blend(ui, composite); -} + let overlay_srgb = textureSample(t_overlays, s_diffuse, viewport_coordinate); + var viewport_srgb = textureSample(t_viewport, s_diffuse, viewport_coordinate); -fn srgb_to_linear(srgb: vec3) -> vec3 { - return select( - pow((srgb + 0.055) / 1.055, vec3(2.4)), - srgb / 12.92, - srgb <= vec3(0.04045) - ); + if (viewport_srgb.a < 0.001) { + viewport_srgb = constants.background_color; + } + + if (overlay_srgb.a < 0.001) { + if (ui_srgb.a < 0.001) { + return srgb_to_linear(viewport_srgb); + } else { + return srgb_to_linear(blend(ui_srgb, viewport_srgb)); + } + } + + let composite_linear = blend(srgb_to_linear(overlay_srgb), srgb_to_linear(viewport_srgb)); + + if (ui_srgb.a < 0.001) { + return composite_linear; + } + + return srgb_to_linear(blend(ui_srgb, linear_to_srgb(composite_linear))); } fn blend(fg: vec4, bg: vec4) -> vec4 { @@ -79,3 +89,25 @@ fn blend(fg: vec4, bg: vec4) -> vec4 { let rgb = fg.rgb * fg.a + bg.rgb * bg.a * (1.0 - fg.a); return vec4(rgb, a); } + +fn linear_to_srgb(in: vec4) -> vec4 { + let cutoff = vec3(0.0031308); + let lo = in.rgb * 12.92; + let hi = 1.055 * pow(max(in.rgb, vec3(0.0)), vec3(1.0/2.4)) - 0.055; + return vec4(select(lo, hi, in.rgb > cutoff), in.a); +} + +fn srgb_to_linear(in: vec4) -> vec4 { + let cutoff = vec3(0.04045); + let lo = in.rgb / 12.92; + let hi = pow((in.rgb + 0.055) / 1.055, vec3(2.4)); + return vec4(select(lo, hi, in.rgb > cutoff), in.a); +} + +fn unpremultiply(in: vec4) -> vec4 { + if (in.a > 0.0) { + return vec4((in.rgb / in.a), in.a); + } else { + return vec4(0.0); + } +} diff --git a/desktop/src/render/graphics_state.rs b/desktop/src/render/state.rs similarity index 84% rename from desktop/src/render/graphics_state.rs rename to desktop/src/render/state.rs index 85a961531..46a919b8b 100644 --- a/desktop/src/render/graphics_state.rs +++ b/desktop/src/render/state.rs @@ -1,13 +1,10 @@ -use graphene_std::Color; -use std::sync::Arc; -use wgpu_executor::WgpuExecutor; -use winit::window::Window; +use crate::window::Window; -pub(crate) use wgpu_executor::Context as WgpuContext; +use crate::wrapper::{Color, WgpuContext, WgpuExecutor}; #[derive(derivative::Derivative)] #[derivative(Debug)] -pub(crate) struct GraphicsState { +pub(crate) struct RenderState { surface: wgpu::Surface<'static>, context: WgpuContext, executor: WgpuExecutor, @@ -15,6 +12,8 @@ pub(crate) struct GraphicsState { render_pipeline: wgpu::RenderPipeline, transparent_texture: wgpu::Texture, sampler: wgpu::Sampler, + desired_width: u32, + desired_height: u32, viewport_scale: [f32; 2], viewport_offset: [f32; 2], viewport_texture: Option, @@ -25,11 +24,10 @@ pub(crate) struct GraphicsState { overlays_scene: Option, } -impl GraphicsState { - pub(crate) fn new(window: Arc, context: WgpuContext) -> Self { - let size = window.inner_size(); - - let surface = context.instance.create_surface(window).unwrap(); +impl RenderState { + pub(crate) fn new(window: &Window, context: WgpuContext) -> Self { + let size = window.surface_size(); + let surface = window.create_surface(context.instance.clone()); let surface_caps = surface.get_capabilities(&context.adapter); let surface_format = surface_caps.formats.iter().find(|f| f.is_srgb()).copied().unwrap_or(surface_caps.formats[0]); @@ -39,10 +37,13 @@ impl GraphicsState { format: surface_format, width: size.width, height: size.height, + #[cfg(not(target_os = "macos"))] present_mode: surface_caps.present_modes[0], + #[cfg(target_os = "macos")] + present_mode: wgpu::PresentMode::Immediate, alpha_mode: surface_caps.alpha_modes[0], view_formats: vec![], - desired_maximum_frame_latency: 2, + desired_maximum_frame_latency: 1, }; surface.configure(&context.device, &config); @@ -175,6 +176,8 @@ impl GraphicsState { render_pipeline, transparent_texture, sampler, + desired_width: size.width, + desired_height: size.height, viewport_scale: [1.0, 1.0], viewport_offset: [0.0, 0.0], viewport_texture: None, @@ -186,6 +189,13 @@ impl GraphicsState { } pub(crate) fn resize(&mut self, width: u32, height: u32) { + if width == self.desired_width && height == self.desired_height { + return; + } + + self.desired_width = width; + self.desired_height = height; + if width > 0 && height > 0 && (self.config.width != width || self.config.height != height) { self.config.width = width; self.config.height = height; @@ -234,26 +244,36 @@ impl GraphicsState { self.bind_overlays_texture(texture); } - pub(crate) fn render(&mut self) -> Result<(), wgpu::SurfaceError> { + pub(crate) fn render(&mut self, window: &Window) -> Result<(), RenderError> { + let ui_scale = if let Some(ui_texture) = &self.ui_texture + && (self.desired_width != ui_texture.width() || self.desired_height != ui_texture.height()) + { + Some([self.desired_width as f32 / ui_texture.width() as f32, self.desired_height as f32 / ui_texture.height() as f32]) + } else { + None + }; + if let Some(scene) = self.overlays_scene.take() { self.render_overlays(scene); } - let output = self.surface.get_current_texture()?; + let output = self.surface.get_current_texture().map_err(RenderError::SurfaceError)?; + let view = output.texture.create_view(&wgpu::TextureViewDescriptor::default()); let mut encoder = self.context.device.create_command_encoder(&wgpu::CommandEncoderDescriptor { label: Some("Render Encoder") }); { let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { - label: Some("Render Pass"), + label: Some("Graphite Composition Render Pass"), color_attachments: &[Some(wgpu::RenderPassColorAttachment { view: &view, resolve_target: None, ops: wgpu::Operations { - load: wgpu::LoadOp::Clear(wgpu::Color { r: 0.01, g: 0.01, b: 0.01, a: 1.0 }), + load: wgpu::LoadOp::Clear(wgpu::Color { r: 0.01, g: 0.01, b: 0.01, a: 1. }), store: wgpu::StoreOp::Store, }, + depth_slice: None, })], depth_stencil_attachment: None, occlusion_query_set: None, @@ -267,18 +287,26 @@ impl GraphicsState { bytemuck::bytes_of(&Constants { viewport_scale: self.viewport_scale, viewport_offset: self.viewport_offset, + ui_scale: ui_scale.unwrap_or([1., 1.]), + _pad: [0., 0.], + background_color: [0x22 as f32 / 0xff as f32, 0x22 as f32 / 0xff as f32, 0x22 as f32 / 0xff as f32, 1.], // #222222 }), ); if let Some(bind_group) = &self.bind_group { render_pass.set_bind_group(0, bind_group, &[]); - render_pass.draw(0..6, 0..1); // Draw 3 vertices for fullscreen triangle + render_pass.draw(0..3, 0..1); // Draw 3 vertices for fullscreen triangle } else { tracing::warn!("No bind group available - showing clear color only"); } } self.context.queue.submit(std::iter::once(encoder.finish())); + window.pre_present_notify(); output.present(); + if ui_scale.is_some() { + return Err(RenderError::OutdatedUITextureError); + } + Ok(()) } @@ -314,9 +342,17 @@ impl GraphicsState { } } +pub(crate) enum RenderError { + OutdatedUITextureError, + SurfaceError(wgpu::SurfaceError), +} + #[repr(C)] #[derive(Copy, Clone, bytemuck::Pod, bytemuck::Zeroable)] struct Constants { viewport_scale: [f32; 2], viewport_offset: [f32; 2], + ui_scale: [f32; 2], + _pad: [f32; 2], + background_color: [f32; 4], } diff --git a/desktop/src/window.rs b/desktop/src/window.rs new file mode 100644 index 000000000..1b049787b --- /dev/null +++ b/desktop/src/window.rs @@ -0,0 +1,190 @@ +use std::collections::HashMap; +use std::sync::Arc; +use winit::cursor::{CursorIcon, CustomCursor, CustomCursorSource}; +use winit::event_loop::ActiveEventLoop; +use winit::window::{Window as WinitWindow, WindowAttributes}; + +use crate::consts::APP_NAME; +use crate::event::AppEventScheduler; +use crate::wrapper::messages::MenuItem; + +pub(crate) trait NativeWindow { + fn init() {} + fn configure(attributes: WindowAttributes, event_loop: &dyn ActiveEventLoop) -> WindowAttributes; + fn new(window: &dyn WinitWindow, app_event_scheduler: AppEventScheduler) -> Self; + fn can_render(&self) -> bool { + true + } + fn update_menu(&self, _entries: Vec) {} + fn hide(&self) {} + fn hide_others(&self) {} + fn show_all(&self) {} +} + +#[cfg(target_os = "linux")] +mod linux; +#[cfg(target_os = "linux")] +use linux as native; + +#[cfg(target_os = "macos")] +mod mac; +#[cfg(target_os = "macos")] +use mac as native; + +#[cfg(target_os = "windows")] +mod win; +#[cfg(target_os = "windows")] +use win as native; + +pub(crate) struct Window { + winit_window: Arc, + #[allow(dead_code)] + native_handle: native::NativeWindowImpl, + custom_cursors: HashMap, + clipboard: window_clipboard::Clipboard, +} + +impl Window { + pub(crate) fn init() { + native::NativeWindowImpl::init(); + } + + pub(crate) fn new(event_loop: &dyn ActiveEventLoop, app_event_scheduler: AppEventScheduler) -> Self { + let mut attributes = WindowAttributes::default() + .with_title(APP_NAME) + .with_min_surface_size(winit::dpi::LogicalSize::new(400, 300)) + .with_surface_size(winit::dpi::LogicalSize::new(1200, 800)) + .with_resizable(true) + .with_visible(false) + .with_theme(Some(winit::window::Theme::Dark)); + + attributes = native::NativeWindowImpl::configure(attributes, event_loop); + + let winit_window = event_loop.create_window(attributes).unwrap(); + let native_handle = native::NativeWindowImpl::new(winit_window.as_ref(), app_event_scheduler); + let clipboard = unsafe { window_clipboard::Clipboard::connect(&winit_window) }.expect("failed to create clipboard"); + Self { + winit_window: winit_window.into(), + native_handle, + custom_cursors: HashMap::new(), + clipboard, + } + } + + pub(crate) fn show(&self) { + self.winit_window.set_visible(true); + self.winit_window.focus_window(); + } + + pub(crate) fn request_redraw(&self) { + self.winit_window.request_redraw(); + } + + pub(crate) fn create_surface(&self, instance: Arc) -> wgpu::Surface<'static> { + instance.create_surface(self.winit_window.clone()).unwrap() + } + + pub(crate) fn pre_present_notify(&self) { + self.winit_window.pre_present_notify(); + } + + pub(crate) fn can_render(&self) -> bool { + self.native_handle.can_render() + } + + pub(crate) fn surface_size(&self) -> winit::dpi::PhysicalSize { + self.winit_window.surface_size() + } + + pub(crate) fn scale_factor(&self) -> f64 { + self.winit_window.scale_factor() + } + + pub(crate) fn minimize(&self) { + self.winit_window.set_minimized(true); + } + + pub(crate) fn toggle_maximize(&self) { + self.winit_window.set_maximized(!self.winit_window.is_maximized()); + } + + pub(crate) fn is_maximized(&self) -> bool { + self.winit_window.is_maximized() + } + + pub(crate) fn is_fullscreen(&self) -> bool { + self.winit_window.fullscreen().is_some() + } + + pub(crate) fn start_drag(&self) { + let _ = self.winit_window.drag_window(); + } + + pub(crate) fn hide(&self) { + self.native_handle.hide(); + } + + pub(crate) fn hide_others(&self) { + self.native_handle.hide_others(); + } + + pub(crate) fn show_all(&self) { + self.native_handle.show_all(); + } + + pub(crate) fn set_cursor(&mut self, event_loop: &dyn ActiveEventLoop, cursor: Cursor) { + let cursor = match cursor { + Cursor::Icon(cursor_icon) => cursor_icon.into(), + Cursor::Custom(custom_cursor_source) => { + let custom_cursor = match self.custom_cursors.get(&custom_cursor_source).cloned() { + Some(cursor) => cursor, + None => { + let Ok(custom_cursor) = event_loop.create_custom_cursor(custom_cursor_source.clone()) else { + tracing::error!("Failed to create custom cursor"); + return; + }; + self.custom_cursors.insert(custom_cursor_source, custom_cursor.clone()); + custom_cursor + } + }; + custom_cursor.into() + } + }; + self.winit_window.set_cursor(cursor); + } + + pub(crate) fn update_menu(&self, entries: Vec) { + self.native_handle.update_menu(entries); + } + + pub(crate) fn clipboard_read(&self) -> Option { + match self.clipboard.read() { + Ok(data) => Some(data), + Err(e) => { + tracing::error!("Failed to read from clipboard: {e}"); + None + } + } + } + + pub(crate) fn clipboard_write(&mut self, data: String) { + if let Err(e) = self.clipboard.write(data) { + tracing::error!("Failed to write to clipboard: {e}") + } + } +} + +pub(crate) enum Cursor { + Icon(CursorIcon), + Custom(CustomCursorSource), +} +impl From for Cursor { + fn from(icon: CursorIcon) -> Self { + Cursor::Icon(icon) + } +} +impl From for Cursor { + fn from(custom: CustomCursorSource) -> Self { + Cursor::Custom(custom) + } +} diff --git a/desktop/src/window/linux.rs b/desktop/src/window/linux.rs new file mode 100644 index 000000000..f17928722 --- /dev/null +++ b/desktop/src/window/linux.rs @@ -0,0 +1,26 @@ +use winit::event_loop::ActiveEventLoop; +use winit::platform::wayland::ActiveEventLoopExtWayland; +use winit::platform::wayland::WindowAttributesWayland; +use winit::platform::x11::WindowAttributesX11; +use winit::window::{Window, WindowAttributes}; + +use crate::consts::{APP_ID, APP_NAME}; +use crate::event::AppEventScheduler; + +pub(super) struct NativeWindowImpl {} + +impl super::NativeWindow for NativeWindowImpl { + fn configure(attributes: WindowAttributes, event_loop: &dyn ActiveEventLoop) -> WindowAttributes { + if event_loop.is_wayland() { + let wayland_attributes = WindowAttributesWayland::default().with_name(APP_ID, "").with_prefer_csd(true); + attributes.with_platform_attributes(Box::new(wayland_attributes)) + } else { + let x11_attributes = WindowAttributesX11::default().with_name(APP_ID, APP_NAME); + attributes.with_platform_attributes(Box::new(x11_attributes)) + } + } + + fn new(_window: &dyn Window, _app_event_scheduler: AppEventScheduler) -> Self { + NativeWindowImpl {} + } +} diff --git a/desktop/src/window/mac.rs b/desktop/src/window/mac.rs new file mode 100644 index 000000000..4949159f3 --- /dev/null +++ b/desktop/src/window/mac.rs @@ -0,0 +1,49 @@ +use winit::event_loop::ActiveEventLoop; +use winit::platform::macos::WindowAttributesMacOS; +use winit::window::{Window, WindowAttributes}; + +use crate::event::AppEventScheduler; +use crate::wrapper::messages::MenuItem; + +mod app; +mod menu; + +pub(super) struct NativeWindowImpl { + menu: menu::Menu, +} + +impl super::NativeWindow for NativeWindowImpl { + fn init() { + app::init(); + } + + fn configure(attributes: WindowAttributes, _event_loop: &dyn ActiveEventLoop) -> WindowAttributes { + let mac_window = WindowAttributesMacOS::default() + .with_titlebar_transparent(true) + .with_fullsize_content_view(true) + .with_title_hidden(true); + attributes.with_platform_attributes(Box::new(mac_window)) + } + + fn new(_window: &dyn Window, app_event_scheduler: AppEventScheduler) -> Self { + let menu = menu::Menu::new(app_event_scheduler); + + NativeWindowImpl { menu } + } + + fn update_menu(&self, entries: Vec) { + self.menu.update(entries); + } + + fn hide(&self) { + app::hide(); + } + + fn hide_others(&self) { + app::hide_others(); + } + + fn show_all(&self) { + app::show_all(); + } +} diff --git a/desktop/src/window/mac/app.rs b/desktop/src/window/mac/app.rs new file mode 100644 index 000000000..03d9ff579 --- /dev/null +++ b/desktop/src/window/mac/app.rs @@ -0,0 +1,41 @@ +use objc2::{ClassType, define_class, msg_send}; +use objc2_app_kit::{NSApplication, NSEvent, NSEventType, NSResponder}; +use objc2_foundation::NSObject; + +define_class!( + #[unsafe(super(NSApplication, NSResponder, NSObject))] + #[name = "GraphiteApplication"] + pub(super) struct GraphiteApplication; + + impl GraphiteApplication { + #[unsafe(method(sendEvent:))] + fn send_event(&self, event: &NSEvent) { + // Route keyDown events straight to the key window to skip native menu shortcut handling. + if event.r#type() == NSEventType::KeyDown && let Some(key_window) = self.keyWindow() { + unsafe { msg_send![&key_window, sendEvent: event] } + } else { + unsafe { msg_send![super(self), sendEvent: event] } + } + } + } +); + +fn instance() -> objc2::rc::Retained { + unsafe { msg_send![GraphiteApplication::class(), sharedApplication] } +} + +pub(super) fn init() { + let _ = instance(); +} + +pub(super) fn hide() { + instance().hide(None); +} + +pub(super) fn hide_others() { + instance().hideOtherApplications(None); +} + +pub(super) fn show_all() { + instance().unhideAllApplications(None); +} diff --git a/desktop/src/window/mac/menu.rs b/desktop/src/window/mac/menu.rs new file mode 100644 index 000000000..41358b46b --- /dev/null +++ b/desktop/src/window/mac/menu.rs @@ -0,0 +1,146 @@ +use muda::Menu as MudaMenu; +use muda::accelerator::Accelerator; +use muda::{CheckMenuItem, IsMenuItem, MenuEvent, MenuItem, MenuItemKind, PredefinedMenuItem, Result, Submenu}; + +use crate::event::{AppEvent, AppEventScheduler}; +use crate::wrapper::messages::MenuItem as WrapperMenuItem; + +pub(super) struct Menu { + inner: MudaMenu, +} + +impl Menu { + pub(super) fn new(event_scheduler: AppEventScheduler) -> Self { + // TODO: Remove as much app submenu special handling as possible + let app_submenu = Submenu::with_items("", true, &[]).unwrap(); + + let menu = MudaMenu::new(); + menu.prepend(&app_submenu).unwrap(); + + menu.init_for_nsapp(); + + MenuEvent::set_event_handler(Some(move |event: MenuEvent| { + let mtm = objc2::MainThreadMarker::new().expect("only ever called from main thread"); + let is_shortcut_triggered = objc2_app_kit::NSApplication::sharedApplication(mtm) + .mainMenu() + .map(|m| m.highlightedItem().is_some()) + .unwrap_or_default(); + if is_shortcut_triggered { + tracing::error!("A keyboard input triggered a menu event. This is most likely a bug. Please report!"); + return; + } + + let id = event.id().0.clone(); + event_scheduler.schedule(AppEvent::MenuEvent { id }); + })); + + Menu { inner: menu } + } + + pub(super) fn update(&self, entries: Vec) { + let new_entries = menu_items_from_wrapper(entries); + let existing_entries = self.inner.items(); + + let mut new_entries_iter = new_entries.iter(); + let mut existing_entries_iter = existing_entries.iter(); + + let incremental_update_ok = std::iter::from_fn(move || match (existing_entries_iter.next(), new_entries_iter.next()) { + (Some(MenuItemKind::Submenu(old)), Some(MenuItemKind::Submenu(new))) if old.text() == new.text() => { + replace_children(old, new.items()); + Some(true) + } + (None, None) => None, + _ => Some(false), + }) + .all(|b| b); + + if !incremental_update_ok { + // Fallback to full replace + replace_children(&self.inner, new_entries); + } + } +} + +fn menu_items_from_wrapper(entries: Vec) -> Vec { + let mut menu_items: Vec = Vec::new(); + for entry in entries { + match entry { + WrapperMenuItem::Action { id, text, enabled, shortcut } => { + let accelerator = shortcut.map(|s| Accelerator::new(Some(s.modifiers), s.key)); + let item = MenuItem::with_id(id, text, enabled, accelerator); + menu_items.push(MenuItemKind::MenuItem(item)); + } + WrapperMenuItem::Checkbox { id, text, enabled, shortcut, checked } => { + let accelerator = shortcut.map(|s| Accelerator::new(Some(s.modifiers), s.key)); + let check = CheckMenuItem::with_id(id, text, enabled, checked, accelerator); + menu_items.push(MenuItemKind::Check(check)); + } + WrapperMenuItem::SubMenu { text: name, items, .. } => { + let items = menu_items_from_wrapper(items); + let items = items.iter().map(|item| menu_item_kind_to_dyn(item)).collect::>(); + let submenu = Submenu::with_items(name, true, &items).unwrap(); + menu_items.push(MenuItemKind::Submenu(submenu)); + } + WrapperMenuItem::Separator => { + let separator = PredefinedMenuItem::separator(); + menu_items.push(MenuItemKind::Predefined(separator)); + } + } + } + menu_items +} + +fn menu_item_kind_to_dyn(item: &MenuItemKind) -> &dyn IsMenuItem { + match item { + MenuItemKind::MenuItem(i) => i, + MenuItemKind::Submenu(i) => i, + MenuItemKind::Predefined(i) => i, + MenuItemKind::Check(i) => i, + MenuItemKind::Icon(i) => i, + } +} + +fn replace_children<'a, T: Into>>(menu: T, new_items: Vec) { + let menu: MenuContainer = menu.into(); + let items = menu.items(); + for item in items.iter() { + menu.remove(menu_item_kind_to_dyn(item)).unwrap(); + } + let items = new_items.iter().map(|item| menu_item_kind_to_dyn(item)).collect::>(); + menu.append_items(items.as_ref()).unwrap(); +} + +enum MenuContainer<'a> { + Menu(&'a MudaMenu), + Submenu(&'a Submenu), +} +impl<'a> MenuContainer<'a> { + fn items(&self) -> Vec { + match self { + MenuContainer::Menu(menu) => menu.items(), + MenuContainer::Submenu(submenu) => submenu.items(), + } + } + fn remove(&self, item: &dyn IsMenuItem) -> Result<()> { + match self { + MenuContainer::Menu(menu) => menu.remove(item), + MenuContainer::Submenu(submenu) => submenu.remove(item), + } + } + fn append_items(&self, items: &[&dyn IsMenuItem]) -> Result<()> { + match self { + MenuContainer::Menu(menu) => menu.append_items(items), + MenuContainer::Submenu(submenu) => submenu.append_items(items), + } + } +} +impl<'a> From<&'a MudaMenu> for MenuContainer<'a> { + fn from(menu: &'a MudaMenu) -> Self { + MenuContainer::Menu(menu) + } +} +impl<'a> From<&'a Submenu> for MenuContainer<'a> { + fn from(submenu: &'a Submenu) -> Self { + MenuContainer::Submenu(submenu) + } +} diff --git a/desktop/src/window/win.rs b/desktop/src/window/win.rs new file mode 100644 index 000000000..788f0c5b9 --- /dev/null +++ b/desktop/src/window/win.rs @@ -0,0 +1,43 @@ +use windows::Win32::System::Com::{COINIT_APARTMENTTHREADED, CoInitializeEx}; +use windows::Win32::UI::Shell::SetCurrentProcessExplicitAppUserModelID; +use windows::core::HSTRING; +use winit::event_loop::ActiveEventLoop; +use winit::window::{Window, WindowAttributes}; + +use crate::consts::APP_ID; +use crate::event::AppEventScheduler; + +pub(super) struct NativeWindowImpl { + native_handle: native_handle::NativeWindowHandle, +} + +impl super::NativeWindow for NativeWindowImpl { + fn init() { + let app_id = HSTRING::from(APP_ID); + unsafe { + let _ = CoInitializeEx(None, COINIT_APARTMENTTHREADED).ok(); + SetCurrentProcessExplicitAppUserModelID(&app_id).ok(); + } + } + + fn configure(attributes: WindowAttributes, _event_loop: &dyn ActiveEventLoop) -> WindowAttributes { + attributes + } + + fn new(window: &dyn Window, _app_event_scheduler: AppEventScheduler) -> Self { + let native_handle = native_handle::NativeWindowHandle::new(window); + NativeWindowImpl { native_handle } + } + + fn can_render(&self) -> bool { + self.native_handle.can_render() + } +} + +impl Drop for NativeWindowImpl { + fn drop(&mut self) { + self.native_handle.destroy(); + } +} + +mod native_handle; diff --git a/desktop/src/window/win/native_handle.rs b/desktop/src/window/win/native_handle.rs new file mode 100644 index 000000000..84fd9a3bc --- /dev/null +++ b/desktop/src/window/win/native_handle.rs @@ -0,0 +1,368 @@ +//! Implements a Windows-specific custom window frame (no titlebar, but native boarder, shadows and resize). +//! Look and feel should be similar to a standard window. +//! +//! Implementation notes: +//! - Windows that don't use standard decorations don't get native resize handles or shadows by default. +//! - We implement resize handles (outside the main window) by creating an invisible "helper" window that +//! is a little larger than the main window and positioned on top of it. The helper window does hit-testing +//! and triggers native resize operations on the main window when the user clicks and drags a resize area. +//! - The helper window is a invisible window that never activates, so it doesn't steal focus from the main window. +//! - The main window needs to update the helper window's position and size whenever it moves or resizes. + +use std::sync::{Arc, Mutex, OnceLock}; +use std::time::Instant; +use wgpu::rwh::{HasWindowHandle, RawWindowHandle}; +use windows::Win32::Foundation::*; +use windows::Win32::Graphics::Dwm::*; +use windows::Win32::Graphics::Gdi::*; +use windows::Win32::System::LibraryLoader::GetModuleHandleW; +use windows::Win32::UI::Controls::MARGINS; +use windows::Win32::UI::HiDpi::*; +use windows::Win32::UI::WindowsAndMessaging::*; +use windows::core::PCWSTR; +use winit::window::Window; + +#[derive(Default)] +struct NativeWindowState { + can_render: bool, + can_render_since: Option, +} + +#[derive(Clone)] +pub(super) struct NativeWindowHandle { + main: HWND, + helper: HWND, + prev_window_message_handler: isize, + state: Arc>, +} +impl NativeWindowHandle { + pub(super) fn new(window: &dyn Window) -> NativeWindowHandle { + // Extract Win32 HWND from winit. + let main = match window.window_handle().expect("No window handle").as_raw() { + RawWindowHandle::Win32(h) => HWND(h.hwnd.get() as *mut std::ffi::c_void), + _ => panic!("Not a Win32 window"), + }; + + // Register the invisible helper (resize ring) window class. + unsafe { ensure_helper_class() }; + + // Create the helper as a popup tool window that never activates. + // WS_EX_NOACTIVATE keeps focus on the main window; WS_EX_TOOLWINDOW hides it from Alt+Tab. + // https://learn.microsoft.com/windows/win32/winmsg/extended-window-styles + let ex = WS_EX_NOACTIVATE | WS_EX_TOOLWINDOW; + let style = WS_POPUP; + let helper = unsafe { + CreateWindowExW( + ex, + PCWSTR(HELPER_CLASS_NAME.encode_utf16().collect::>().as_ptr()), + PCWSTR::null(), + style, + 0, + 0, + 0, + 0, + None, + None, + HINSTANCE(std::ptr::null_mut()), + // Pass the main window's HWND to WM_NCCREATE so the helper can store it. + Some(&main as *const _ as _), + ) + } + .expect("CreateWindowExW failed"); + + // Subclass the main window. + // https://learn.microsoft.com/windows/win32/api/winuser/nf-winuser-setwindowlongptra + let prev_window_message_handler = unsafe { SetWindowLongPtrW(main, GWLP_WNDPROC, main_window_handle_message as isize) }; + if prev_window_message_handler == 0 { + let _ = unsafe { DestroyWindow(helper) }; + panic!("SetWindowLongPtrW failed"); + } + + let native_handle = NativeWindowHandle { + main, + helper, + prev_window_message_handler, + state: Arc::new(Mutex::new(NativeWindowState::default())), + }; + registry::insert(&native_handle); + + // Place the helper over the main window and show it without activation. + unsafe { position_helper(main, helper) }; + let _ = unsafe { ShowWindow(helper, SW_SHOWNOACTIVATE) }; + + // DwmExtendFrameIntoClientArea is needed to keep native window frame (but no titlebar). + // https://learn.microsoft.com/windows/win32/api/dwmapi/nf-dwmapi-dwmextendframeintoclientarea + // https://learn.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute + let mut boarder_size: u32 = 1; + let _ = unsafe { DwmGetWindowAttribute(main, DWMWA_VISIBLE_FRAME_BORDER_THICKNESS, &mut boarder_size as *mut _ as *mut _, size_of::() as u32) }; + let margins = MARGINS { + cxLeftWidth: 0, + cxRightWidth: 0, + cyBottomHeight: 0, + cyTopHeight: boarder_size as i32, + }; + let _ = unsafe { DwmExtendFrameIntoClientArea(main, &margins) }; + + let hinst = unsafe { GetModuleHandleW(None) }.unwrap(); + + // Set taskbar icon + if let Ok(big) = unsafe { LoadImageW(hinst, PCWSTR(1usize as *const u16), IMAGE_ICON, GetSystemMetrics(SM_CXICON), GetSystemMetrics(SM_CYICON), LR_SHARED) } { + unsafe { SetClassLongPtrW(main, GCLP_HICON, big.0 as isize) }; + unsafe { SendMessageW(main, WM_SETICON, WPARAM(ICON_BIG as usize), LPARAM(big.0 as isize)) }; + } + + // Set window icon + if let Ok(small) = unsafe { LoadImageW(hinst, PCWSTR(1usize as *const u16), IMAGE_ICON, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), LR_SHARED) } { + unsafe { SetClassLongPtrW(main, GCLP_HICONSM, small.0 as isize) }; + unsafe { SendMessageW(main, WM_SETICON, WPARAM(ICON_SMALL as usize), LPARAM(small.0 as isize)) }; + } + + // Force window update + let _ = unsafe { SetWindowPos(main, None, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER) }; + + native_handle + } + + pub(super) fn destroy(&self) { + registry::remove_by_main(self.main); + + // Undo subclassing and destroy the helper window. + let _ = unsafe { SetWindowLongPtrW(self.main, GWLP_WNDPROC, self.prev_window_message_handler) }; + if !self.helper.is_invalid() { + let _ = unsafe { DestroyWindow(self.helper) }; + } + } + + // Rendering should be disabled when window is minimized + // Rendering also needs to be disabled during minimize and restore animations + // Reenabling rendering is done after a small delay to account for restore animation + // TODO: Find a cleaner solution that doesn't depend on a timeout + pub(super) fn can_render(&self) -> bool { + let can_render = !unsafe { IsIconic(self.main).into() } && unsafe { IsWindowVisible(self.main).into() }; + let Ok(mut state) = self.state.lock() else { + tracing::error!("Failed to lock NativeWindowState"); + return true; + }; + match (can_render, state.can_render, state.can_render_since) { + (true, false, None) => { + state.can_render_since = Some(Instant::now()); + } + (true, false, Some(can_render_since)) if can_render_since.elapsed().as_millis() > 50 => { + state.can_render = true; + state.can_render_since = None; + } + (false, true, _) => { + state.can_render = false; + } + _ => {} + } + state.can_render + } +} + +mod registry { + use std::cell::RefCell; + use windows::Win32::Foundation::HWND; + + use super::NativeWindowHandle; + + thread_local! { + static STORE: RefCell> = RefCell::new(Vec::new()); + } + + pub(super) fn find_by_main(main: HWND) -> Option { + STORE.with_borrow(|vec| vec.iter().find(|h| h.main == main).cloned()) + } + pub(super) fn remove_by_main(main: HWND) { + STORE.with_borrow_mut(|vec| { + vec.retain(|h| h.main != main); + }); + } + pub(super) fn insert(handle: &NativeWindowHandle) { + STORE.with_borrow_mut(|vec| { + vec.push(handle.clone()); + }); + } +} + +const HELPER_CLASS_NAME: &str = "Helper\0"; + +static HELPER_CLASS_LOCK: OnceLock = OnceLock::new(); +unsafe fn ensure_helper_class() { + // Register a window class for the invisible resize helper. + let _ = *HELPER_CLASS_LOCK.get_or_init(|| { + let class_name: Vec = HELPER_CLASS_NAME.encode_utf16().collect(); + let wc = WNDCLASSW { + style: CS_HREDRAW | CS_VREDRAW, + lpfnWndProc: Some(helper_window_handle_message), + hInstance: unsafe { GetModuleHandleW(None).unwrap().into() }, + hIcon: HICON::default(), + hCursor: unsafe { LoadCursorW(HINSTANCE(std::ptr::null_mut()), IDC_ARROW).unwrap() }, + // No painting; the ring is invisible. + hbrBackground: HBRUSH::default(), + lpszClassName: PCWSTR(class_name.as_ptr()), + ..Default::default() + }; + unsafe { RegisterClassW(&wc) } + }); +} + +// Main window message handler, called on the UI thread for every message the main window receives. +unsafe extern "system" fn main_window_handle_message(hwnd: HWND, msg: u32, wparam: WPARAM, lparam: LPARAM) -> LRESULT { + if msg == WM_NCCALCSIZE && wparam.0 != 0 { + // When maximized, shrink to visible frame so content doesn't extend beyond it. + if unsafe { IsZoomed(hwnd).as_bool() } { + let params = unsafe { &mut *(lparam.0 as *mut NCCALCSIZE_PARAMS) }; + + let dpi = unsafe { GetDpiForWindow(hwnd) }; + let size = unsafe { GetSystemMetricsForDpi(SM_CXSIZEFRAME, dpi) }; + let pad = unsafe { GetSystemMetricsForDpi(SM_CXPADDEDBORDER, dpi) }; + let inset = (size + pad) as i32; + + params.rgrc[0].left += inset; + params.rgrc[0].top += inset; + params.rgrc[0].right -= inset; + params.rgrc[0].bottom -= inset; + } + + // Return 0 to to tell Windows to skip the default non-client area calculation and drawing. + return LRESULT(0); + } + + let Some(handle) = registry::find_by_main(hwnd) else { + return unsafe { DefWindowProcW(hwnd, msg, wparam, lparam) }; + }; + + match msg { + // Keep the invisible resize helper in sync with moves/resizes/visibility. + WM_MOVE | WM_MOVING | WM_SIZE | WM_SIZING | WM_WINDOWPOSCHANGED | WM_SHOWWINDOW => { + if msg == WM_SHOWWINDOW { + if wparam.0 == 0 { + let _ = unsafe { ShowWindow(handle.helper, SW_HIDE) }; + } else { + let _ = unsafe { ShowWindow(handle.helper, SW_SHOWNOACTIVATE) }; + } + } + unsafe { position_helper(hwnd, handle.helper) }; + } + + // If the main window is destroyed, destroy the helper too. + // Should only be needed if windows forcefully destroys the main window. + WM_DESTROY => { + let _ = unsafe { DestroyWindow(handle.helper) }; + } + + _ => {} + } + + // Ensure the previous window message handler is not null. + assert_ne!(handle.prev_window_message_handler, 0); + + // Call the previous window message handler, this is a standard subclassing pattern. + let prev_window_message_handler_fn_ptr: *const () = std::ptr::without_provenance(handle.prev_window_message_handler as usize); + let prev_window_message_handler_fn = unsafe { std::mem::transmute::<_, _>(prev_window_message_handler_fn_ptr) }; + unsafe { CallWindowProcW(Some(prev_window_message_handler_fn), hwnd, msg, wparam, lparam) } +} + +// Helper window message handler, called on the UI thread for every message the helper window receives. +unsafe extern "system" fn helper_window_handle_message(hwnd: HWND, msg: u32, wparam: WPARAM, lparam: LPARAM) -> LRESULT { + match msg { + // Helper window creation, should be the first message that the helper window receives. + WM_NCCREATE => { + // Main window HWND is provided when creating the helper window with `CreateWindowExW` + // Save main window HWND in GWLP_USERDATA so we can extract it later + let crate_struct = lparam.0 as *const CREATESTRUCTW; + let create_param = unsafe { (*crate_struct).lpCreateParams as *const HWND }; + unsafe { SetWindowLongPtrW(hwnd, GWLP_USERDATA, (*create_param).0 as isize) }; + return LRESULT(1); + } + + // Invisible; no background erase. + WM_ERASEBKGND => return LRESULT(1), + + // Tell windows what resize areas we are hitting, this is used to decide what cursor to show. + WM_NCHITTEST => { + let ht = unsafe { calculate_hit(hwnd, lparam) }; + return LRESULT(ht as isize); + } + + // This starts the system's resize loop for the main window if a resize area is hit. + // Helper window button down translates to SC_SIZE | WMSZ_* on the main window. + WM_NCLBUTTONDOWN | WM_NCRBUTTONDOWN | WM_NCMBUTTONDOWN => { + // Extract the main window's HWND from GWLP_USERDATA that we saved earlier. + let main_ptr = unsafe { GetWindowLongPtrW(hwnd, GWLP_USERDATA) } as *mut std::ffi::c_void; + let main = HWND(main_ptr); + if unsafe { IsWindow(main).as_bool() } { + let Some(wmsz) = (unsafe { calculate_resize_direction(hwnd, lparam) }) else { + return LRESULT(0); + }; + + // Ensure that the main window can receive WM_SYSCOMMAND. + let _ = unsafe { SetForegroundWindow(main) }; + + // Start sizing on the main window in the calculated direction. (SC_SIZE + WMSZ_*) + let _ = unsafe { PostMessageW(main, WM_SYSCOMMAND, WPARAM((SC_SIZE + wmsz) as usize), lparam) }; + } + return LRESULT(0); + } + + // Never activate the helper window, allows all inputs that don't hit the resize areas to pass through. + WM_MOUSEACTIVATE => return LRESULT(MA_NOACTIVATE as isize), + _ => {} + } + unsafe { DefWindowProcW(hwnd, msg, wparam, lparam) } +} + +const RESIZE_BAND_THICKNESS: i32 = 8; + +// Position the helper window to match the main window's location and size (plus the resize band size). +unsafe fn position_helper(main: HWND, helper: HWND) { + let mut r = RECT::default(); + let _ = unsafe { GetWindowRect(main, &mut r) }; + + let x = r.left - RESIZE_BAND_THICKNESS; + let y = r.top - RESIZE_BAND_THICKNESS; + let w = (r.right - r.left) + RESIZE_BAND_THICKNESS * 2; + let h = (r.bottom - r.top) + RESIZE_BAND_THICKNESS * 2; + + let _ = unsafe { SetWindowPos(helper, main, x, y, w, h, SWP_NOACTIVATE | SWP_NOZORDER | SWP_NOOWNERZORDER | SWP_NOSENDCHANGING) }; +} + +unsafe fn calculate_hit(helper: HWND, lparam: LPARAM) -> u32 { + let x = (lparam.0 & 0xFFFF) as i16 as u32; + let y = ((lparam.0 >> 16) & 0xFFFF) as i16 as u32; + + let mut r = RECT::default(); + let _ = unsafe { GetWindowRect(helper, &mut r) }; + + let on_top = y < (r.top + RESIZE_BAND_THICKNESS) as u32; + let on_right = x >= (r.right - RESIZE_BAND_THICKNESS) as u32; + let on_bottom = y >= (r.bottom - RESIZE_BAND_THICKNESS) as u32; + let on_left = x < (r.left + RESIZE_BAND_THICKNESS) as u32; + + match (on_top, on_right, on_bottom, on_left) { + (true, _, _, true) => HTTOPLEFT, + (true, true, _, _) => HTTOPRIGHT, + (_, true, true, _) => HTBOTTOMRIGHT, + (_, _, true, true) => HTBOTTOMLEFT, + (true, _, _, _) => HTTOP, + (_, true, _, _) => HTRIGHT, + (_, _, true, _) => HTBOTTOM, + (_, _, _, true) => HTLEFT, + _ => HTTRANSPARENT as u32, + } +} + +unsafe fn calculate_resize_direction(helper: HWND, lparam: LPARAM) -> Option { + match unsafe { calculate_hit(helper, lparam) } { + HTLEFT => Some(WMSZ_LEFT), + HTRIGHT => Some(WMSZ_RIGHT), + HTTOP => Some(WMSZ_TOP), + HTBOTTOM => Some(WMSZ_BOTTOM), + HTTOPLEFT => Some(WMSZ_TOPLEFT), + HTTOPRIGHT => Some(WMSZ_TOPRIGHT), + HTBOTTOMLEFT => Some(WMSZ_BOTTOMLEFT), + HTBOTTOMRIGHT => Some(WMSZ_BOTTOMRIGHT), + _ => None, + } +} diff --git a/desktop/wrapper/Cargo.toml b/desktop/wrapper/Cargo.toml new file mode 100644 index 000000000..de8b0e239 --- /dev/null +++ b/desktop/wrapper/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "graphite-desktop-wrapper" +version = "0.1.0" +description = "Graphite Desktop Wrapper" +authors = ["Graphite Authors "] +license = "Apache-2.0" +repository = "" +edition = "2024" +rust-version = "1.87" + +[features] +gpu = ["graphite-editor/gpu", "graphene-std/shader-nodes"] + +[dependencies] +# Local dependencies +graphite-editor = { path = "../../editor", features = [ + "gpu", +] } +graphene-std = { workspace = true } +graph-craft = { workspace = true } +wgpu-executor = { workspace = true } + +wgpu = { workspace = true } +thiserror = { workspace = true } +futures = { workspace = true } +tracing = { workspace = true } +dirs = { workspace = true } +ron = { workspace = true} +vello = { workspace = true } +image = { workspace = true } +serde = { workspace = true } +serde_json = { workspace = true } +keyboard-types = { workspace = true } +base64 = { workspace = true } diff --git a/desktop/wrapper/src/handle_desktop_wrapper_message.rs b/desktop/wrapper/src/handle_desktop_wrapper_message.rs new file mode 100644 index 000000000..b1857e9f8 --- /dev/null +++ b/desktop/wrapper/src/handle_desktop_wrapper_message.rs @@ -0,0 +1,176 @@ +use graphene_std::Color; +use graphene_std::raster::Image; +use graphite_editor::messages::app_window::app_window_message_handler::AppWindowPlatform; +use graphite_editor::messages::clipboard::utility_types::ClipboardContentRaw; +use graphite_editor::messages::prelude::*; + +use super::DesktopWrapperMessageDispatcher; +use super::messages::{DesktopFrontendMessage, DesktopWrapperMessage, EditorMessage, OpenFileDialogContext, Platform, SaveFileDialogContext}; + +pub(super) fn handle_desktop_wrapper_message(dispatcher: &mut DesktopWrapperMessageDispatcher, message: DesktopWrapperMessage) { + match message { + DesktopWrapperMessage::FromWeb(message) => { + dispatcher.queue_editor_message(*message); + } + DesktopWrapperMessage::Input(message) => { + dispatcher.queue_editor_message(EditorMessage::InputPreprocessor(message)); + } + DesktopWrapperMessage::OpenFileDialogResult { path, content, context } => match context { + OpenFileDialogContext::Document => { + dispatcher.queue_desktop_wrapper_message(DesktopWrapperMessage::OpenDocument { path, content }); + } + OpenFileDialogContext::Import => { + dispatcher.queue_desktop_wrapper_message(DesktopWrapperMessage::ImportFile { path, content }); + } + }, + DesktopWrapperMessage::SaveFileDialogResult { path, context } => match context { + SaveFileDialogContext::Document { document_id, content } => { + dispatcher.respond(DesktopFrontendMessage::WriteFile { path: path.clone(), content }); + dispatcher.queue_editor_message(EditorMessage::Portfolio(PortfolioMessage::DocumentPassMessage { + document_id, + message: DocumentMessage::SavedDocument { path: Some(path) }, + })); + } + SaveFileDialogContext::File { content } => { + dispatcher.respond(DesktopFrontendMessage::WriteFile { path, content }); + } + }, + DesktopWrapperMessage::OpenFile { path, content } => { + let extension = path.extension().and_then(|s| s.to_str()).unwrap_or_default().to_lowercase(); + match extension.as_str() { + "graphite" => { + dispatcher.queue_desktop_wrapper_message(DesktopWrapperMessage::OpenDocument { path, content }); + } + _ => { + dispatcher.queue_desktop_wrapper_message(DesktopWrapperMessage::ImportFile { path, content }); + } + } + } + DesktopWrapperMessage::OpenDocument { path, content } => { + let Ok(content) = String::from_utf8(content) else { + tracing::warn!("Document file is invalid: {}", path.display()); + return; + }; + + let message = PortfolioMessage::OpenDocumentFile { + document_name: None, + document_path: Some(path), + document_serialized_content: content, + }; + dispatcher.queue_editor_message(message); + } + DesktopWrapperMessage::ImportFile { path, content } => { + let extension = path.extension().and_then(|s| s.to_str()).unwrap_or_default().to_lowercase(); + match extension.as_str() { + "svg" => { + dispatcher.queue_desktop_wrapper_message(DesktopWrapperMessage::ImportSvg { path, content }); + } + _ => { + dispatcher.queue_desktop_wrapper_message(DesktopWrapperMessage::ImportImage { path, content }); + } + } + } + DesktopWrapperMessage::ImportSvg { path, content } => { + let Ok(content) = String::from_utf8(content) else { + tracing::warn!("Svg file is invalid: {}", path.display()); + return; + }; + + let message = PortfolioMessage::PasteSvg { + name: path.file_stem().map(|s| s.to_string_lossy().to_string()), + svg: content, + mouse: None, + parent_and_insert_index: None, + }; + dispatcher.queue_editor_message(message); + } + DesktopWrapperMessage::ImportImage { path, content } => { + let name = path.file_stem().and_then(|s| s.to_str()).map(|s| s.to_string()); + let extension = path.extension().and_then(|s| s.to_str()).unwrap_or_default().to_lowercase(); + let Some(image_format) = image::ImageFormat::from_extension(&extension) else { + tracing::warn!("Unsupported file type: {}", path.display()); + return; + }; + let reader = image::ImageReader::with_format(std::io::Cursor::new(content), image_format); + let Ok(image) = reader.decode() else { + tracing::error!("Failed to decode image: {}", path.display()); + return; + }; + let width = image.width(); + let height = image.height(); + + // TODO: Handle Image formats with more than 8 bits per channel + let image_data = image.to_rgba8(); + let image = Image::::from_image_data(image_data.as_raw(), width, height); + let message = PortfolioMessage::PasteImage { + name, + image, + mouse: None, + parent_and_insert_index: None, + }; + dispatcher.queue_editor_message(message); + } + DesktopWrapperMessage::PollNodeGraphEvaluation => dispatcher.poll_node_graph_evaluation(), + DesktopWrapperMessage::UpdatePlatform(platform) => { + let platform = match platform { + Platform::Windows => AppWindowPlatform::Windows, + Platform::Mac => AppWindowPlatform::Mac, + Platform::Linux => AppWindowPlatform::Linux, + }; + let message = AppWindowMessage::UpdatePlatform { platform }; + dispatcher.queue_editor_message(message); + } + DesktopWrapperMessage::UpdateMaximized { maximized } => { + let message = FrontendMessage::UpdateMaximized { maximized }; + dispatcher.queue_editor_message(message); + } + DesktopWrapperMessage::UpdateFullscreen { fullscreen } => { + let message = FrontendMessage::UpdateFullscreen { fullscreen }; + dispatcher.queue_editor_message(message); + } + DesktopWrapperMessage::LoadDocument { + id, + document, + to_front, + select_after_open, + } => { + let message = PortfolioMessage::OpenDocumentFileWithId { + document_id: id, + document_name: Some(document.name), + document_path: document.path, + document_serialized_content: document.content, + document_is_auto_saved: true, + document_is_saved: document.is_saved, + to_front, + select_after_open, + }; + dispatcher.queue_editor_message(message); + } + DesktopWrapperMessage::SelectDocument { id } => { + let message = PortfolioMessage::SelectDocument { document_id: id }; + dispatcher.queue_editor_message(message); + } + DesktopWrapperMessage::LoadPreferences { preferences } => { + let message = PreferencesMessage::Load { preferences }; + dispatcher.queue_editor_message(message); + } + #[cfg(target_os = "macos")] + DesktopWrapperMessage::MenuEvent { id } => { + if let Some(message) = crate::utils::menu::parse_item_path(id) { + dispatcher.queue_editor_message(message); + } else { + tracing::error!("Received a malformed MenuEvent id"); + } + } + #[cfg(not(target_os = "macos"))] + DesktopWrapperMessage::MenuEvent { id: _ } => {} + DesktopWrapperMessage::ClipboardReadResult { content } => { + if let Some(content) = content { + let message = ClipboardMessage::ReadClipboard { + content: ClipboardContentRaw::Text(content), + }; + dispatcher.queue_editor_message(message); + } + } + } +} diff --git a/desktop/wrapper/src/intercept_editor_message.rs b/desktop/wrapper/src/intercept_editor_message.rs new file mode 100644 index 000000000..933de19b9 --- /dev/null +++ b/desktop/wrapper/src/intercept_editor_message.rs @@ -0,0 +1,7 @@ +use super::DesktopWrapperMessageDispatcher; +use super::messages::EditorMessage; + +pub(super) fn intercept_editor_message(_dispatcher: &mut DesktopWrapperMessageDispatcher, message: EditorMessage) -> Option { + // TODO: remove if it turns out to be unnecessary + Some(message) +} diff --git a/desktop/wrapper/src/intercept_frontend_message.rs b/desktop/wrapper/src/intercept_frontend_message.rs new file mode 100644 index 000000000..764f11fdd --- /dev/null +++ b/desktop/wrapper/src/intercept_frontend_message.rs @@ -0,0 +1,163 @@ +use std::path::PathBuf; + +use graphite_editor::messages::prelude::FrontendMessage; + +use super::DesktopWrapperMessageDispatcher; +use super::messages::{DesktopFrontendMessage, Document, FileFilter, OpenFileDialogContext, SaveFileDialogContext}; + +pub(super) fn intercept_frontend_message(dispatcher: &mut DesktopWrapperMessageDispatcher, message: FrontendMessage) -> Option { + match message { + FrontendMessage::RenderOverlays { context } => { + dispatcher.respond(DesktopFrontendMessage::UpdateOverlays(context.take_scene())); + } + FrontendMessage::TriggerOpenDocument => { + dispatcher.respond(DesktopFrontendMessage::OpenFileDialog { + title: "Open Document".to_string(), + filters: vec![FileFilter { + name: "Graphite".to_string(), + extensions: vec!["graphite".to_string()], + }], + context: OpenFileDialogContext::Document, + }); + } + FrontendMessage::TriggerImport => { + dispatcher.respond(DesktopFrontendMessage::OpenFileDialog { + title: "Import File".to_string(), + filters: vec![ + FileFilter { + name: "Svg".to_string(), + extensions: vec!["svg".to_string()], + }, + FileFilter { + name: "Image".to_string(), + extensions: vec!["png".to_string(), "jpg".to_string(), "jpeg".to_string(), "bmp".to_string()], + }, + ], + context: OpenFileDialogContext::Import, + }); + } + FrontendMessage::TriggerSaveDocument { document_id, name, path, content } => { + if let Some(path) = path { + dispatcher.respond(DesktopFrontendMessage::WriteFile { path, content }); + } else { + dispatcher.respond(DesktopFrontendMessage::SaveFileDialog { + title: "Save Document".to_string(), + default_filename: name, + default_folder: path.and_then(|p| p.parent().map(PathBuf::from)), + filters: vec![FileFilter { + name: "Graphite".to_string(), + extensions: vec!["graphite".to_string()], + }], + context: SaveFileDialogContext::Document { document_id, content }, + }); + } + } + FrontendMessage::TriggerSaveFile { name, content } => { + dispatcher.respond(DesktopFrontendMessage::SaveFileDialog { + title: "Save File".to_string(), + default_filename: name, + default_folder: None, + filters: Vec::new(), + context: SaveFileDialogContext::File { content }, + }); + } + FrontendMessage::TriggerVisitLink { url } => { + dispatcher.respond(DesktopFrontendMessage::OpenUrl(url)); + } + FrontendMessage::UpdateViewportPhysicalBounds { x, y, width, height } => { + dispatcher.respond(DesktopFrontendMessage::UpdateViewportPhysicalBounds { x, y, width, height }); + } + FrontendMessage::UpdateUIScale { scale } => { + dispatcher.respond(DesktopFrontendMessage::UpdateUIScale { scale }); + return Some(FrontendMessage::UpdateUIScale { scale }); + } + FrontendMessage::TriggerPersistenceWriteDocument { document_id, document, details } => { + dispatcher.respond(DesktopFrontendMessage::PersistenceWriteDocument { + id: document_id, + document: Document { + name: details.name, + path: details.path, + content: document, + is_saved: details.is_saved, + }, + }); + } + FrontendMessage::TriggerPersistenceRemoveDocument { document_id } => { + dispatcher.respond(DesktopFrontendMessage::PersistenceDeleteDocument { id: document_id }); + } + FrontendMessage::UpdateActiveDocument { document_id } => { + dispatcher.respond(DesktopFrontendMessage::PersistenceUpdateCurrentDocument { id: document_id }); + + // Forward this to update the UI + return Some(FrontendMessage::UpdateActiveDocument { document_id }); + } + FrontendMessage::UpdateOpenDocumentsList { open_documents } => { + dispatcher.respond(DesktopFrontendMessage::PersistenceUpdateDocumentsList { + ids: open_documents.iter().map(|document| document.id).collect(), + }); + + // Forward this to update the UI + return Some(FrontendMessage::UpdateOpenDocumentsList { open_documents }); + } + FrontendMessage::TriggerLoadFirstAutoSaveDocument => { + dispatcher.respond(DesktopFrontendMessage::PersistenceLoadCurrentDocument); + } + FrontendMessage::TriggerLoadRestAutoSaveDocuments => { + dispatcher.respond(DesktopFrontendMessage::PersistenceLoadRemainingDocuments); + } + FrontendMessage::TriggerOpenLaunchDocuments => { + dispatcher.respond(DesktopFrontendMessage::OpenLaunchDocuments); + } + FrontendMessage::TriggerSavePreferences { preferences } => { + dispatcher.respond(DesktopFrontendMessage::PersistenceWritePreferences { preferences }); + } + FrontendMessage::TriggerLoadPreferences => { + dispatcher.respond(DesktopFrontendMessage::PersistenceLoadPreferences); + } + #[cfg(target_os = "macos")] + FrontendMessage::UpdateMenuBarLayout { diff } => { + use graphite_editor::messages::tool::tool_messages::tool_prelude::{DiffUpdate, WidgetDiff}; + match diff.as_slice() { + [ + WidgetDiff { + widget_path, + new_value: DiffUpdate::Layout(layout), + }, + ] if widget_path.is_empty() => { + let entries = crate::utils::menu::convert_menu_bar_layout_to_menu_items(layout); + dispatcher.respond(DesktopFrontendMessage::UpdateMenu { entries }); + } + _ => {} + } + } + FrontendMessage::TriggerClipboardRead => { + dispatcher.respond(DesktopFrontendMessage::ClipboardRead); + } + FrontendMessage::TriggerClipboardWrite { content } => { + dispatcher.respond(DesktopFrontendMessage::ClipboardWrite { content }); + } + FrontendMessage::WindowClose => { + dispatcher.respond(DesktopFrontendMessage::WindowClose); + } + FrontendMessage::WindowMinimize => { + dispatcher.respond(DesktopFrontendMessage::WindowMinimize); + } + FrontendMessage::WindowMaximize => { + dispatcher.respond(DesktopFrontendMessage::WindowMaximize); + } + FrontendMessage::WindowDrag => { + dispatcher.respond(DesktopFrontendMessage::WindowDrag); + } + FrontendMessage::WindowHide => { + dispatcher.respond(DesktopFrontendMessage::WindowHide); + } + FrontendMessage::WindowHideOthers => { + dispatcher.respond(DesktopFrontendMessage::WindowHideOthers); + } + FrontendMessage::WindowShowAll => { + dispatcher.respond(DesktopFrontendMessage::WindowShowAll); + } + m => return Some(m), + } + None +} diff --git a/desktop/wrapper/src/lib.rs b/desktop/wrapper/src/lib.rs new file mode 100644 index 000000000..bdb9978e6 --- /dev/null +++ b/desktop/wrapper/src/lib.rs @@ -0,0 +1,83 @@ +use graph_craft::wasm_application_io::WasmApplicationIo; +use graphite_editor::application::Editor; +use graphite_editor::messages::prelude::{FrontendMessage, Message}; + +// TODO: Remove usage of this reexport in desktop create and remove this line +pub use graphene_std::Color; + +pub use wgpu_executor::WgpuContext; +pub use wgpu_executor::WgpuContextBuilder; +pub use wgpu_executor::WgpuExecutor; +pub use wgpu_executor::WgpuFeatures; + +pub mod messages; +use messages::{DesktopFrontendMessage, DesktopWrapperMessage}; + +mod message_dispatcher; +use message_dispatcher::DesktopWrapperMessageDispatcher; + +mod handle_desktop_wrapper_message; +mod intercept_editor_message; +mod intercept_frontend_message; + +pub(crate) mod utils; + +pub struct DesktopWrapper { + editor: Editor, +} + +impl DesktopWrapper { + pub fn new() -> Self { + Self { editor: Editor::new() } + } + + pub fn init(&self, wgpu_context: WgpuContext) { + let application_io = WasmApplicationIo::new_with_context(wgpu_context); + futures::executor::block_on(graphite_editor::node_graph_executor::replace_application_io(application_io)); + } + + pub fn dispatch(&mut self, message: DesktopWrapperMessage) -> Vec { + let mut executor = DesktopWrapperMessageDispatcher::new(&mut self.editor); + executor.queue_desktop_wrapper_message(message); + executor.execute() + } + + pub async fn execute_node_graph() -> NodeGraphExecutionResult { + let result = graphite_editor::node_graph_executor::run_node_graph().await; + match result { + (true, texture) => NodeGraphExecutionResult::HasRun(texture.map(|t| t.texture)), + (false, _) => NodeGraphExecutionResult::NotRun, + } + } +} + +impl Default for DesktopWrapper { + fn default() -> Self { + Self::new() + } +} + +pub enum NodeGraphExecutionResult { + HasRun(Option), + NotRun, +} + +pub fn deserialize_editor_message(data: &[u8]) -> Option { + if let Ok(string) = std::str::from_utf8(data) { + if let Ok(message) = ron::de::from_str::(string) { + Some(DesktopWrapperMessage::FromWeb(message.into())) + } else { + None + } + } else { + None + } +} + +pub fn serialize_frontend_messages(messages: Vec) -> Option> { + if let Ok(serialized) = ron::ser::to_string(&messages) { + Some(serialized.into_bytes()) + } else { + None + } +} diff --git a/desktop/wrapper/src/message_dispatcher.rs b/desktop/wrapper/src/message_dispatcher.rs new file mode 100644 index 000000000..bb28296e0 --- /dev/null +++ b/desktop/wrapper/src/message_dispatcher.rs @@ -0,0 +1,78 @@ +use graphite_editor::application::Editor; +use std::collections::VecDeque; + +use super::handle_desktop_wrapper_message::handle_desktop_wrapper_message; +use super::intercept_editor_message::intercept_editor_message; +use super::intercept_frontend_message::intercept_frontend_message; +use super::messages::{DesktopFrontendMessage, DesktopWrapperMessage, EditorMessage}; + +pub(crate) struct DesktopWrapperMessageDispatcher<'a> { + editor: &'a mut Editor, + desktop_wrapper_message_queue: VecDeque, + editor_message_queue: Vec, + responses: Vec, +} + +impl<'a> DesktopWrapperMessageDispatcher<'a> { + pub(crate) fn new(editor: &'a mut Editor) -> Self { + Self { + editor, + desktop_wrapper_message_queue: VecDeque::new(), + editor_message_queue: Vec::new(), + responses: Vec::new(), + } + } + + pub(crate) fn execute(mut self) -> Vec { + self.process_queue(); + self.responses + } + + pub(crate) fn queue_desktop_wrapper_message(&mut self, message: DesktopWrapperMessage) { + self.desktop_wrapper_message_queue.push_back(message); + } + + pub(super) fn queue_editor_message>(&mut self, message: T) { + if let Some(message) = intercept_editor_message(self, message.into()) { + self.editor_message_queue.push(message); + } + } + + pub(super) fn respond(&mut self, response: DesktopFrontendMessage) { + self.responses.push(response); + } + + pub(super) fn poll_node_graph_evaluation(&mut self) { + let mut responses = VecDeque::new(); + if let Err(e) = self.editor.poll_node_graph_evaluation(&mut responses) { + if e != "No active document" { + tracing::error!("Error poling node graph: {}", e); + } + } + while let Some(message) = responses.pop_front() { + self.queue_editor_message(message); + } + } + + fn process_queue(&mut self) { + let mut frontend_messages = Vec::new(); + + while !self.desktop_wrapper_message_queue.is_empty() || !self.editor_message_queue.is_empty() { + while let Some(message) = self.desktop_wrapper_message_queue.pop_front() { + handle_desktop_wrapper_message(self, message); + } + let current_frontend_messages = self + .editor + .handle_message(EditorMessage::Batched { + messages: std::mem::take(&mut self.editor_message_queue).into_boxed_slice(), + }) + .into_iter() + .filter_map(|m| intercept_frontend_message(self, m)); + frontend_messages.extend(current_frontend_messages); + } + + if !frontend_messages.is_empty() { + self.respond(DesktopFrontendMessage::ToWeb(frontend_messages)); + } + } +} diff --git a/desktop/wrapper/src/messages.rs b/desktop/wrapper/src/messages.rs new file mode 100644 index 000000000..a5769ecfe --- /dev/null +++ b/desktop/wrapper/src/messages.rs @@ -0,0 +1,193 @@ +use graphite_editor::messages::prelude::FrontendMessage; +use std::path::PathBuf; + +pub(crate) use graphite_editor::messages::prelude::Message as EditorMessage; + +pub use graphite_editor::messages::input_mapper::utility_types::input_keyboard::{Key, ModifierKeys}; +pub use graphite_editor::messages::input_mapper::utility_types::input_mouse::{EditorMouseState as MouseState, EditorPosition as Position, MouseKeys}; +pub use graphite_editor::messages::prelude::InputPreprocessorMessage as InputMessage; + +pub use graphite_editor::messages::prelude::DocumentId; +pub use graphite_editor::messages::prelude::PreferencesMessageHandler as Preferences; +pub enum DesktopFrontendMessage { + ToWeb(Vec), + OpenLaunchDocuments, + OpenFileDialog { + title: String, + filters: Vec, + context: OpenFileDialogContext, + }, + SaveFileDialog { + title: String, + default_filename: String, + default_folder: Option, + filters: Vec, + context: SaveFileDialogContext, + }, + WriteFile { + path: PathBuf, + content: Vec, + }, + OpenUrl(String), + UpdateViewportPhysicalBounds { + x: f64, + y: f64, + width: f64, + height: f64, + }, + UpdateUIScale { + scale: f64, + }, + UpdateOverlays(vello::Scene), + PersistenceWriteDocument { + id: DocumentId, + document: Document, + }, + PersistenceDeleteDocument { + id: DocumentId, + }, + PersistenceUpdateCurrentDocument { + id: DocumentId, + }, + PersistenceLoadCurrentDocument, + PersistenceLoadRemainingDocuments, + PersistenceUpdateDocumentsList { + ids: Vec, + }, + PersistenceWritePreferences { + preferences: Preferences, + }, + PersistenceLoadPreferences, + UpdateMenu { + entries: Vec, + }, + ClipboardRead, + ClipboardWrite { + content: String, + }, + WindowClose, + WindowMinimize, + WindowMaximize, + WindowDrag, + WindowHide, + WindowHideOthers, + WindowShowAll, +} + +pub enum DesktopWrapperMessage { + FromWeb(Box), + Input(InputMessage), + OpenFileDialogResult { + path: PathBuf, + content: Vec, + context: OpenFileDialogContext, + }, + SaveFileDialogResult { + path: PathBuf, + context: SaveFileDialogContext, + }, + OpenDocument { + path: PathBuf, + content: Vec, + }, + OpenFile { + path: PathBuf, + content: Vec, + }, + ImportFile { + path: PathBuf, + content: Vec, + }, + ImportSvg { + path: PathBuf, + content: Vec, + }, + ImportImage { + path: PathBuf, + content: Vec, + }, + PollNodeGraphEvaluation, + UpdatePlatform(Platform), + UpdateMaximized { + maximized: bool, + }, + UpdateFullscreen { + fullscreen: bool, + }, + LoadDocument { + id: DocumentId, + document: Document, + to_front: bool, + select_after_open: bool, + }, + SelectDocument { + id: DocumentId, + }, + LoadPreferences { + preferences: Option, + }, + MenuEvent { + id: String, + }, + ClipboardReadResult { + content: Option, + }, +} + +#[derive(Clone, serde::Serialize, serde::Deserialize, Debug)] +pub struct Document { + pub content: String, + pub name: String, + pub path: Option, + pub is_saved: bool, +} + +pub struct FileFilter { + pub name: String, + pub extensions: Vec, +} + +pub enum OpenFileDialogContext { + Document, + Import, +} + +pub enum SaveFileDialogContext { + Document { document_id: DocumentId, content: Vec }, + File { content: Vec }, +} + +pub enum Platform { + Windows, + Mac, + Linux, +} + +pub enum MenuItem { + Action { + id: String, + text: String, + enabled: bool, + shortcut: Option, + }, + Checkbox { + id: String, + text: String, + enabled: bool, + shortcut: Option, + checked: bool, + }, + SubMenu { + id: String, + text: String, + enabled: bool, + items: Vec, + }, + Separator, +} + +pub use keyboard_types::{Code as KeyCode, Modifiers}; +pub struct Shortcut { + pub key: KeyCode, + pub modifiers: Modifiers, +} diff --git a/desktop/wrapper/src/utils.rs b/desktop/wrapper/src/utils.rs new file mode 100644 index 000000000..c62fe8f46 --- /dev/null +++ b/desktop/wrapper/src/utils.rs @@ -0,0 +1,251 @@ +#[cfg(target_os = "macos")] +pub(crate) mod menu { + use base64::engine::Engine; + use base64::engine::general_purpose::STANDARD as BASE64; + + use graphite_editor::messages::input_mapper::utility_types::input_keyboard::{Key, LabeledKeyOrMouseMotion, LabeledShortcut}; + use graphite_editor::messages::input_mapper::utility_types::misc::ActionShortcut; + use graphite_editor::messages::layout::LayoutMessage; + use graphite_editor::messages::tool::tool_messages::tool_prelude::{Layout, LayoutGroup, LayoutTarget, MenuListEntry, Widget, WidgetId}; + + use crate::messages::{EditorMessage, KeyCode, MenuItem, Modifiers, Shortcut}; + + pub(crate) fn convert_menu_bar_layout_to_menu_items(Layout(layout): &Layout) -> Vec { + let layout_group = match layout.as_slice() { + [layout_group] => layout_group, + _ => panic!("Menu bar layout is supposed to have exactly one layout group"), + }; + let LayoutGroup::Row { widgets } = layout_group else { + panic!("Menu bar layout group is supposed to be a row"); + }; + widgets + .into_iter() + .map(|widget| { + let text_button = match &widget.widget { + Widget::TextButton(text_button) => text_button, + _ => panic!("Menu bar layout top-level widgets are supposed to be text buttons"), + }; + + MenuItem::SubMenu { + id: widget.widget_id.to_string(), + text: text_button.label.clone(), + enabled: !text_button.disabled, + items: convert_menu_bar_entry_children_to_menu_items(&text_button.menu_list_children, widget.widget_id.0, Vec::new()), + } + }) + .collect::>() + } + + pub(crate) fn parse_item_path(id: String) -> Option { + let mut id_parts = id.split(':'); + let widget_id = id_parts.next()?.parse::().ok()?; + + let value = id_parts + .map(|part| { + let bytes = BASE64.decode(part).ok()?; + String::from_utf8(bytes).ok() + }) + .collect::>>()?; + let value = serde_json::to_value(value).ok()?; + + Some( + LayoutMessage::WidgetValueUpdate { + layout_target: LayoutTarget::MenuBar, + widget_id: WidgetId(widget_id), + value, + } + .into(), + ) + } + + fn item_path_to_string(widget_id: u64, path: Vec) -> String { + let path = path.into_iter().map(|element| BASE64.encode(element)).collect::>().join(":"); + format!("{widget_id}:{path}") + } + + fn convert_menu_bar_layout_to_menu_item(entry: &MenuListEntry, root_widget_id: u64, mut path: Vec) -> MenuItem { + let MenuListEntry { + value, + label, + icon, + disabled, + tooltip_shortcut, + children, + .. + }: &MenuListEntry = entry; + path.push(value.clone()); + let id = item_path_to_string(root_widget_id, path.clone()); + let text = label.clone(); + let enabled = !*disabled; + + if !children.is_empty() { + let items = convert_menu_bar_entry_children_to_menu_items(&children, root_widget_id, path.clone()); + return MenuItem::SubMenu { id, text, enabled, items }; + } + + let shortcut = match tooltip_shortcut { + Some(ActionShortcut::Shortcut(LabeledShortcut(shortcut))) => convert_labeled_keys_to_shortcut(shortcut), + _ => None, + }; + + match icon.as_str() { + "CheckboxChecked" => { + return MenuItem::Checkbox { + id, + text, + enabled, + shortcut, + checked: true, + }; + } + "CheckboxUnchecked" => { + return MenuItem::Checkbox { + id, + text, + enabled, + shortcut, + checked: false, + }; + } + _ => {} + } + + MenuItem::Action { id, text, shortcut, enabled } + } + + fn convert_menu_bar_entry_children_to_menu_items(children: &[Vec], root_widget_id: u64, path: Vec) -> Vec { + let mut items = Vec::new(); + for (i, section) in children.iter().enumerate() { + for entry in section.iter() { + items.push(convert_menu_bar_layout_to_menu_item(entry, root_widget_id, path.clone())); + } + if i != children.len() - 1 { + items.push(MenuItem::Separator); + } + } + items + } + + fn convert_labeled_keys_to_shortcut(labeled_keys: &Vec) -> Option { + let mut key: Option = None; + let mut modifiers = Modifiers::default(); + for labeled_key in labeled_keys { + let LabeledKeyOrMouseMotion::Key(labeled_key) = labeled_key else { + // Return None for shortcuts that include mouse motion because we can't show them in native menu + return None; + }; + match labeled_key.key() { + Key::Shift => modifiers |= Modifiers::SHIFT, + Key::Control => modifiers |= Modifiers::CONTROL, + Key::Alt => modifiers |= Modifiers::ALT, + Key::Meta => modifiers |= Modifiers::META, + Key::Command => modifiers |= Modifiers::ALT, + Key::Accel => modifiers |= Modifiers::META, + Key::Digit0 => key = Some(KeyCode::Digit0), + Key::Digit1 => key = Some(KeyCode::Digit1), + Key::Digit2 => key = Some(KeyCode::Digit2), + Key::Digit3 => key = Some(KeyCode::Digit3), + Key::Digit4 => key = Some(KeyCode::Digit4), + Key::Digit5 => key = Some(KeyCode::Digit5), + Key::Digit6 => key = Some(KeyCode::Digit6), + Key::Digit7 => key = Some(KeyCode::Digit7), + Key::Digit8 => key = Some(KeyCode::Digit8), + Key::Digit9 => key = Some(KeyCode::Digit9), + Key::KeyA => key = Some(KeyCode::KeyA), + Key::KeyB => key = Some(KeyCode::KeyB), + Key::KeyC => key = Some(KeyCode::KeyC), + Key::KeyD => key = Some(KeyCode::KeyD), + Key::KeyE => key = Some(KeyCode::KeyE), + Key::KeyF => key = Some(KeyCode::KeyF), + Key::KeyG => key = Some(KeyCode::KeyG), + Key::KeyH => key = Some(KeyCode::KeyH), + Key::KeyI => key = Some(KeyCode::KeyI), + Key::KeyJ => key = Some(KeyCode::KeyJ), + Key::KeyK => key = Some(KeyCode::KeyK), + Key::KeyL => key = Some(KeyCode::KeyL), + Key::KeyM => key = Some(KeyCode::KeyM), + Key::KeyN => key = Some(KeyCode::KeyN), + Key::KeyO => key = Some(KeyCode::KeyO), + Key::KeyP => key = Some(KeyCode::KeyP), + Key::KeyQ => key = Some(KeyCode::KeyQ), + Key::KeyR => key = Some(KeyCode::KeyR), + Key::KeyS => key = Some(KeyCode::KeyS), + Key::KeyT => key = Some(KeyCode::KeyT), + Key::KeyU => key = Some(KeyCode::KeyU), + Key::KeyV => key = Some(KeyCode::KeyV), + Key::KeyW => key = Some(KeyCode::KeyW), + Key::KeyX => key = Some(KeyCode::KeyX), + Key::KeyY => key = Some(KeyCode::KeyY), + Key::KeyZ => key = Some(KeyCode::KeyZ), + Key::Backquote => key = Some(KeyCode::Backquote), + Key::Backslash => key = Some(KeyCode::Backslash), + Key::BracketLeft => key = Some(KeyCode::BracketLeft), + Key::BracketRight => key = Some(KeyCode::BracketRight), + Key::Comma => key = Some(KeyCode::Comma), + Key::Equal => key = Some(KeyCode::Equal), + Key::Minus => key = Some(KeyCode::Minus), + Key::Period => key = Some(KeyCode::Period), + Key::Quote => key = Some(KeyCode::Quote), + Key::Semicolon => key = Some(KeyCode::Semicolon), + Key::Slash => key = Some(KeyCode::Slash), + Key::Backspace => key = Some(KeyCode::Backspace), + Key::CapsLock => key = Some(KeyCode::CapsLock), + Key::ContextMenu => key = Some(KeyCode::ContextMenu), + Key::Enter => key = Some(KeyCode::Enter), + Key::Space => key = Some(KeyCode::Space), + Key::Tab => key = Some(KeyCode::Tab), + Key::Delete => key = Some(KeyCode::Delete), + Key::End => key = Some(KeyCode::End), + Key::Help => key = Some(KeyCode::Help), + Key::Home => key = Some(KeyCode::Home), + Key::Insert => key = Some(KeyCode::Insert), + Key::PageDown => key = Some(KeyCode::PageDown), + Key::PageUp => key = Some(KeyCode::PageUp), + Key::ArrowDown => key = Some(KeyCode::ArrowDown), + Key::ArrowLeft => key = Some(KeyCode::ArrowLeft), + Key::ArrowRight => key = Some(KeyCode::ArrowRight), + Key::ArrowUp => key = Some(KeyCode::ArrowUp), + Key::NumLock => key = Some(KeyCode::NumLock), + Key::NumpadAdd => key = Some(KeyCode::NumpadAdd), + Key::NumpadHash => key = Some(KeyCode::NumpadHash), + Key::NumpadMultiply => key = Some(KeyCode::NumpadMultiply), + Key::NumpadParenLeft => key = Some(KeyCode::NumpadParenLeft), + Key::NumpadParenRight => key = Some(KeyCode::NumpadParenRight), + Key::Escape => key = Some(KeyCode::Escape), + Key::F1 => key = Some(KeyCode::F1), + Key::F2 => key = Some(KeyCode::F2), + Key::F3 => key = Some(KeyCode::F3), + Key::F4 => key = Some(KeyCode::F4), + Key::F5 => key = Some(KeyCode::F5), + Key::F6 => key = Some(KeyCode::F6), + Key::F7 => key = Some(KeyCode::F7), + Key::F8 => key = Some(KeyCode::F8), + Key::F9 => key = Some(KeyCode::F9), + Key::F10 => key = Some(KeyCode::F10), + Key::F11 => key = Some(KeyCode::F11), + Key::F12 => key = Some(KeyCode::F12), + Key::F13 => key = Some(KeyCode::F13), + Key::F14 => key = Some(KeyCode::F14), + Key::F15 => key = Some(KeyCode::F15), + Key::F16 => key = Some(KeyCode::F16), + Key::F17 => key = Some(KeyCode::F17), + Key::F18 => key = Some(KeyCode::F18), + Key::F19 => key = Some(KeyCode::F19), + Key::F20 => key = Some(KeyCode::F20), + Key::F21 => key = Some(KeyCode::F21), + Key::F22 => key = Some(KeyCode::F22), + Key::F23 => key = Some(KeyCode::F23), + Key::F24 => key = Some(KeyCode::F24), + Key::Fn => key = Some(KeyCode::Fn), + Key::FnLock => key = Some(KeyCode::FnLock), + Key::PrintScreen => key = Some(KeyCode::PrintScreen), + Key::ScrollLock => key = Some(KeyCode::ScrollLock), + Key::Pause => key = Some(KeyCode::Pause), + Key::Unidentified => key = Some(KeyCode::Unidentified), + Key::FakeKeyPlus => key = Some(KeyCode::Equal), + _ => key = None, + } + } + key.map(|key| Shortcut { key, modifiers }) + } +} diff --git a/editor/Cargo.toml b/editor/Cargo.toml index ed020ef91..447250714 100644 --- a/editor/Cargo.toml +++ b/editor/Cargo.toml @@ -3,27 +3,24 @@ name = "graphite-editor" publish = false version = "0.0.0" rust-version = "1.88" -authors = ["Graphite Authors "] +authors = ["Graphite Authors "] edition = "2024" readme = "../README.md" -homepage = "https://graphite.rs" +homepage = "https://graphite.art" repository = "https://github.com/GraphiteEditor/Graphite" license = "Apache-2.0" [features] -default = ["wasm"] -wasm = ["wasm-bindgen", "graphene-std/wasm", "wasm-bindgen-futures"] +default = ["wasm", "gpu"] +wasm = ["wasm-bindgen", "graphene-std/wasm"] gpu = ["interpreted-executor/gpu", "wgpu-executor"] -resvg = ["graphene-std/resvg"] -vello = ["graphene-std/vello", "resvg"] -ron = ["dep:ron"] [dependencies] # Local dependencies graphite-proc-macros = { workspace = true } graph-craft = { workspace = true } interpreted-executor = { workspace = true } -graphene-std = { workspace = true } +graphene-std = { workspace = true } # NOTE: `core-types` should not be added here because `graphene-std` re-exports its contents preprocessor = { workspace = true } # Workspace dependencies @@ -33,7 +30,6 @@ bitflags = { workspace = true } thiserror = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } -bezier-rs = { workspace = true } kurbo = { workspace = true } futures = { workspace = true } glam = { workspace = true } @@ -44,29 +40,19 @@ num_enum = { workspace = true } usvg = { workspace = true } once_cell = { workspace = true } web-sys = { workspace = true } -bytemuck = { workspace = true } vello = { workspace = true } -tracing = { workspace = true } - -# Required dependencies -spin = "0.9.8" +base64 = { workspace = true } +spin = { workspace = true } +image = { workspace = true } # Optional local dependencies wgpu-executor = { workspace = true, optional = true } # Optional workspace dependencies wasm-bindgen = { workspace = true, optional = true } -wasm-bindgen-futures = { workspace = true, optional = true } -ron = { workspace = true, optional = true } [dev-dependencies] # Workspace dependencies env_logger = { workspace = true } futures = { workspace = true } tokio = { workspace = true } - -[lints.rust] -# TODO: figure out why we check these features when they do not exist -unexpected_cfgs = { level = "warn", check-cfg = [ - 'cfg(feature, values("resvg", "vello"))', -] } diff --git a/editor/build.rs b/editor/build.rs index 7fc95d9c5..8167eb7b4 100644 --- a/editor/build.rs +++ b/editor/build.rs @@ -1,24 +1,56 @@ +use std::env; use std::process::Command; const GRAPHITE_RELEASE_SERIES: &str = "Alpha 4"; fn main() { - // Execute a Git command for its stdout. Early exit if it fails for any of the possible reasons. - let try_git_command = |args: &[&str]| -> Option { - let git_output = Command::new("git").args(args).output().ok()?; - let maybe_empty = String::from_utf8(git_output.stdout).ok()?; - let command_result = (!maybe_empty.is_empty()).then_some(maybe_empty)?; - Some(command_result) - }; - // Execute a Git command for its output. Return "unknown" if it fails for any of the possible reasons. - let git_command = |args| -> String { try_git_command(args).unwrap_or_else(|| String::from("unknown")) }; + // Instruct Cargo to rerun this build script if any of these environment variables change. + println!("cargo:rerun-if-env-changed=GRAPHITE_GIT_COMMIT_DATE"); + println!("cargo:rerun-if-env-changed=GRAPHITE_GIT_COMMIT_HASH"); + println!("cargo:rerun-if-env-changed=GRAPHITE_GIT_COMMIT_BRANCH"); + println!("cargo:rerun-if-env-changed=GITHUB_HEAD_REF"); - // Rather than printing to any terminal, these commands set environment variables in the Cargo toolchain. - // They are accessed with the `env!("...")` macro in the codebase. - println!("cargo:rustc-env=GRAPHITE_GIT_COMMIT_DATE={}", git_command(&["log", "-1", "--format=%cd"])); - println!("cargo:rustc-env=GRAPHITE_GIT_COMMIT_HASH={}", git_command(&["rev-parse", "HEAD"])); - let branch = std::env::var("GITHUB_HEAD_REF").unwrap_or_default(); - let branch = if branch.is_empty() { git_command(&["name-rev", "--name-only", "HEAD"]) } else { branch }; - println!("cargo:rustc-env=GRAPHITE_GIT_COMMIT_BRANCH={branch}"); + // Try to get the commit information from the environment (e.g. set by CI), otherwise fall back to Git commands. + let commit_date = env_or_else("GRAPHITE_GIT_COMMIT_DATE", || git_or_unknown(&["log", "-1", "--format=%cI"])); + let commit_hash = env_or_else("GRAPHITE_GIT_COMMIT_HASH", || git_or_unknown(&["rev-parse", "HEAD"])); + let commit_branch = env_or_else("GRAPHITE_GIT_COMMIT_BRANCH", || { + let gh = env::var("GITHUB_HEAD_REF").unwrap_or_default(); + if !gh.trim().is_empty() { + gh.trim().to_string() + } else { + git_or_unknown(&["rev-parse", "--abbrev-ref", "HEAD"]) + } + }); + + // Instruct Cargo to set environment variables for compile time. + // They are accessed with the `env!("GRAPHITE_*")` macro in the codebase. + println!("cargo:rustc-env=GRAPHITE_GIT_COMMIT_DATE={commit_date}"); + println!("cargo:rustc-env=GRAPHITE_GIT_COMMIT_HASH={commit_hash}"); + println!("cargo:rustc-env=GRAPHITE_GIT_COMMIT_BRANCH={commit_branch}"); println!("cargo:rustc-env=GRAPHITE_RELEASE_SERIES={GRAPHITE_RELEASE_SERIES}"); } + +/// Get an environment variable, or if it is not set or empty, use the provided fallback function. Returns a string with trimmed whitespace. +fn env_or_else(key: &str, fallback: impl FnOnce() -> String) -> String { + match env::var(key) { + Ok(v) if !v.trim().is_empty() => v.trim().to_string(), + _ => fallback().trim().to_string(), + } +} + +/// Execute a Git command to obtain its output. Return "unknown" if it fails for any of the possible reasons. +fn git_or_unknown(args: &[&str]) -> String { + git(args).unwrap_or_else(|| "unknown".to_string()) +} + +/// Run a git command and capture trimmed stdout. +/// Returns None if git is missing, exits with error, or stdout is empty/non-UTF8. +fn git(args: &[&str]) -> Option { + let output = Command::new("git").args(args).output().ok()?; + if !output.status.success() { + return None; + } + let s = String::from_utf8(output.stdout).ok()?; + let t = s.trim(); + if t.is_empty() { None } else { Some(t.to_string()) } +} diff --git a/editor/src/application.rs b/editor/src/application.rs index fdb8c6033..e3c7c24d0 100644 --- a/editor/src/application.rs +++ b/editor/src/application.rs @@ -51,7 +51,7 @@ pub fn commit_info_localized(localized_commit_date: &str) -> String { {}", GRAPHITE_RELEASE_SERIES, GRAPHITE_GIT_COMMIT_BRANCH, - &GRAPHITE_GIT_COMMIT_HASH[..8], + GRAPHITE_GIT_COMMIT_HASH.get(..8).unwrap_or(GRAPHITE_GIT_COMMIT_HASH), localized_commit_date ) } diff --git a/editor/src/consts.rs b/editor/src/consts.rs index 44a5b1d21..f515ee07b 100644 --- a/editor/src/consts.rs +++ b/editor/src/consts.rs @@ -131,6 +131,7 @@ pub const ARC_SNAP_THRESHOLD: f64 = 5.; pub const ARC_SWEEP_GIZMO_RADIUS: f64 = 14.; pub const ARC_SWEEP_GIZMO_TEXT_HEIGHT: f64 = 12.; pub const GIZMO_HIDE_THRESHOLD: f64 = 20.; +pub const GRID_ROW_COLUMN_GIZMO_OFFSET: f64 = 15.; // SCROLLBARS pub const SCROLLBAR_SPACING: f64 = 0.1; @@ -150,10 +151,15 @@ pub const COLOR_OVERLAY_WHITE: &str = "#ffffff"; pub const COLOR_OVERLAY_BLACK_75: &str = "#000000bf"; // DOCUMENT +pub const FILE_EXTENSION: &str = "graphite"; pub const DEFAULT_DOCUMENT_NAME: &str = "Untitled Document"; -pub const FILE_SAVE_SUFFIX: &str = ".graphite"; pub const MAX_UNDO_HISTORY_LEN: usize = 100; // TODO: Add this to user preferences pub const AUTO_SAVE_TIMEOUT_SECONDS: u64 = 1; // INPUT pub const DOUBLE_CLICK_MILLISECONDS: u64 = 500; + +// UI +pub const UI_SCALE_DEFAULT: f64 = 1.; +pub const UI_SCALE_MIN: f64 = 0.5; +pub const UI_SCALE_MAX: f64 = 3.; diff --git a/editor/src/dispatcher.rs b/editor/src/dispatcher.rs index 0c098833a..66e82e322 100644 --- a/editor/src/dispatcher.rs +++ b/editor/src/dispatcher.rs @@ -2,12 +2,15 @@ use crate::messages::debug::utility_types::MessageLoggingVerbosity; use crate::messages::defer::DeferMessageContext; use crate::messages::dialog::DialogMessageContext; use crate::messages::layout::layout_message_handler::LayoutMessageContext; +use crate::messages::preferences::preferences_message_handler::PreferencesMessageContext; use crate::messages::prelude::*; +use crate::messages::tool::common_functionality::utility_functions::make_path_editable_is_allowed; #[derive(Debug, Default)] pub struct Dispatcher { message_queues: Vec>, pub responses: Vec, + pub frontend_update_messages: Vec, pub message_handlers: DispatcherMessageHandlers, } @@ -16,6 +19,7 @@ pub struct DispatcherMessageHandlers { animation_message_handler: AnimationMessageHandler, app_window_message_handler: AppWindowMessageHandler, broadcast_message_handler: BroadcastMessageHandler, + clipboard_message_handler: ClipboardMessageHandler, debug_message_handler: DebugMessageHandler, defer_message_handler: DeferMessageHandler, dialog_message_handler: DialogMessageHandler, @@ -23,10 +27,11 @@ pub struct DispatcherMessageHandlers { input_preprocessor_message_handler: InputPreprocessorMessageHandler, key_mapping_message_handler: KeyMappingMessageHandler, layout_message_handler: LayoutMessageHandler, + menu_bar_message_handler: MenuBarMessageHandler, pub portfolio_message_handler: PortfolioMessageHandler, preferences_message_handler: PreferencesMessageHandler, tool_message_handler: ToolMessageHandler, - workspace_message_handler: WorkspaceMessageHandler, + viewport_message_handler: ViewportMessageHandler, } impl DispatcherMessageHandlers { @@ -42,19 +47,30 @@ impl DispatcherMessageHandlers { /// The last occurrence of the message in the message queue is sufficient to ensure correct behavior. /// In addition, these messages do not change any state in the backend (aside from caches). const SIDE_EFFECT_FREE_MESSAGES: &[MessageDiscriminant] = &[ + MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::DocumentStructureChanged)), + MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::NodeGraph( + NodeGraphMessageDiscriminant::RunDocumentGraph, + ))), + MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::SubmitActiveGraphRender), + MessageDiscriminant::Frontend(FrontendMessageDiscriminant::TriggerFontDataLoad), + MessageDiscriminant::Frontend(FrontendMessageDiscriminant::UpdateUIScale), +]; +/// Since we don't need to update the frontend multiple times per frame, +/// we have a set of messages which we will buffer until the next frame is requested. +const FRONTEND_UPDATE_MESSAGES: &[MessageDiscriminant] = &[ MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::PropertiesPanel( PropertiesPanelMessageDiscriminant::Refresh, ))), - MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::DocumentStructureChanged)), + MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::UpdateDocumentWidgets), MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::Overlays(OverlaysMessageDiscriminant::Draw))), MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::RenderRulers)), MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::Document(DocumentMessageDiscriminant::RenderScrollbars)), MessageDiscriminant::Frontend(FrontendMessageDiscriminant::UpdateDocumentLayerStructure), - MessageDiscriminant::Frontend(FrontendMessageDiscriminant::TriggerFontLoad), ]; const DEBUG_MESSAGE_BLOCK_LIST: &[MessageDiscriminant] = &[ - MessageDiscriminant::Broadcast(BroadcastMessageDiscriminant::TriggerEvent(BroadcastEventDiscriminant::AnimationFrame)), + MessageDiscriminant::Broadcast(BroadcastMessageDiscriminant::TriggerEvent(EventMessageDiscriminant::AnimationFrame)), MessageDiscriminant::Animation(AnimationMessageDiscriminant::IncrementFrameCounter), + MessageDiscriminant::Portfolio(PortfolioMessageDiscriminant::AutoSaveAllDocuments), ]; // TODO: Find a way to combine these with the list above. We use strings for now since these are the standard variant names used by multiple messages. But having these also type-checked would be best. const DEBUG_MESSAGE_ENDING_BLOCK_LIST: &[&str] = &["PointerMove", "PointerOutsideViewport", "Overlays", "Draw", "CurrentTime", "Time"]; @@ -101,6 +117,19 @@ impl Dispatcher { while let Some(message) = self.message_queues.last_mut().and_then(VecDeque::pop_front) { // Skip processing of this message if it will be processed later (at the end of the shallowest level queue) + if FRONTEND_UPDATE_MESSAGES.contains(&message.to_discriminant()) { + let already_in_queue = self.message_queues.first().is_some_and(|queue| queue.contains(&message)); + if already_in_queue { + self.cleanup_queues(false); + continue; + } else if self.message_queues.len() > 1 { + if !self.frontend_update_messages.contains(&message) { + self.frontend_update_messages.push(message); + } + self.cleanup_queues(false); + continue; + } + } if SIDE_EFFECT_FREE_MESSAGES.contains(&message.to_discriminant()) { let already_in_queue = self.message_queues.first().filter(|queue| queue.contains(&message)).is_some(); if already_in_queue { @@ -124,12 +153,16 @@ impl Dispatcher { // Process the action by forwarding it to the relevant message handler, or saving the FrontendMessage to be sent to the frontend match message { Message::Animation(message) => { + if let AnimationMessage::IncrementFrameCounter = &message { + self.message_queues[0].extend(self.frontend_update_messages.drain(..)); + } self.message_handlers.animation_message_handler.process_message(message, &mut queue, ()); } Message::AppWindow(message) => { self.message_handlers.app_window_message_handler.process_message(message, &mut queue, ()); } Message::Broadcast(message) => self.message_handlers.broadcast_message_handler.process_message(message, &mut queue, ()), + Message::Clipboard(message) => self.message_handlers.clipboard_message_handler.process_message(message, &mut queue, ()), Message::Debug(message) => { self.message_handlers.debug_message_handler.process_message(message, &mut queue, ()); } @@ -143,13 +176,12 @@ impl Dispatcher { let context = DialogMessageContext { portfolio: &self.message_handlers.portfolio_message_handler, preferences: &self.message_handlers.preferences_message_handler, - viewport_bounds: &self.message_handlers.input_preprocessor_message_handler.viewport_bounds, }; self.message_handlers.dialog_message_handler.process_message(message, &mut queue, context); } Message::Frontend(message) => { // Handle these messages immediately by returning early - if let FrontendMessage::TriggerFontLoad { .. } = message { + if let FrontendMessage::TriggerFontDataLoad { .. } | FrontendMessage::TriggerFontCatalogLoad = message { self.responses.push(message); self.cleanup_queues(false); @@ -166,9 +198,14 @@ impl Dispatcher { Message::InputPreprocessor(message) => { let keyboard_platform = GLOBAL_PLATFORM.get().copied().unwrap_or_default().as_keyboard_platform_layout(); - self.message_handlers - .input_preprocessor_message_handler - .process_message(message, &mut queue, InputPreprocessorMessageContext { keyboard_platform }); + self.message_handlers.input_preprocessor_message_handler.process_message( + message, + &mut queue, + InputPreprocessorMessageContext { + keyboard_platform, + viewport: &self.message_handlers.viewport_message_handler, + }, + ); } Message::KeyMapping(message) => { let input = &self.message_handlers.input_preprocessor_message_handler; @@ -185,30 +222,67 @@ impl Dispatcher { self.message_handlers.layout_message_handler.process_message(message, &mut queue, context); } Message::Portfolio(message) => { - let ipp = &self.message_handlers.input_preprocessor_message_handler; - let preferences = &self.message_handlers.preferences_message_handler; - let current_tool = &self.message_handlers.tool_message_handler.tool_state.tool_data.active_tool_type; - let message_logging_verbosity = self.message_handlers.debug_message_handler.message_logging_verbosity; - let reset_node_definitions_on_open = self.message_handlers.portfolio_message_handler.reset_node_definitions_on_open; - let timing_information = self.message_handlers.animation_message_handler.timing_information(); - let animation = &self.message_handlers.animation_message_handler; - self.message_handlers.portfolio_message_handler.process_message( message, &mut queue, PortfolioMessageContext { - ipp, - preferences, - current_tool, - message_logging_verbosity, - reset_node_definitions_on_open, - timing_information, - animation, + ipp: &self.message_handlers.input_preprocessor_message_handler, + preferences: &self.message_handlers.preferences_message_handler, + current_tool: &self.message_handlers.tool_message_handler.tool_state.tool_data.active_tool_type, + reset_node_definitions_on_open: self.message_handlers.portfolio_message_handler.reset_node_definitions_on_open, + timing_information: self.message_handlers.animation_message_handler.timing_information(), + animation: &self.message_handlers.animation_message_handler, + viewport: &self.message_handlers.viewport_message_handler, }, ); } + Message::MenuBar(message) => { + let menu_bar_message_handler = &mut self.message_handlers.menu_bar_message_handler; + + menu_bar_message_handler.data_panel_open = self.message_handlers.portfolio_message_handler.data_panel_open; + menu_bar_message_handler.layers_panel_open = self.message_handlers.portfolio_message_handler.layers_panel_open; + menu_bar_message_handler.properties_panel_open = self.message_handlers.portfolio_message_handler.properties_panel_open; + menu_bar_message_handler.message_logging_verbosity = self.message_handlers.debug_message_handler.message_logging_verbosity; + menu_bar_message_handler.reset_node_definitions_on_open = self.message_handlers.portfolio_message_handler.reset_node_definitions_on_open; + + if let Some(document) = self + .message_handlers + .portfolio_message_handler + .active_document_id + .and_then(|document_id| self.message_handlers.portfolio_message_handler.documents.get_mut(&document_id)) + { + let selected_nodes = document.network_interface.selected_nodes(); + let metadata = &document.network_interface.document_network_metadata().persistent_metadata; + + menu_bar_message_handler.has_active_document = true; + menu_bar_message_handler.canvas_tilted = document.document_ptz.tilt() != 0.; + menu_bar_message_handler.canvas_flipped = document.document_ptz.flip; + menu_bar_message_handler.rulers_visible = document.rulers_visible; + menu_bar_message_handler.node_graph_open = document.is_graph_overlay_open(); + menu_bar_message_handler.has_selected_nodes = selected_nodes.selected_nodes().next().is_some(); + menu_bar_message_handler.has_selected_layers = selected_nodes.selected_visible_layers(&document.network_interface).next().is_some(); + menu_bar_message_handler.has_selection_history = (!metadata.selection_undo_history.is_empty(), !metadata.selection_redo_history.is_empty()); + menu_bar_message_handler.make_path_editable_is_allowed = make_path_editable_is_allowed(&mut document.network_interface).is_some(); + } else { + menu_bar_message_handler.has_active_document = false; + menu_bar_message_handler.canvas_tilted = false; + menu_bar_message_handler.canvas_flipped = false; + menu_bar_message_handler.rulers_visible = false; + menu_bar_message_handler.node_graph_open = false; + menu_bar_message_handler.has_selected_nodes = false; + menu_bar_message_handler.has_selected_layers = false; + menu_bar_message_handler.has_selection_history = (false, false); + menu_bar_message_handler.make_path_editable_is_allowed = false; + } + + menu_bar_message_handler.process_message(message, &mut queue, ()); + } Message::Preferences(message) => { - self.message_handlers.preferences_message_handler.process_message(message, &mut queue, ()); + let context = PreferencesMessageContext { + tool_message_handler: &self.message_handlers.tool_message_handler, + }; + + self.message_handlers.preferences_message_handler.process_message(message, &mut queue, context); } Message::Tool(message) => { let Some(document_id) = self.message_handlers.portfolio_message_handler.active_document_id() else { @@ -227,16 +301,17 @@ impl Dispatcher { persistent_data: &self.message_handlers.portfolio_message_handler.persistent_data, node_graph: &self.message_handlers.portfolio_message_handler.executor, preferences: &self.message_handlers.preferences_message_handler, + viewport: &self.message_handlers.viewport_message_handler, }; self.message_handlers.tool_message_handler.process_message(message, &mut queue, context); } - Message::Workspace(message) => { - self.message_handlers.workspace_message_handler.process_message(message, &mut queue, ()); + Message::Viewport(message) => { + self.message_handlers.viewport_message_handler.process_message(message, &mut queue, ()); } Message::NoOp => {} Message::Batched { messages } => { - messages.iter().for_each(|message| self.handle_message(message.to_owned(), false)); + messages.into_iter().for_each(|message| self.handle_message(message, false)); } } @@ -252,15 +327,17 @@ impl Dispatcher { pub fn collect_actions(&self) -> ActionList { // TODO: Reduce the number of heap allocations let mut list = Vec::new(); + list.extend(self.message_handlers.app_window_message_handler.actions()); + list.extend(self.message_handlers.clipboard_message_handler.actions()); list.extend(self.message_handlers.dialog_message_handler.actions()); list.extend(self.message_handlers.animation_message_handler.actions()); list.extend(self.message_handlers.input_preprocessor_message_handler.actions()); list.extend(self.message_handlers.key_mapping_message_handler.actions()); list.extend(self.message_handlers.debug_message_handler.actions()); - if let Some(document) = self.message_handlers.portfolio_message_handler.active_document() { - if !document.graph_view_overlay_open { - list.extend(self.message_handlers.tool_message_handler.actions()); - } + if let Some(document) = self.message_handlers.portfolio_message_handler.active_document() + && !document.graph_view_overlay_open + { + list.extend(self.message_handlers.tool_message_handler.actions_with_preferences(&self.message_handlers.preferences_message_handler)); } list.extend(self.message_handlers.portfolio_message_handler.actions()); list @@ -288,8 +365,9 @@ impl Dispatcher { fn log_message(&self, message: &Message, queues: &[VecDeque], message_logging_verbosity: MessageLoggingVerbosity) { let discriminant = MessageDiscriminant::from(message); let is_blocked = DEBUG_MESSAGE_BLOCK_LIST.contains(&discriminant) || DEBUG_MESSAGE_ENDING_BLOCK_LIST.iter().any(|blocked_name| discriminant.local_name().ends_with(blocked_name)); + let is_empty_batched = if let Message::Batched { messages } = message { messages.is_empty() } else { false }; - if !is_blocked { + if !is_blocked && !is_empty_batched { match message_logging_verbosity { MessageLoggingVerbosity::Off => {} MessageLoggingVerbosity::Names => { @@ -446,7 +524,7 @@ mod test { assert_eq!(layers_before_copy.len(), 3); assert_eq!(layers_after_copy.len(), 6); - println!("{:?} {:?}", layers_after_copy, layers_before_copy); + println!("{layers_after_copy:?} {layers_before_copy:?}"); assert_eq!(layers_after_copy[5], shape_id); } @@ -501,7 +579,8 @@ mod test { ); let responses = editor.editor.handle_message(PortfolioMessage::OpenDocumentFile { - document_name: document_name.into(), + document_name: Some(document_name.to_string()), + document_path: None, document_serialized_content, }); @@ -512,9 +591,9 @@ mod test { for response in responses { // Check for the existence of the file format incompatibility warning dialog after opening the test file - if let FrontendMessage::UpdateDialogColumn1 { layout_target: _, diff } = response { - if let DiffUpdate::SubLayout(sub_layout) = &diff[0].new_value { - if let LayoutGroup::Row { widgets } = &sub_layout[0] { + if let FrontendMessage::UpdateDialogColumn1 { diff } = response { + if let DiffUpdate::Layout(sub_layout) = &diff[0].new_value { + if let LayoutGroup::Row { widgets } = &sub_layout.0[0] { if let Widget::TextLabel(TextLabel { value, .. }) = &widgets[0].widget { print_problem_to_terminal_on_failure(value); } diff --git a/editor/src/messages/animation/animation_message.rs b/editor/src/messages/animation/animation_message.rs index 128cc70ea..4b5aea386 100644 --- a/editor/src/messages/animation/animation_message.rs +++ b/editor/src/messages/animation/animation_message.rs @@ -1,6 +1,5 @@ -use crate::messages::prelude::*; - use super::animation_message_handler::AnimationTimeMode; +use crate::messages::prelude::*; #[impl_message(Message, Animation)] #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] diff --git a/editor/src/messages/animation/animation_message_handler.rs b/editor/src/messages/animation/animation_message_handler.rs index 32a7979ab..89fa807b7 100644 --- a/editor/src/messages/animation/animation_message_handler.rs +++ b/editor/src/messages/animation/animation_message_handler.rs @@ -101,7 +101,6 @@ impl MessageHandler for AnimationMessageHandler { AnimationMessage::UpdateTime => { if self.is_playing() { responses.add(PortfolioMessage::SubmitActiveGraphRender); - if self.live_preview_recently_zero { // Update the restart and pause/play buttons responses.add(PortfolioMessage::UpdateDocumentWidgets); diff --git a/editor/src/messages/app_window/app_window_message.rs b/editor/src/messages/app_window/app_window_message.rs index f21c831be..9ac40984f 100644 --- a/editor/src/messages/app_window/app_window_message.rs +++ b/editor/src/messages/app_window/app_window_message.rs @@ -1,9 +1,16 @@ use crate::messages::prelude::*; +use super::app_window_message_handler::AppWindowPlatform; + #[impl_message(Message, AppWindow)] #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] pub enum AppWindowMessage { - AppWindowMinimize, - AppWindowMaximize, - AppWindowClose, + UpdatePlatform { platform: AppWindowPlatform }, + Close, + Minimize, + Maximize, + Drag, + Hide, + HideOthers, + ShowAll, } diff --git a/editor/src/messages/app_window/app_window_message_handler.rs b/editor/src/messages/app_window/app_window_message_handler.rs index 1b57cec63..3b8b92354 100644 --- a/editor/src/messages/app_window/app_window_message_handler.rs +++ b/editor/src/messages/app_window/app_window_message_handler.rs @@ -5,41 +5,47 @@ use graphite_proc_macros::{ExtractField, message_handler_data}; #[derive(Debug, Clone, Default, ExtractField)] pub struct AppWindowMessageHandler { platform: AppWindowPlatform, - maximized: bool, - viewport_hole_punch_active: bool, } #[message_handler_data] impl MessageHandler for AppWindowMessageHandler { fn process_message(&mut self, message: AppWindowMessage, responses: &mut std::collections::VecDeque, _: ()) { match message { - AppWindowMessage::AppWindowMinimize => { - self.platform = if self.platform == AppWindowPlatform::Mac { - AppWindowPlatform::Windows - } else { - AppWindowPlatform::Mac - }; + AppWindowMessage::UpdatePlatform { platform } => { + self.platform = platform; responses.add(FrontendMessage::UpdatePlatform { platform: self.platform }); } - AppWindowMessage::AppWindowMaximize => { - self.maximized = !self.maximized; - responses.add(FrontendMessage::UpdateMaximized { maximized: self.maximized }); - - self.viewport_hole_punch_active = !self.viewport_hole_punch_active; - responses.add(FrontendMessage::UpdateViewportHolePunch { - active: self.viewport_hole_punch_active, - }); + AppWindowMessage::Close => { + responses.add(FrontendMessage::WindowClose); } - AppWindowMessage::AppWindowClose => { - self.platform = AppWindowPlatform::Web; - responses.add(FrontendMessage::UpdatePlatform { platform: self.platform }); + AppWindowMessage::Minimize => { + responses.add(FrontendMessage::WindowMinimize); + } + AppWindowMessage::Maximize => { + responses.add(FrontendMessage::WindowMaximize); + } + AppWindowMessage::Drag => { + responses.add(FrontendMessage::WindowDrag); + } + AppWindowMessage::Hide => { + responses.add(FrontendMessage::WindowHide); + } + AppWindowMessage::HideOthers => { + responses.add(FrontendMessage::WindowHideOthers); + } + AppWindowMessage::ShowAll => { + responses.add(FrontendMessage::WindowShowAll); } } } - - fn actions(&self) -> ActionList { - actions!(AppWindowMessageDiscriminant;) - } + advertise_actions!(AppWindowMessageDiscriminant; + Close, + Minimize, + Maximize, + Drag, + Hide, + HideOthers, + ); } #[derive(PartialEq, Eq, Clone, Copy, Default, Debug, serde::Serialize, serde::Deserialize, specta::Type)] diff --git a/editor/src/messages/broadcast/broadcast_message.rs b/editor/src/messages/broadcast/broadcast_message.rs index 984d4e56a..35e49981a 100644 --- a/editor/src/messages/broadcast/broadcast_message.rs +++ b/editor/src/messages/broadcast/broadcast_message.rs @@ -5,15 +5,15 @@ use crate::messages::prelude::*; pub enum BroadcastMessage { // Sub-messages #[child] - TriggerEvent(BroadcastEvent), + TriggerEvent(EventMessage), // Messages SubscribeEvent { - on: BroadcastEvent, + on: EventMessage, send: Box, }, UnsubscribeEvent { - on: BroadcastEvent, - message: Box, + on: EventMessage, + send: Box, }, } diff --git a/editor/src/messages/broadcast/broadcast_message_handler.rs b/editor/src/messages/broadcast/broadcast_message_handler.rs index 29d75f5cb..2d6bbb006 100644 --- a/editor/src/messages/broadcast/broadcast_message_handler.rs +++ b/editor/src/messages/broadcast/broadcast_message_handler.rs @@ -2,7 +2,8 @@ use crate::messages::prelude::*; #[derive(Debug, Clone, Default, ExtractField)] pub struct BroadcastMessageHandler { - listeners: HashMap>, + event: EventMessageHandler, + listeners: HashMap>, } #[message_handler_data] @@ -10,19 +11,15 @@ impl MessageHandler for BroadcastMessageHandler { fn process_message(&mut self, message: BroadcastMessage, responses: &mut VecDeque, _: ()) { match message { // Sub-messages - BroadcastMessage::TriggerEvent(event) => { - for message in self.listeners.entry(event).or_default() { - responses.add_front(message.clone()) - } - } + BroadcastMessage::TriggerEvent(message) => self.event.process_message(message, responses, EventMessageContext { listeners: &mut self.listeners }), // Messages BroadcastMessage::SubscribeEvent { on, send } => self.listeners.entry(on).or_default().push(*send), - BroadcastMessage::UnsubscribeEvent { on, message } => self.listeners.entry(on).or_default().retain(|msg| *msg != *message), + BroadcastMessage::UnsubscribeEvent { on, send } => self.listeners.entry(on).or_default().retain(|msg| *msg != *send), } } fn actions(&self) -> ActionList { - actions!(BroadcastEventDiscriminant;) + actions!(EventMessageDiscriminant;) } } diff --git a/editor/src/messages/broadcast/broadcast_event.rs b/editor/src/messages/broadcast/event/event_message.rs similarity index 92% rename from editor/src/messages/broadcast/broadcast_event.rs rename to editor/src/messages/broadcast/event/event_message.rs index ebe2318aa..b2c77111d 100644 --- a/editor/src/messages/broadcast/broadcast_event.rs +++ b/editor/src/messages/broadcast/event/event_message.rs @@ -1,8 +1,8 @@ use crate::messages::prelude::*; -#[derive(PartialEq, Eq, Clone, Debug, serde::Serialize, serde::Deserialize, Hash)] #[impl_message(Message, BroadcastMessage, TriggerEvent)] -pub enum BroadcastEvent { +#[derive(PartialEq, Eq, Clone, Debug, serde::Serialize, serde::Deserialize, Hash)] +pub enum EventMessage { /// Triggered by requestAnimationFrame in JS AnimationFrame, CanvasTransformed, diff --git a/editor/src/messages/broadcast/event/event_message_handler.rs b/editor/src/messages/broadcast/event/event_message_handler.rs new file mode 100644 index 000000000..c8d0170d0 --- /dev/null +++ b/editor/src/messages/broadcast/event/event_message_handler.rs @@ -0,0 +1,22 @@ +use crate::messages::prelude::*; + +#[derive(ExtractField)] +pub struct EventMessageContext<'a> { + pub listeners: &'a mut HashMap>, +} + +#[derive(Debug, Clone, Default, ExtractField)] +pub struct EventMessageHandler {} + +#[message_handler_data] +impl MessageHandler> for EventMessageHandler { + fn process_message(&mut self, message: EventMessage, responses: &mut VecDeque, context: EventMessageContext) { + for message in context.listeners.entry(message).or_default() { + responses.add_front(message.clone()) + } + } + + fn actions(&self) -> ActionList { + actions!(EventMessageDiscriminant;) + } +} diff --git a/editor/src/messages/broadcast/event/mod.rs b/editor/src/messages/broadcast/event/mod.rs new file mode 100644 index 000000000..36913e5ad --- /dev/null +++ b/editor/src/messages/broadcast/event/mod.rs @@ -0,0 +1,7 @@ +mod event_message; +mod event_message_handler; + +#[doc(inline)] +pub use event_message::{EventMessage, EventMessageDiscriminant}; +#[doc(inline)] +pub use event_message_handler::{EventMessageContext, EventMessageHandler}; diff --git a/editor/src/messages/broadcast/mod.rs b/editor/src/messages/broadcast/mod.rs index a6ecb8897..e95de4a79 100644 --- a/editor/src/messages/broadcast/mod.rs +++ b/editor/src/messages/broadcast/mod.rs @@ -1,7 +1,7 @@ mod broadcast_message; mod broadcast_message_handler; -pub mod broadcast_event; +pub mod event; #[doc(inline)] pub use broadcast_message::{BroadcastMessage, BroadcastMessageDiscriminant}; diff --git a/editor/src/messages/clipboard/clipboard_message.rs b/editor/src/messages/clipboard/clipboard_message.rs new file mode 100644 index 000000000..920028a74 --- /dev/null +++ b/editor/src/messages/clipboard/clipboard_message.rs @@ -0,0 +1,13 @@ +use crate::messages::clipboard::utility_types::{ClipboardContent, ClipboardContentRaw}; +use crate::messages::prelude::*; + +#[impl_message(Message, Clipboard)] +#[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] +pub enum ClipboardMessage { + Cut, + Copy, + Paste, + ReadClipboard { content: ClipboardContentRaw }, + ReadSelection { content: Option, cut: bool }, + Write { content: ClipboardContent }, +} diff --git a/editor/src/messages/clipboard/clipboard_message_handler.rs b/editor/src/messages/clipboard/clipboard_message_handler.rs new file mode 100644 index 000000000..57d6f31a4 --- /dev/null +++ b/editor/src/messages/clipboard/clipboard_message_handler.rs @@ -0,0 +1,85 @@ +use crate::messages::clipboard::utility_types::{ClipboardContent, ClipboardContentRaw}; +use crate::messages::prelude::*; +use graphene_std::raster::Image; +use graphite_proc_macros::{ExtractField, message_handler_data}; + +const CLIPBOARD_PREFIX_LAYER: &str = "graphite/layer: "; +const CLIPBOARD_PREFIX_NODES: &str = "graphite/nodes: "; +const CLIPBOARD_PREFIX_VECTOR: &str = "graphite/vector: "; + +#[derive(Debug, Clone, Default, ExtractField)] +pub struct ClipboardMessageHandler {} + +#[message_handler_data] +impl MessageHandler for ClipboardMessageHandler { + fn process_message(&mut self, message: ClipboardMessage, responses: &mut std::collections::VecDeque, _: ()) { + match message { + ClipboardMessage::Cut => responses.add(FrontendMessage::TriggerSelectionRead { cut: true }), + ClipboardMessage::Copy => responses.add(FrontendMessage::TriggerSelectionRead { cut: false }), + ClipboardMessage::Paste => responses.add(FrontendMessage::TriggerClipboardRead), + ClipboardMessage::ReadClipboard { content } => match content { + ClipboardContentRaw::Text(text) => { + if let Some(layer) = text.strip_prefix(CLIPBOARD_PREFIX_LAYER) { + responses.add(PortfolioMessage::PasteSerializedData { data: layer.to_string() }); + } else if let Some(nodes) = text.strip_prefix(CLIPBOARD_PREFIX_NODES) { + responses.add(NodeGraphMessage::PasteNodes { serialized_nodes: nodes.to_string() }); + } else if let Some(vector) = text.strip_prefix(CLIPBOARD_PREFIX_VECTOR) { + responses.add(PortfolioMessage::PasteSerializedVector { data: vector.to_string() }); + } else { + responses.add(FrontendMessage::TriggerSelectionWrite { content: text }); + } + } + ClipboardContentRaw::Svg(svg) => { + responses.add(PortfolioMessage::PasteSvg { + svg, + name: None, + mouse: None, + parent_and_insert_index: None, + }); + } + ClipboardContentRaw::Image { data, width, height } => { + responses.add(PortfolioMessage::PasteImage { + image: Image::from_image_data(&data, width, height), + name: None, + mouse: None, + parent_and_insert_index: None, + }); + } + }, + ClipboardMessage::ReadSelection { content, cut } => { + use crate::messages::portfolio::document::utility_types::clipboards::Clipboard; + if let Some(text) = content { + responses.add(ClipboardMessage::Write { + content: ClipboardContent::Text(text), + }); + } else if cut { + responses.add(PortfolioMessage::Cut { clipboard: Clipboard::Device }); + } else { + responses.add(PortfolioMessage::Copy { clipboard: Clipboard::Device }); + } + } + ClipboardMessage::Write { content } => { + let text = match content { + ClipboardContent::Svg(_) => { + log::error!("SVG copying is not yet supported"); + return; + } + ClipboardContent::Image { .. } => { + log::error!("Image copying is not yet supported"); + return; + } + ClipboardContent::Layer(layer) => format!("{CLIPBOARD_PREFIX_LAYER}{layer}"), + ClipboardContent::Nodes(nodes) => format!("{CLIPBOARD_PREFIX_NODES}{nodes}"), + ClipboardContent::Vector(vector) => format!("{CLIPBOARD_PREFIX_VECTOR}{vector}"), + ClipboardContent::Text(text) => text, + }; + responses.add(FrontendMessage::TriggerClipboardWrite { content: text }); + } + } + } + advertise_actions!(ClipboardMessageDiscriminant; + Cut, + Copy, + Paste, + ); +} diff --git a/editor/src/messages/clipboard/mod.rs b/editor/src/messages/clipboard/mod.rs new file mode 100644 index 000000000..e09086070 --- /dev/null +++ b/editor/src/messages/clipboard/mod.rs @@ -0,0 +1,8 @@ +mod clipboard_message; +pub mod clipboard_message_handler; +pub mod utility_types; + +#[doc(inline)] +pub use clipboard_message::{ClipboardMessage, ClipboardMessageDiscriminant}; +#[doc(inline)] +pub use clipboard_message_handler::ClipboardMessageHandler; diff --git a/editor/src/messages/clipboard/utility_types.rs b/editor/src/messages/clipboard/utility_types.rs new file mode 100644 index 000000000..d32319098 --- /dev/null +++ b/editor/src/messages/clipboard/utility_types.rs @@ -0,0 +1,16 @@ +#[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] +pub enum ClipboardContentRaw { + Text(String), + Svg(String), + Image { data: Vec, width: u32, height: u32 }, +} + +#[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] +pub enum ClipboardContent { + Layer(String), + Nodes(String), + Vector(String), + Text(String), + Svg(String), + Image { data: Vec, width: u32, height: u32 }, +} diff --git a/editor/src/messages/defer/defer_message.rs b/editor/src/messages/defer/defer_message.rs index 66db0ff78..c1b699a70 100644 --- a/editor/src/messages/defer/defer_message.rs +++ b/editor/src/messages/defer/defer_message.rs @@ -3,8 +3,8 @@ use crate::messages::prelude::*; #[impl_message(Message, Defer)] #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] pub enum DeferMessage { - SetGraphSubmissionIndex(u64), - TriggerGraphRun(u64, DocumentId), + SetGraphSubmissionIndex { execution_id: u64 }, + TriggerGraphRun { execution_id: u64, document_id: DocumentId }, AfterGraphRun { messages: Vec }, TriggerNavigationReady, AfterNavigationReady { messages: Vec }, diff --git a/editor/src/messages/defer/defer_message_handler.rs b/editor/src/messages/defer/defer_message_handler.rs index d4738ff7e..a1c4907ec 100644 --- a/editor/src/messages/defer/defer_message_handler.rs +++ b/editor/src/messages/defer/defer_message_handler.rs @@ -24,10 +24,10 @@ impl MessageHandler> for DeferMessageHandl DeferMessage::AfterNavigationReady { messages } => { self.after_viewport_resize.extend_from_slice(&messages); } - DeferMessage::SetGraphSubmissionIndex(execution_id) => { + DeferMessage::SetGraphSubmissionIndex { execution_id } => { self.current_graph_submission_id = execution_id + 1; } - DeferMessage::TriggerGraphRun(execution_id, document_id) => { + DeferMessage::TriggerGraphRun { execution_id, document_id } => { let after_graph_run = self.after_graph_run.entry(document_id).or_default(); if after_graph_run.is_empty() { return; @@ -38,9 +38,9 @@ impl MessageHandler> for DeferMessageHandl for (_, message) in elements.rev() { responses.add_front(message); } - for (id, messages) in self.after_graph_run.iter() { + for (&document_id, messages) in self.after_graph_run.iter() { if !messages.is_empty() { - responses.add(PortfolioMessage::SubmitGraphRender { document_id: *id, ignore_hash: false }); + responses.add(PortfolioMessage::SubmitGraphRender { document_id, ignore_hash: false }); } } } diff --git a/editor/src/messages/dialog/dialog_message.rs b/editor/src/messages/dialog/dialog_message.rs index baee1e658..5a73c980c 100644 --- a/editor/src/messages/dialog/dialog_message.rs +++ b/editor/src/messages/dialog/dialog_message.rs @@ -25,14 +25,14 @@ pub enum DialogMessage { localized_commit_date: String, localized_commit_year: String, }, - RequestComingSoonDialog { - issue: Option, - }, RequestDemoArtworkDialog, RequestExportDialog, RequestLicensesDialogWithLocalizedCommitDate { localized_commit_year: String, }, + RequestLicensesThirdPartyDialogWithLicenseText { + license_text: String, + }, RequestNewDocumentDialog, RequestPreferencesDialog, } diff --git a/editor/src/messages/dialog/dialog_message_handler.rs b/editor/src/messages/dialog/dialog_message_handler.rs index 03e1f12e9..59a57aff2 100644 --- a/editor/src/messages/dialog/dialog_message_handler.rs +++ b/editor/src/messages/dialog/dialog_message_handler.rs @@ -1,13 +1,11 @@ -use super::new_document_dialog::NewDocumentDialogMessageContext; -use super::simple_dialogs::{self, AboutGraphiteDialog, ComingSoonDialog, DemoArtworkDialog, LicensesDialog}; -use crate::messages::input_mapper::utility_types::input_mouse::ViewportBounds; +use super::simple_dialogs::{self, AboutGraphiteDialog, DemoArtworkDialog, LicensesDialog}; +use crate::messages::dialog::simple_dialogs::LicensesThirdPartyDialog; use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::prelude::*; #[derive(ExtractField)] pub struct DialogMessageContext<'a> { pub portfolio: &'a PortfolioMessageHandler, - pub viewport_bounds: &'a ViewportBounds, pub preferences: &'a PreferencesMessageHandler, } @@ -22,15 +20,11 @@ pub struct DialogMessageHandler { #[message_handler_data] impl MessageHandler> for DialogMessageHandler { fn process_message(&mut self, message: DialogMessage, responses: &mut VecDeque, context: DialogMessageContext) { - let DialogMessageContext { - portfolio, - preferences, - viewport_bounds, - } = context; + let DialogMessageContext { portfolio, preferences } = context; match message { DialogMessage::ExportDialog(message) => self.export_dialog.process_message(message, responses, ExportDialogMessageContext { portfolio }), - DialogMessage::NewDocumentDialog(message) => self.new_document_dialog.process_message(message, responses, NewDocumentDialogMessageContext { viewport_bounds }), + DialogMessage::NewDocumentDialog(message) => self.new_document_dialog.process_message(message, responses, ()), DialogMessage::PreferencesDialog(message) => self.preferences_dialog.process_message(message, responses, PreferencesDialogMessageContext { preferences }), DialogMessage::CloseAllDocumentsWithConfirmation => { @@ -68,10 +62,6 @@ impl MessageHandler> for DialogMessageHa dialog.send_dialog_to_frontend(responses); } - DialogMessage::RequestComingSoonDialog { issue } => { - let dialog = ComingSoonDialog { issue }; - dialog.send_dialog_to_frontend(responses); - } DialogMessage::RequestDemoArtworkDialog => { let dialog = DemoArtworkDialog; dialog.send_dialog_to_frontend(responses); @@ -103,6 +93,10 @@ impl MessageHandler> for DialogMessageHa dialog.send_dialog_to_frontend(responses); } + DialogMessage::RequestLicensesThirdPartyDialogWithLicenseText { license_text } => { + let dialog = LicensesThirdPartyDialog { license_text }; + dialog.send_dialog_to_frontend(responses); + } DialogMessage::RequestNewDocumentDialog => { self.new_document_dialog = NewDocumentDialogMessageHandler { name: portfolio.generate_new_document_name(), diff --git a/editor/src/messages/dialog/export_dialog/export_dialog_message.rs b/editor/src/messages/dialog/export_dialog/export_dialog_message.rs index 20b0f8486..c33d94f36 100644 --- a/editor/src/messages/dialog/export_dialog/export_dialog_message.rs +++ b/editor/src/messages/dialog/export_dialog/export_dialog_message.rs @@ -4,10 +4,10 @@ use crate::messages::prelude::*; #[impl_message(Message, DialogMessage, ExportDialog)] #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] pub enum ExportDialogMessage { - FileType(FileType), - ScaleFactor(f64), - TransparentBackground(bool), - ExportBounds(ExportBounds), + FileType { file_type: FileType }, + ScaleFactor { factor: f64 }, + TransparentBackground { transparent: bool }, + ExportBounds { bounds: ExportBounds }, Submit, } diff --git a/editor/src/messages/dialog/export_dialog/export_dialog_message_handler.rs b/editor/src/messages/dialog/export_dialog/export_dialog_message_handler.rs index 0fa126917..32593b80c 100644 --- a/editor/src/messages/dialog/export_dialog/export_dialog_message_handler.rs +++ b/editor/src/messages/dialog/export_dialog/export_dialog_message_handler.rs @@ -38,13 +38,13 @@ impl MessageHandler> for Exp let ExportDialogMessageContext { portfolio } = context; match message { - ExportDialogMessage::FileType(export_type) => self.file_type = export_type, - ExportDialogMessage::ScaleFactor(factor) => self.scale_factor = factor, - ExportDialogMessage::TransparentBackground(transparent_background) => self.transparent_background = transparent_background, - ExportDialogMessage::ExportBounds(export_area) => self.bounds = export_area, + ExportDialogMessage::FileType { file_type } => self.file_type = file_type, + ExportDialogMessage::ScaleFactor { factor } => self.scale_factor = factor, + ExportDialogMessage::TransparentBackground { transparent } => self.transparent_background = transparent, + ExportDialogMessage::ExportBounds { bounds } => self.bounds = bounds, ExportDialogMessage::Submit => responses.add_front(PortfolioMessage::SubmitDocumentExport { - file_name: portfolio.active_document().map(|document| document.name.clone()).unwrap_or_default(), + name: portfolio.active_document().map(|document| document.name.clone()).unwrap_or_default(), file_type: self.file_type, scale_factor: self.scale_factor, bounds: self.bounds, @@ -72,11 +72,11 @@ impl DialogLayoutHolder for ExportDialogMessageHandler { } .into() }) - .widget_holder(), - TextButton::new("Cancel").on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_holder(), + .widget_instance(), + TextButton::new("Cancel").on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_instance(), ]; - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } @@ -84,26 +84,30 @@ impl LayoutHolder for ExportDialogMessageHandler { fn layout(&self) -> Layout { let entries = [(FileType::Png, "PNG"), (FileType::Jpg, "JPG"), (FileType::Svg, "SVG")] .into_iter() - .map(|(val, name)| RadioEntryData::new(format!("{val:?}")).label(name).on_update(move |_| ExportDialogMessage::FileType(val).into())) + .map(|(file_type, name)| { + RadioEntryData::new(format!("{file_type:?}")) + .label(name) + .on_update(move |_| ExportDialogMessage::FileType { file_type }.into()) + }) .collect(); let export_type = vec![ - TextLabel::new("File Type").table_align(true).min_width(100).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - RadioInput::new(entries).selected_index(Some(self.file_type as u32)).widget_holder(), + TextLabel::new("File Type").table_align(true).min_width("100px").widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + RadioInput::new(entries).selected_index(Some(self.file_type as u32)).widget_instance(), ]; let resolution = vec![ - TextLabel::new("Scale Factor").table_align(true).min_width(100).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + TextLabel::new("Scale Factor").table_align(true).min_width("100px").widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), NumberInput::new(Some(self.scale_factor)) .unit("") .min(0.) .max((1_u64 << f64::MANTISSA_DIGITS) as f64) .disabled(self.file_type == FileType::Svg) - .on_update(|number_input: &NumberInput| ExportDialogMessage::ScaleFactor(number_input.value.unwrap()).into()) + .on_update(|number_input: &NumberInput| ExportDialogMessage::ScaleFactor { factor: number_input.value.unwrap() }.into()) .min_width(200) - .widget_holder(), + .widget_instance(), ]; let standard_bounds = vec![ @@ -125,10 +129,10 @@ impl LayoutHolder for ExportDialogMessageHandler { .map(|choice| { choice .into_iter() - .map(|(val, name, disabled)| { - MenuListEntry::new(format!("{val:?}")) + .map(|(bounds, name, disabled)| { + MenuListEntry::new(format!("{bounds:?}")) .label(name) - .on_commit(move |_| ExportDialogMessage::ExportBounds(val).into()) + .on_commit(move |_| ExportDialogMessage::ExportBounds { bounds }.into()) .disabled(disabled) }) .collect::>() @@ -140,27 +144,27 @@ impl LayoutHolder for ExportDialogMessageHandler { } let export_area = vec![ - TextLabel::new("Bounds").table_align(true).min_width(100).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - DropdownInput::new(entries).selected_index(Some(index as u32)).widget_holder(), + TextLabel::new("Bounds").table_align(true).min_width("100px").widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + DropdownInput::new(entries).selected_index(Some(index as u32)).widget_instance(), ]; let checkbox_id = CheckboxId::new(); let transparent_background = vec![ - TextLabel::new("Transparency").table_align(true).min_width(100).for_checkbox(checkbox_id).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + TextLabel::new("Transparency").table_align(true).min_width("100px").for_checkbox(checkbox_id).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), CheckboxInput::new(self.transparent_background) .disabled(self.file_type == FileType::Jpg) - .on_update(move |value: &CheckboxInput| ExportDialogMessage::TransparentBackground(value.checked).into()) + .on_update(move |value: &CheckboxInput| ExportDialogMessage::TransparentBackground { transparent: value.checked }.into()) .for_label(checkbox_id) - .widget_holder(), + .widget_instance(), ]; - Layout::WidgetLayout(WidgetLayout::new(vec![ + Layout(vec![ LayoutGroup::Row { widgets: export_type }, LayoutGroup::Row { widgets: resolution }, LayoutGroup::Row { widgets: export_area }, LayoutGroup::Row { widgets: transparent_background }, - ])) + ]) } } diff --git a/editor/src/messages/dialog/new_document_dialog/mod.rs b/editor/src/messages/dialog/new_document_dialog/mod.rs index cf9f7455d..c179de74d 100644 --- a/editor/src/messages/dialog/new_document_dialog/mod.rs +++ b/editor/src/messages/dialog/new_document_dialog/mod.rs @@ -4,4 +4,4 @@ mod new_document_dialog_message_handler; #[doc(inline)] pub use new_document_dialog_message::{NewDocumentDialogMessage, NewDocumentDialogMessageDiscriminant}; #[doc(inline)] -pub use new_document_dialog_message_handler::{NewDocumentDialogMessageContext, NewDocumentDialogMessageHandler}; +pub use new_document_dialog_message_handler::NewDocumentDialogMessageHandler; diff --git a/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message.rs b/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message.rs index 26502196c..21774de33 100644 --- a/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message.rs +++ b/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message.rs @@ -3,10 +3,10 @@ use crate::messages::prelude::*; #[impl_message(Message, DialogMessage, NewDocumentDialog)] #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] pub enum NewDocumentDialogMessage { - Name(String), - Infinite(bool), - DimensionsX(f64), - DimensionsY(f64), + Name { name: String }, + Infinite { infinite: bool }, + DimensionsX { width: f64 }, + DimensionsY { height: f64 }, Submit, } diff --git a/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs b/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs index 51cf61518..9fae87233 100644 --- a/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs +++ b/editor/src/messages/dialog/new_document_dialog/new_document_dialog_message_handler.rs @@ -1,13 +1,8 @@ +use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::prelude::*; -use crate::messages::{input_mapper::utility_types::input_mouse::ViewportBounds, layout::utility_types::widget_prelude::*}; use glam::{IVec2, UVec2}; use graph_craft::document::NodeId; -#[derive(ExtractField)] -pub struct NewDocumentDialogMessageContext<'a> { - pub viewport_bounds: &'a ViewportBounds, -} - /// A dialog to allow users to set some initial options about a new document. #[derive(Debug, Clone, Default, ExtractField)] pub struct NewDocumentDialogMessageHandler { @@ -17,13 +12,13 @@ pub struct NewDocumentDialogMessageHandler { } #[message_handler_data] -impl<'a> MessageHandler> for NewDocumentDialogMessageHandler { - fn process_message(&mut self, message: NewDocumentDialogMessage, responses: &mut VecDeque, context: NewDocumentDialogMessageContext<'a>) { +impl<'a> MessageHandler for NewDocumentDialogMessageHandler { + fn process_message(&mut self, message: NewDocumentDialogMessage, responses: &mut VecDeque, _: ()) { match message { - NewDocumentDialogMessage::Name(name) => self.name = name, - NewDocumentDialogMessage::Infinite(infinite) => self.infinite = infinite, - NewDocumentDialogMessage::DimensionsX(x) => self.dimensions.x = x as u32, - NewDocumentDialogMessage::DimensionsY(y) => self.dimensions.y = y as u32, + NewDocumentDialogMessage::Name { name } => self.name = name, + NewDocumentDialogMessage::Infinite { infinite } => self.infinite = infinite, + NewDocumentDialogMessage::DimensionsX { width } => self.dimensions.x = width as u32, + NewDocumentDialogMessage::DimensionsY { height } => self.dimensions.y = height as u32, NewDocumentDialogMessage::Submit => { responses.add(PortfolioMessage::NewDocumentWithName { name: self.name.clone() }); @@ -35,16 +30,15 @@ impl<'a> MessageHandler Layout { let name = vec![ - TextLabel::new("Name").table_align(true).min_width(90).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + TextLabel::new("Name").table_align(true).min_width("90px").widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), TextInput::new(&self.name) - .on_update(|text_input: &TextInput| NewDocumentDialogMessage::Name(text_input.value.clone()).into()) + .on_update(|text_input: &TextInput| NewDocumentDialogMessage::Name { name: text_input.value.clone() }.into()) .min_width(204) // Matches the 100px of both NumberInputs below + the 4px of the Unrelated-type separator - .widget_holder(), + .widget_instance(), ]; let checkbox_id = CheckboxId::new(); let infinite = vec![ - TextLabel::new("Infinite Canvas").table_align(true).min_width(90).for_checkbox(checkbox_id).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + TextLabel::new("Infinite Canvas").table_align(true).min_width("90px").for_checkbox(checkbox_id).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), CheckboxInput::new(self.infinite) - .on_update(|checkbox_input: &CheckboxInput| NewDocumentDialogMessage::Infinite(checkbox_input.checked).into()) + .on_update(|checkbox_input: &CheckboxInput| NewDocumentDialogMessage::Infinite { infinite: checkbox_input.checked }.into()) .for_label(checkbox_id) - .widget_holder(), + .widget_instance(), ]; let scale = vec![ - TextLabel::new("Dimensions").table_align(true).min_width(90).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + TextLabel::new("Dimensions").table_align(true).min_width("90px").widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), NumberInput::new(Some(self.dimensions.x as f64)) .label("W") .unit(" px") @@ -108,9 +102,9 @@ impl LayoutHolder for NewDocumentDialogMessageHandler { .is_integer(true) .disabled(self.infinite) .min_width(100) - .on_update(|number_input: &NumberInput| NewDocumentDialogMessage::DimensionsX(number_input.value.unwrap()).into()) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .on_update(|number_input: &NumberInput| NewDocumentDialogMessage::DimensionsX { width: number_input.value.unwrap() }.into()) + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(self.dimensions.y as f64)) .label("H") .unit(" px") @@ -119,14 +113,10 @@ impl LayoutHolder for NewDocumentDialogMessageHandler { .is_integer(true) .disabled(self.infinite) .min_width(100) - .on_update(|number_input: &NumberInput| NewDocumentDialogMessage::DimensionsY(number_input.value.unwrap()).into()) - .widget_holder(), + .on_update(|number_input: &NumberInput| NewDocumentDialogMessage::DimensionsY { height: number_input.value.unwrap() }.into()) + .widget_instance(), ]; - Layout::WidgetLayout(WidgetLayout::new(vec![ - LayoutGroup::Row { widgets: name }, - LayoutGroup::Row { widgets: infinite }, - LayoutGroup::Row { widgets: scale }, - ])) + Layout(vec![LayoutGroup::Row { widgets: name }, LayoutGroup::Row { widgets: infinite }, LayoutGroup::Row { widgets: scale }]) } } diff --git a/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs b/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs index 26bbd4c2b..c17f2c497 100644 --- a/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs +++ b/editor/src/messages/dialog/preferences_dialog/preferences_dialog_message_handler.rs @@ -36,186 +36,255 @@ impl PreferencesDialogMessageHandler { const TITLE: &'static str = "Editor Preferences"; fn layout(&self, preferences: &PreferencesMessageHandler) -> Layout { + let mut rows = Vec::new(); + // ========== // NAVIGATION // ========== + { + let header = vec![TextLabel::new("Navigation").italic(true).widget_instance()]; - let navigation_header = vec![TextLabel::new("Navigation").italic(true).widget_holder()]; + let zoom_rate_description = "Adjust how fast zooming occurs when using the scroll wheel or pinch gesture (relative to a default of 50)."; + let zoom_rate_label = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + TextLabel::new("Zoom Rate").tooltip_label("Zoom Rate").tooltip_description(zoom_rate_description).widget_instance(), + ]; + let zoom_rate = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + NumberInput::new(Some(map_zoom_rate_to_display(preferences.viewport_zoom_wheel_rate))) + .tooltip_label("Zoom Rate") + .tooltip_description(zoom_rate_description) + .mode_range() + .int() + .min(1.) + .max(100.) + .on_update(|number_input: &NumberInput| { + if let Some(display_value) = number_input.value { + let actual_rate = map_display_to_zoom_rate(display_value); + PreferencesMessage::ViewportZoomWheelRate { rate: actual_rate }.into() + } else { + PreferencesMessage::ViewportZoomWheelRate { rate: VIEWPORT_ZOOM_WHEEL_RATE }.into() + } + }) + .widget_instance(), + ]; - let zoom_rate_tooltip = "Adjust how fast zooming occurs when using the scroll wheel or pinch gesture (relative to a default of 50)"; - let zoom_rate_label = vec![ - Separator::new(SeparatorType::Unrelated).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - TextLabel::new("Zoom Rate").tooltip(zoom_rate_tooltip).widget_holder(), - ]; - let zoom_rate = vec![ - Separator::new(SeparatorType::Unrelated).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - NumberInput::new(Some(map_zoom_rate_to_display(preferences.viewport_zoom_wheel_rate))) - .tooltip(zoom_rate_tooltip) - .mode_range() - .int() - .min(1.) - .max(100.) - .on_update(|number_input: &NumberInput| { - if let Some(display_value) = number_input.value { - let actual_rate = map_display_to_zoom_rate(display_value); - PreferencesMessage::ViewportZoomWheelRate { rate: actual_rate }.into() - } else { - PreferencesMessage::ViewportZoomWheelRate { rate: VIEWPORT_ZOOM_WHEEL_RATE }.into() - } - }) - .widget_holder(), - ]; + let checkbox_id = CheckboxId::new(); + let zoom_with_scroll_description = "Use the scroll wheel for zooming instead of vertically panning (not recommended for trackpads)."; + let zoom_with_scroll = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + CheckboxInput::new(preferences.zoom_with_scroll) + .tooltip_label("Zoom with Scroll") + .tooltip_description(zoom_with_scroll_description) + .on_update(|checkbox_input: &CheckboxInput| { + PreferencesMessage::ModifyLayout { + zoom_with_scroll: checkbox_input.checked, + } + .into() + }) + .for_label(checkbox_id) + .widget_instance(), + TextLabel::new("Zoom with Scroll") + .tooltip_label("Zoom with Scroll") + .tooltip_description(zoom_with_scroll_description) + .for_checkbox(checkbox_id) + .widget_instance(), + ]; - let checkbox_id = CheckboxId::new(); - let zoom_with_scroll_tooltip = "Use the scroll wheel for zooming instead of vertically panning (not recommended for trackpads)"; - let zoom_with_scroll = vec![ - Separator::new(SeparatorType::Unrelated).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - CheckboxInput::new(preferences.zoom_with_scroll) - .tooltip(zoom_with_scroll_tooltip) - .on_update(|checkbox_input: &CheckboxInput| { - PreferencesMessage::ModifyLayout { - zoom_with_scroll: checkbox_input.checked, - } - .into() - }) - .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Zoom with Scroll") - .table_align(true) - .tooltip(zoom_with_scroll_tooltip) - .for_checkbox(checkbox_id) - .widget_holder(), - ]; + rows.extend_from_slice(&[header, zoom_rate_label, zoom_rate, zoom_with_scroll]); + } // ======= // EDITING // ======= + { + let header = vec![TextLabel::new("Editing").italic(true).widget_instance()]; - let editing_header = vec![TextLabel::new("Editing").italic(true).widget_holder()]; + let selection_label = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + TextLabel::new("Selection") + .tooltip_label("Selection") + .tooltip_description("Choose how targets are selected within dragged rectangular and lasso areas.") + .widget_instance(), + ]; - let selection_label = vec![ - Separator::new(SeparatorType::Unrelated).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - TextLabel::new("Selection").widget_holder(), - ]; + let selection_mode = RadioInput::new(vec![ + RadioEntryData::new(SelectionMode::Touched.to_string()) + .label(SelectionMode::Touched.to_string()) + .tooltip_label(SelectionMode::Touched.to_string()) + .tooltip_description(SelectionMode::Touched.tooltip_description()) + .on_update(move |_| { + PreferencesMessage::SelectionMode { + selection_mode: SelectionMode::Touched, + } + .into() + }), + RadioEntryData::new(SelectionMode::Enclosed.to_string()) + .label(SelectionMode::Enclosed.to_string()) + .tooltip_label(SelectionMode::Enclosed.to_string()) + .tooltip_description(SelectionMode::Enclosed.tooltip_description()) + .on_update(move |_| { + PreferencesMessage::SelectionMode { + selection_mode: SelectionMode::Enclosed, + } + .into() + }), + RadioEntryData::new(SelectionMode::Directional.to_string()) + .label(SelectionMode::Directional.to_string()) + .tooltip_label(SelectionMode::Directional.to_string()) + .tooltip_description(SelectionMode::Directional.tooltip_description()) + .on_update(move |_| { + PreferencesMessage::SelectionMode { + selection_mode: SelectionMode::Directional, + } + .into() + }), + ]) + .selected_index(Some(preferences.selection_mode as u32)) + .widget_instance(); + let selection_mode = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + selection_mode, + ]; - let selection_mode = RadioInput::new(vec![ - RadioEntryData::new(SelectionMode::Touched.to_string()) - .label(SelectionMode::Touched.to_string()) - .tooltip(SelectionMode::Touched.tooltip_description()) - .on_update(move |_| { - PreferencesMessage::SelectionMode { - selection_mode: SelectionMode::Touched, - } - .into() - }), - RadioEntryData::new(SelectionMode::Enclosed.to_string()) - .label(SelectionMode::Enclosed.to_string()) - .tooltip(SelectionMode::Enclosed.tooltip_description()) - .on_update(move |_| { - PreferencesMessage::SelectionMode { - selection_mode: SelectionMode::Enclosed, - } - .into() - }), - RadioEntryData::new(SelectionMode::Directional.to_string()) - .label(SelectionMode::Directional.to_string()) - .tooltip(SelectionMode::Directional.tooltip_description()) - .on_update(move |_| { - PreferencesMessage::SelectionMode { - selection_mode: SelectionMode::Directional, - } - .into() - }), - ]) - .selected_index(Some(preferences.selection_mode as u32)) - .widget_holder(); - let selection_mode = vec![ - Separator::new(SeparatorType::Unrelated).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - selection_mode, - ]; + rows.extend_from_slice(&[header, selection_label, selection_mode]); + } + + // ========= + // INTERFACE + // ========= + #[cfg(not(target_family = "wasm"))] + { + let header = vec![TextLabel::new("Interface").italic(true).widget_instance()]; + + let scale_description = "Adjust the scale of the entire user interface (100% is default)."; + let scale_label = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + TextLabel::new("Scale").tooltip_label("Scale").tooltip_description(scale_description).widget_instance(), + ]; + let scale = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + NumberInput::new(Some(ui_scale_to_display(preferences.ui_scale))) + .tooltip_label("Scale") + .tooltip_description(scale_description) + .mode_range() + .int() + .min(ui_scale_to_display(crate::consts::UI_SCALE_MIN)) + .max(ui_scale_to_display(crate::consts::UI_SCALE_MAX)) + .unit("%") + .on_update(|number_input: &NumberInput| { + if let Some(display_value) = number_input.value { + let scale = map_display_to_ui_scale(display_value); + PreferencesMessage::UIScale { scale }.into() + } else { + PreferencesMessage::UIScale { + scale: crate::consts::UI_SCALE_DEFAULT, + } + .into() + } + }) + .widget_instance(), + ]; + + rows.extend_from_slice(&[header, scale_label, scale]); + } // ============ // EXPERIMENTAL // ============ + { + let header = vec![TextLabel::new("Experimental").italic(true).widget_instance()]; - let experimental_header = vec![TextLabel::new("Experimental").italic(true).widget_holder()]; + let node_graph_section_description = "Configure the appearance of the wires running between node connections in the graph."; + let node_graph_wires_label = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + TextLabel::new("Node Graph Wires") + .tooltip_label("Node Graph Wires") + .tooltip_description(node_graph_section_description) + .widget_instance(), + ]; + let graph_wire_style = RadioInput::new(vec![ + RadioEntryData::new(GraphWireStyle::Direct.to_string()) + .label(GraphWireStyle::Direct.to_string()) + .tooltip_label(GraphWireStyle::Direct.to_string()) + .tooltip_description(GraphWireStyle::Direct.tooltip_description()) + .on_update(move |_| PreferencesMessage::GraphWireStyle { style: GraphWireStyle::Direct }.into()), + RadioEntryData::new(GraphWireStyle::GridAligned.to_string()) + .label(GraphWireStyle::GridAligned.to_string()) + .tooltip_label(GraphWireStyle::GridAligned.to_string()) + .tooltip_description(GraphWireStyle::GridAligned.tooltip_description()) + .on_update(move |_| PreferencesMessage::GraphWireStyle { style: GraphWireStyle::GridAligned }.into()), + ]) + .selected_index(Some(preferences.graph_wire_style as u32)) + .widget_instance(); + let graph_wire_style = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + graph_wire_style, + ]; - let node_graph_section_tooltip = "Appearance of the wires running between node connections in the graph"; - let node_graph_wires_label = vec![ - Separator::new(SeparatorType::Unrelated).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - TextLabel::new("Node Graph Wires").tooltip(node_graph_section_tooltip).widget_holder(), - ]; - let graph_wire_style = RadioInput::new(vec![ - RadioEntryData::new(GraphWireStyle::Direct.to_string()) - .label(GraphWireStyle::Direct.to_string()) - .tooltip(GraphWireStyle::Direct.tooltip_description()) - .on_update(move |_| PreferencesMessage::GraphWireStyle { style: GraphWireStyle::Direct }.into()), - RadioEntryData::new(GraphWireStyle::GridAligned.to_string()) - .label(GraphWireStyle::GridAligned.to_string()) - .tooltip(GraphWireStyle::GridAligned.tooltip_description()) - .on_update(move |_| PreferencesMessage::GraphWireStyle { style: GraphWireStyle::GridAligned }.into()), - ]) - .selected_index(Some(preferences.graph_wire_style as u32)) - .widget_holder(); - let graph_wire_style = vec![ - Separator::new(SeparatorType::Unrelated).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - graph_wire_style, - ]; + let checkbox_id = CheckboxId::new(); + let vello_description = "Use the experimental Vello renderer instead of SVG-based rendering.".to_string(); + #[cfg(target_family = "wasm")] + let mut vello_description = vello_description; + #[cfg(target_family = "wasm")] + vello_description.push_str("\n\n(Your browser must support WebGPU.)"); - let checkbox_id = CheckboxId::new(); - let vello_tooltip = "Use the experimental Vello renderer (your browser must support WebGPU)"; - let use_vello = vec![ - Separator::new(SeparatorType::Unrelated).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - CheckboxInput::new(preferences.use_vello && preferences.supports_wgpu()) - .tooltip(vello_tooltip) - .disabled(!preferences.supports_wgpu()) - .on_update(|checkbox_input: &CheckboxInput| PreferencesMessage::UseVello { use_vello: checkbox_input.checked }.into()) - .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Vello Renderer") - .table_align(true) - .tooltip(vello_tooltip) - .disabled(!preferences.supports_wgpu()) - .for_checkbox(checkbox_id) - .widget_holder(), - ]; + let use_vello = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + CheckboxInput::new(preferences.use_vello && preferences.supports_wgpu()) + .tooltip_label("Vello Renderer") + .tooltip_description(vello_description.clone()) + .disabled(!preferences.supports_wgpu()) + .on_update(|checkbox_input: &CheckboxInput| PreferencesMessage::UseVello { use_vello: checkbox_input.checked }.into()) + .for_label(checkbox_id) + .widget_instance(), + TextLabel::new("Vello Renderer") + .tooltip_label("Vello Renderer") + .tooltip_description(vello_description) + .disabled(!preferences.supports_wgpu()) + .for_checkbox(checkbox_id) + .widget_instance(), + ]; - let checkbox_id = CheckboxId::new(); - let vector_mesh_tooltip = - "Allow tools to produce vector meshes, where more than two segments can connect to an anchor point.\n\nCurrently this does not properly handle stroke joins and fills."; - let vector_meshes = vec![ - Separator::new(SeparatorType::Unrelated).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), - CheckboxInput::new(preferences.vector_meshes) - .tooltip(vector_mesh_tooltip) - .on_update(|checkbox_input: &CheckboxInput| PreferencesMessage::VectorMeshes { enabled: checkbox_input.checked }.into()) - .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Vector Meshes").table_align(true).tooltip(vector_mesh_tooltip).for_checkbox(checkbox_id).widget_holder(), - ]; + let checkbox_id = CheckboxId::new(); + let brush_tool_description = " + Enable the Brush tool to support basic raster-based layer painting.\n\ + \n\ + This legacy experimental tool has performance and quality limitations and is slated for replacement in future versions of Graphite that will focus on raster graphics editing.\n\ + \n\ + Content created with the Brush tool may not be compatible with future versions of Graphite. + " + .trim(); + let brush_tool = vec![ + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + CheckboxInput::new(preferences.brush_tool) + .tooltip_label("Brush Tool") + .tooltip_description(brush_tool_description) + .on_update(|checkbox_input: &CheckboxInput| PreferencesMessage::BrushTool { enabled: checkbox_input.checked }.into()) + .for_label(checkbox_id) + .widget_instance(), + TextLabel::new("Brush Tool") + .tooltip_label("Brush Tool") + .tooltip_description(brush_tool_description) + .for_checkbox(checkbox_id) + .widget_instance(), + ]; - Layout::WidgetLayout(WidgetLayout::new(vec![ - LayoutGroup::Row { widgets: navigation_header }, - LayoutGroup::Row { widgets: zoom_rate_label }, - LayoutGroup::Row { widgets: zoom_rate }, - LayoutGroup::Row { widgets: zoom_with_scroll }, - LayoutGroup::Row { widgets: editing_header }, - LayoutGroup::Row { widgets: selection_label }, - LayoutGroup::Row { widgets: selection_mode }, - LayoutGroup::Row { widgets: experimental_header }, - LayoutGroup::Row { widgets: node_graph_wires_label }, - LayoutGroup::Row { widgets: graph_wire_style }, - LayoutGroup::Row { widgets: use_vello }, - LayoutGroup::Row { widgets: vector_meshes }, - ])) + rows.extend_from_slice(&[header, node_graph_wires_label, graph_wire_style, use_vello, brush_tool]); + } + + Layout(rows.into_iter().map(|r| LayoutGroup::Row { widgets: r }).collect()) } pub fn send_layout(&self, responses: &mut VecDeque, layout_target: LayoutTarget, preferences: &PreferencesMessageHandler) { @@ -246,11 +315,11 @@ impl PreferencesDialogMessageHandler { } .into() }) - .widget_holder(), - TextButton::new("Reset to Defaults").on_update(|_| PreferencesMessage::ResetToDefaults.into()).widget_holder(), + .widget_instance(), + TextButton::new("Reset to Defaults").on_update(|_| PreferencesMessage::ResetToDefaults.into()).widget_instance(), ]; - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } fn send_layout_buttons(&self, responses: &mut VecDeque, layout_target: LayoutTarget) { @@ -287,3 +356,15 @@ fn map_zoom_rate_to_display(rate: f64) -> f64 { let display = 50. + distance_from_reference; display.clamp(1., 100.).round() } + +/// Maps display values in percent to actual ui scale. +#[cfg(not(target_family = "wasm"))] +fn map_display_to_ui_scale(display: f64) -> f64 { + display / 100. +} + +/// Maps actual ui scale back to display values in percent. +#[cfg(not(target_family = "wasm"))] +fn ui_scale_to_display(scale: f64) -> f64 { + scale * 100. +} diff --git a/editor/src/messages/dialog/simple_dialogs/about_graphite_dialog.rs b/editor/src/messages/dialog/simple_dialogs/about_graphite_dialog.rs index 13c52dbc0..caba39ca1 100644 --- a/editor/src/messages/dialog/simple_dialogs/about_graphite_dialog.rs +++ b/editor/src/messages/dialog/simple_dialogs/about_graphite_dialog.rs @@ -13,16 +13,16 @@ impl DialogLayoutHolder for AboutGraphiteDialog { const TITLE: &'static str = "About Graphite"; fn layout_buttons(&self) -> Layout { - let widgets = vec![TextButton::new("OK").emphasized(true).on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_holder()]; + let widgets = vec![TextButton::new("OK").emphasized(true).on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_instance()]; - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } fn layout_column_2(&self) -> Layout { let links = [ - ("Heart", "Donate", "https://graphite.rs/donate/"), - ("Volunteer", "Volunteer", "https://graphite.rs/volunteer/"), - ("GraphiteLogo", "Website", "https://graphite.rs"), + ("Heart", "Donate", "https://graphite.art/donate/"), + ("GraphiteLogo", "Website", "https://graphite.art"), + ("Volunteer", "Volunteer", "https://graphite.art/volunteer/"), ("Credits", "Credits", "https://github.com/GraphiteEditor/Graphite/graphs/contributors"), ]; let mut widgets = links @@ -32,7 +32,7 @@ impl DialogLayoutHolder for AboutGraphiteDialog { .icon(Some(icon.into())) .flush(true) .on_update(|_| FrontendMessage::TriggerVisitLink { url: url.into() }.into()) - .widget_holder() + .widget_instance() }) .collect::>(); @@ -48,25 +48,25 @@ impl DialogLayoutHolder for AboutGraphiteDialog { } .into() }) - .widget_holder(), + .widget_instance(), ); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Column { widgets }])) + Layout(vec![LayoutGroup::Column { widgets }]) } } impl LayoutHolder for AboutGraphiteDialog { fn layout(&self) -> Layout { - Layout::WidgetLayout(WidgetLayout::new(vec![ + Layout(vec![ LayoutGroup::Row { - widgets: vec![TextLabel::new("About this release").bold(true).widget_holder()], + widgets: vec![TextLabel::new("About this release").bold(true).widget_instance()], }, LayoutGroup::Row { - widgets: vec![TextLabel::new(commit_info_localized(&self.localized_commit_date)).multiline(true).widget_holder()], + widgets: vec![TextLabel::new(commit_info_localized(&self.localized_commit_date)).multiline(true).widget_instance()], }, LayoutGroup::Row { - widgets: vec![TextLabel::new(format!("Copyright ยฉ {} Graphite contributors", self.localized_commit_year)).widget_holder()], + widgets: vec![TextLabel::new(format!("Copyright ยฉ {} Graphite contributors", self.localized_commit_year)).widget_instance()], }, - ])) + ]) } } diff --git a/editor/src/messages/dialog/simple_dialogs/close_all_documents_dialog.rs b/editor/src/messages/dialog/simple_dialogs/close_all_documents_dialog.rs index 070972f05..545f764cc 100644 --- a/editor/src/messages/dialog/simple_dialogs/close_all_documents_dialog.rs +++ b/editor/src/messages/dialog/simple_dialogs/close_all_documents_dialog.rs @@ -20,11 +20,11 @@ impl DialogLayoutHolder for CloseAllDocumentsDialog { } .into() }) - .widget_holder(), - TextButton::new("Cancel").on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_holder(), + .widget_instance(), + TextButton::new("Cancel").on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_instance(), ]; - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } @@ -32,13 +32,13 @@ impl LayoutHolder for CloseAllDocumentsDialog { fn layout(&self) -> Layout { let unsaved_list = "โ€ข ".to_string() + &self.unsaved_document_names.join("\nโ€ข "); - Layout::WidgetLayout(WidgetLayout::new(vec![ + Layout(vec![ LayoutGroup::Row { - widgets: vec![TextLabel::new("Save documents before closing them?").bold(true).multiline(true).widget_holder()], + widgets: vec![TextLabel::new("Save documents before closing them?").bold(true).multiline(true).widget_instance()], }, LayoutGroup::Row { - widgets: vec![TextLabel::new(format!("Documents with unsaved changes:\n{unsaved_list}")).multiline(true).widget_holder()], + widgets: vec![TextLabel::new(format!("Documents with unsaved changes:\n{unsaved_list}")).multiline(true).widget_instance()], }, - ])) + ]) } } diff --git a/editor/src/messages/dialog/simple_dialogs/close_document_dialog.rs b/editor/src/messages/dialog/simple_dialogs/close_document_dialog.rs index d370b2fde..d535acbaa 100644 --- a/editor/src/messages/dialog/simple_dialogs/close_document_dialog.rs +++ b/editor/src/messages/dialog/simple_dialogs/close_document_dialog.rs @@ -1,4 +1,4 @@ -use crate::messages::broadcast::broadcast_event::BroadcastEvent; +use crate::messages::broadcast::event::EventMessage; use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::prelude::*; @@ -23,19 +23,19 @@ impl DialogLayoutHolder for CloseDocumentDialog { } .into() }) - .widget_holder(), + .widget_instance(), TextButton::new("Discard") .on_update(move |_| { DialogMessage::CloseDialogAndThen { - followups: vec![BroadcastEvent::ToolAbort.into(), PortfolioMessage::CloseDocument { document_id }.into()], + followups: vec![EventMessage::ToolAbort.into(), PortfolioMessage::CloseDocument { document_id }.into()], } .into() }) - .widget_holder(), - TextButton::new("Cancel").on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_holder(), + .widget_instance(), + TextButton::new("Cancel").on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_instance(), ]; - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } @@ -51,13 +51,13 @@ impl LayoutHolder for CloseDocumentDialog { let break_lines = if self.document_name.len() > max_one_line_length { '\n' } else { ' ' }; - Layout::WidgetLayout(WidgetLayout::new(vec![ + Layout(vec![ LayoutGroup::Row { - widgets: vec![TextLabel::new("Save document before closing it?").bold(true).widget_holder()], + widgets: vec![TextLabel::new("Save document before closing it?").bold(true).widget_instance()], }, LayoutGroup::Row { - widgets: vec![TextLabel::new(format!("\"{name}{ellipsis}\"{break_lines}has unsaved changes")).multiline(true).widget_holder()], + widgets: vec![TextLabel::new(format!("\"{name}{ellipsis}\"{break_lines}has unsaved changes")).multiline(true).widget_instance()], }, - ])) + ]) } } diff --git a/editor/src/messages/dialog/simple_dialogs/coming_soon_dialog.rs b/editor/src/messages/dialog/simple_dialogs/coming_soon_dialog.rs deleted file mode 100644 index b72c2301a..000000000 --- a/editor/src/messages/dialog/simple_dialogs/coming_soon_dialog.rs +++ /dev/null @@ -1,48 +0,0 @@ -use crate::messages::layout::utility_types::widget_prelude::*; -use crate::messages::prelude::*; - -/// A dialog to notify users of an unfinished issue, optionally with an issue number. -pub struct ComingSoonDialog { - pub issue: Option, -} - -impl DialogLayoutHolder for ComingSoonDialog { - const ICON: &'static str = "Delay"; - const TITLE: &'static str = "Coming Soon"; - - fn layout_buttons(&self) -> Layout { - let widgets = vec![TextButton::new("OK").emphasized(true).on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_holder()]; - - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) - } -} - -impl LayoutHolder for ComingSoonDialog { - fn layout(&self) -> Layout { - let header = vec![TextLabel::new("You've stumbled upon a placeholder").bold(true).widget_holder()]; - let row1 = vec![TextLabel::new("This feature is not implemented yet.").widget_holder()]; - - let mut rows = vec![LayoutGroup::Row { widgets: header }, LayoutGroup::Row { widgets: row1 }]; - - if let Some(issue) = self.issue { - let row2 = vec![TextLabel::new("But you can help build it! Visit its issue:").widget_holder()]; - let row3 = vec![ - TextButton::new(format!("GitHub Issue #{issue}")) - .icon(Some("Website".into())) - .flush(true) - .on_update(move |_| { - FrontendMessage::TriggerVisitLink { - url: format!("https://github.com/GraphiteEditor/Graphite/issues/{issue}"), - } - .into() - }) - .widget_holder(), - ]; - - rows.push(LayoutGroup::Row { widgets: row2 }); - rows.push(LayoutGroup::Row { widgets: row3 }); - } - - Layout::WidgetLayout(WidgetLayout::new(rows)) - } -} diff --git a/editor/src/messages/dialog/simple_dialogs/demo_artwork_dialog.rs b/editor/src/messages/dialog/simple_dialogs/demo_artwork_dialog.rs index 8a6b59a47..e30a96ab1 100644 --- a/editor/src/messages/dialog/simple_dialogs/demo_artwork_dialog.rs +++ b/editor/src/messages/dialog/simple_dialogs/demo_artwork_dialog.rs @@ -20,9 +20,9 @@ impl DialogLayoutHolder for DemoArtworkDialog { const TITLE: &'static str = "Demo Artwork"; fn layout_buttons(&self) -> Layout { - let widgets = vec![TextButton::new("Close").emphasized(true).on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_holder()]; + let widgets = vec![TextButton::new("Close").emphasized(true).on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_instance()]; - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } @@ -46,12 +46,12 @@ impl LayoutHolder for DemoArtworkDialog { let images = chunk .iter() - .map(|(name, thumbnail, filename)| ImageButton::new(*thumbnail).width(Some("256px".into())).on_update(|_| make_dialog(name, filename)).widget_holder()) + .map(|(name, thumbnail, filename)| ImageButton::new(*thumbnail).width(Some("256px".into())).on_update(|_| make_dialog(name, filename)).widget_instance()) .collect(); let buttons = chunk .iter() - .map(|(name, _, filename)| TextButton::new(*name).min_width(256).flush(true).on_update(|_| make_dialog(name, filename)).widget_holder()) + .map(|(name, _, filename)| TextButton::new(*name).min_width(256).flush(true).on_update(|_| make_dialog(name, filename)).widget_instance()) .collect(); vec![LayoutGroup::Row { widgets: images }, LayoutGroup::Row { widgets: buttons }, LayoutGroup::Row { widgets: vec![] }] @@ -59,6 +59,6 @@ impl LayoutHolder for DemoArtworkDialog { .collect(); let _ = rows_of_images_with_buttons.pop(); - Layout::WidgetLayout(WidgetLayout::new(rows_of_images_with_buttons)) + Layout(rows_of_images_with_buttons) } } diff --git a/editor/src/messages/dialog/simple_dialogs/error_dialog.rs b/editor/src/messages/dialog/simple_dialogs/error_dialog.rs index cf9447541..9ef98916d 100644 --- a/editor/src/messages/dialog/simple_dialogs/error_dialog.rs +++ b/editor/src/messages/dialog/simple_dialogs/error_dialog.rs @@ -12,21 +12,21 @@ impl DialogLayoutHolder for ErrorDialog { const TITLE: &'static str = "Error"; fn layout_buttons(&self) -> Layout { - let widgets = vec![TextButton::new("OK").emphasized(true).on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_holder()]; + let widgets = vec![TextButton::new("OK").emphasized(true).on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_instance()]; - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } impl LayoutHolder for ErrorDialog { fn layout(&self) -> Layout { - Layout::WidgetLayout(WidgetLayout::new(vec![ + Layout(vec![ LayoutGroup::Row { - widgets: vec![TextLabel::new(&self.title).bold(true).widget_holder()], + widgets: vec![TextLabel::new(&self.title).bold(true).widget_instance()], }, LayoutGroup::Row { - widgets: vec![TextLabel::new(&self.description).multiline(true).widget_holder()], + widgets: vec![TextLabel::new(&self.description).multiline(true).widget_instance()], }, - ])) + ]) } } diff --git a/editor/src/messages/dialog/simple_dialogs/licenses_dialog.rs b/editor/src/messages/dialog/simple_dialogs/licenses_dialog.rs index 694a9986d..e531858d3 100644 --- a/editor/src/messages/dialog/simple_dialogs/licenses_dialog.rs +++ b/editor/src/messages/dialog/simple_dialogs/licenses_dialog.rs @@ -10,54 +10,66 @@ impl DialogLayoutHolder for LicensesDialog { const TITLE: &'static str = "Licenses"; fn layout_buttons(&self) -> Layout { - let widgets = vec![TextButton::new("OK").emphasized(true).on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_holder()]; + let widgets = vec![TextButton::new("OK").emphasized(true).on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_instance()]; - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } fn layout_column_2(&self) -> Layout { - let icons_license_link = "https://raw.githubusercontent.com/GraphiteEditor/Graphite/master/frontend/assets/LICENSE.md"; - let links = [ - ("GraphiteLogo", "Graphite Logo", "https://graphite.rs/logo/"), - ("IconsGrid", "Graphite Icons", icons_license_link), - ("License", "Graphite License", "https://graphite.rs/license/"), - ("License", "Other Licenses", "/third-party-licenses.txt"), + #[allow(clippy::type_complexity)] + let button_definitions: &[(&str, &str, fn() -> Message)] = &[ + ("GraphiteLogo", "Graphite Logo", || { + FrontendMessage::TriggerVisitLink { + url: "https://graphite.art/logo/".into(), + } + .into() + }), + ("IconsGrid", "Graphite Icons", || { + FrontendMessage::TriggerVisitLink { + url: "https://raw.githubusercontent.com/GraphiteEditor/Graphite/master/frontend/assets/LICENSE.md".into(), + } + .into() + }), + ("License", "Graphite License", || { + FrontendMessage::TriggerVisitLink { + url: "https://graphite.art/license/".into(), + } + .into() + }), + ("License", "Other Licenses", || FrontendMessage::TriggerDisplayThirdPartyLicensesDialog.into()), ]; - let widgets = links - .into_iter() - .map(|(icon, label, url)| { - TextButton::new(label) - .icon(Some(icon.into())) - .flush(true) - .on_update(|_| FrontendMessage::TriggerVisitLink { url: url.into() }.into()) - .widget_holder() - }) + let widgets = button_definitions + .iter() + .map(|&(icon, label, message_factory)| TextButton::new(label).icon(Some((icon).into())).flush(true).on_update(move |_| message_factory()).widget_instance()) .collect(); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Column { widgets }])) + Layout(vec![LayoutGroup::Column { widgets }]) } } impl LayoutHolder for LicensesDialog { fn layout(&self) -> Layout { - let description = concat!( - "The Graphite logo and brand identity are copyright ยฉ [YEAR]\nGraphite Labs, LLC. See \"Graphite Logo\" for usage policy.", - "\n\n", - "The Graphite editor's icons and design assets are copyright\nยฉ [YEAR] Graphite Labs, LLC. See \"Graphite Icons\" for details.", - "\n\n", - "Graphite code is copyright ยฉ [YEAR] Graphite contributors\nand is made available under the Apache 2.0 license. See\n\"Graphite License\" for details.", - "\n\n", - "Graphite is distributed with third-party open source code\ndependencies. See \"Other Licenses\" for details.", - ) - .replace("[YEAR]", &self.localized_commit_year); + let year = &self.localized_commit_year; + let description = format!( + " + The Graphite logo and brand identity are copyright ยฉ {year}\nGraphite Labs, LLC. See \"Graphite Logo\" for usage policy.\n\ + \n\ + The Graphite editor's icons and design assets are copyright\nยฉ {year} Graphite Labs, LLC. See \"Graphite Icons\" for details.\n\ + \n\ + Graphite code is copyright ยฉ {year} Graphite contributors\nand is made available under the Apache 2.0 license. See\n\"Graphite License\" for details.\n\ + \n\ + Graphite is distributed with third-party open source code\ndependencies. See \"Other Licenses\" for details. + " + ); + let description = description.trim(); - Layout::WidgetLayout(WidgetLayout::new(vec![ + Layout(vec![ LayoutGroup::Row { - widgets: vec![TextLabel::new("Graphite is free, open source software").bold(true).widget_holder()], + widgets: vec![TextLabel::new("Graphite is free, open source software").bold(true).widget_instance()], }, LayoutGroup::Row { - widgets: vec![TextLabel::new(description).multiline(true).widget_holder()], + widgets: vec![TextLabel::new(description).multiline(true).widget_instance()], }, - ])) + ]) } } diff --git a/editor/src/messages/dialog/simple_dialogs/licenses_third_party_dialog.rs b/editor/src/messages/dialog/simple_dialogs/licenses_third_party_dialog.rs new file mode 100644 index 000000000..e891ed205 --- /dev/null +++ b/editor/src/messages/dialog/simple_dialogs/licenses_third_party_dialog.rs @@ -0,0 +1,44 @@ +use crate::messages::layout::utility_types::widget_prelude::*; +use crate::messages::prelude::*; + +pub struct LicensesThirdPartyDialog { + pub license_text: String, +} + +impl DialogLayoutHolder for LicensesThirdPartyDialog { + const ICON: &'static str = "License12px"; + const TITLE: &'static str = "Third-Party Software License Notices"; + + fn layout_buttons(&self) -> Layout { + let widgets = vec![TextButton::new("OK").emphasized(true).on_update(|_| FrontendMessage::DisplayDialogDismiss.into()).widget_instance()]; + + Layout(vec![LayoutGroup::Row { widgets }]) + } +} + +impl LayoutHolder for LicensesThirdPartyDialog { + fn layout(&self) -> Layout { + // Remove the header and begin with the line containing the first license section (we otherwise keep the title for standalone viewing of the licenses text file) + let license_text = if let Some(first_underscore_line) = self.license_text.lines().position(|line| line.contains('_')) { + // Find the byte position where the line with underscore starts + let char_position = self.license_text.split('\n').take(first_underscore_line).map(|line| line.len() + '\n'.len_utf8()).sum(); + self.license_text[char_position..].to_string() + } else { + // This shouldn't be encountered, but if no underscore line is found, we use the full text as a safety fallback + self.license_text.clone() + }; + + // Two characters (one before, one after) the sequence of underscore characters, plus one additional column to provide a space between the text and the scrollbar + let non_wrapping_column_width = license_text.split('\n').map(|line| line.chars().filter(|&c| c == '_').count()).max().unwrap_or(0) + 2 + 1; + + Layout(vec![LayoutGroup::Row { + widgets: vec![ + TextLabel::new(license_text) + .monospace(true) + .multiline(true) + .min_width(format!("{non_wrapping_column_width}ch")) + .widget_instance(), + ], + }]) + } +} diff --git a/editor/src/messages/dialog/simple_dialogs/mod.rs b/editor/src/messages/dialog/simple_dialogs/mod.rs index a330efac2..a56a2c82e 100644 --- a/editor/src/messages/dialog/simple_dialogs/mod.rs +++ b/editor/src/messages/dialog/simple_dialogs/mod.rs @@ -1,16 +1,16 @@ mod about_graphite_dialog; mod close_all_documents_dialog; mod close_document_dialog; -mod coming_soon_dialog; mod demo_artwork_dialog; mod error_dialog; mod licenses_dialog; +mod licenses_third_party_dialog; pub use about_graphite_dialog::AboutGraphiteDialog; pub use close_all_documents_dialog::CloseAllDocumentsDialog; pub use close_document_dialog::CloseDocumentDialog; -pub use coming_soon_dialog::ComingSoonDialog; pub use demo_artwork_dialog::ARTWORK; pub use demo_artwork_dialog::DemoArtworkDialog; pub use error_dialog::ErrorDialog; pub use licenses_dialog::LicensesDialog; +pub use licenses_third_party_dialog::LicensesThirdPartyDialog; diff --git a/editor/src/messages/frontend/frontend_message.rs b/editor/src/messages/frontend/frontend_message.rs index c6e48d3ec..a63c6a226 100644 --- a/editor/src/messages/frontend/frontend_message.rs +++ b/editor/src/messages/frontend/frontend_message.rs @@ -1,13 +1,14 @@ -use super::utility_types::{FrontendDocumentDetails, MouseCursorIcon}; +use super::utility_types::{DocumentDetails, MouseCursorIcon, OpenDocument}; use crate::messages::app_window::app_window_message_handler::AppWindowPlatform; +use crate::messages::input_mapper::utility_types::misc::ActionShortcut; use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::portfolio::document::node_graph::utility_types::{ - BoxSelection, ContextMenuInformation, FrontendClickTargets, FrontendGraphInput, FrontendGraphOutput, FrontendNode, FrontendNodeType, Transform, + BoxSelection, ContextMenuInformation, FrontendClickTargets, FrontendGraphInput, FrontendGraphOutput, FrontendNode, FrontendNodeType, NodeGraphErrorDiagnostic, Transform, }; use crate::messages::portfolio::document::utility_types::nodes::{JsRawBuffer, LayerPanelEntry, RawBuffer}; use crate::messages::portfolio::document::utility_types::wires::{WirePath, WirePathUpdate}; use crate::messages::prelude::*; -use crate::messages::tool::utility_types::HintData; +use glam::IVec2; use graph_craft::document::NodeId; use graphene_std::raster::Image; use graphene_std::raster::color::Color; @@ -38,7 +39,8 @@ pub enum FrontendMessage { #[serde(rename = "fontSize")] font_size: f64, color: Color, - url: String, + #[serde(rename = "fontData")] + font_data: Vec, transform: [f64; 6], #[serde(rename = "maxWidth")] max_width: Option, @@ -46,6 +48,10 @@ pub enum FrontendMessage { max_height: Option, align: TextAlign, }, + DisplayEditableTextboxUpdateFontData { + #[serde(rename = "fontData")] + font_data: Vec, + }, DisplayEditableTextboxTransform { transform: [f64; 6], }, @@ -58,12 +64,22 @@ pub enum FrontendMessage { #[serde(rename = "nodeTypes")] node_types: Vec, }, + SendShortcutF11 { + shortcut: Option, + }, + SendShortcutAltClick { + shortcut: Option, + }, + SendShortcutShiftClick { + shortcut: Option, + }, - // Trigger prefix: cause a browser API to do something + // Trigger prefix: cause a frontend specific API to do something TriggerAboutGraphiteLocalizedCommitDate { #[serde(rename = "commitDate")] commit_date: String, }, + TriggerDisplayThirdPartyLicensesDialog, TriggerSaveDocument { document_id: DocumentId, name: String, @@ -84,23 +100,27 @@ pub enum FrontendMessage { name: String, filename: String, }, - TriggerFontLoad { + TriggerFontCatalogLoad, + TriggerFontDataLoad { font: Font, + url: String, }, TriggerImport, - TriggerIndexedDbRemoveDocument { + TriggerPersistenceRemoveDocument { #[serde(rename = "documentId")] document_id: DocumentId, }, - TriggerIndexedDbWriteDocument { + TriggerPersistenceWriteDocument { + #[serde(rename = "documentId")] + document_id: DocumentId, document: String, - details: FrontendDocumentDetails, + details: DocumentDetails, }, TriggerLoadFirstAutoSaveDocument, TriggerLoadRestAutoSaveDocuments, + TriggerOpenLaunchDocuments, TriggerLoadPreferences, TriggerOpenDocument, - TriggerPaste, TriggerSavePreferences { preferences: PreferencesMessageHandler, }, @@ -109,13 +129,19 @@ pub enum FrontendMessage { document_id: DocumentId, }, TriggerTextCommit, - TriggerTextCopy { - #[serde(rename = "copyText")] - copy_text: String, - }, TriggerVisitLink { url: String, }, + TriggerClipboardRead, + TriggerClipboardWrite { + content: String, + }, + TriggerSelectionRead { + cut: bool, + }, + TriggerSelectionWrite { + content: String, + }, // Update prefix: give the frontend a new value or state for it to use UpdateActiveDocument { @@ -123,12 +149,19 @@ pub enum FrontendMessage { document_id: DocumentId, }, UpdateImportsExports { - imports: Vec<(FrontendGraphOutput, i32, i32)>, - exports: Vec<(FrontendGraphInput, i32, i32)>, - #[serde(rename = "addImport")] - add_import: Option<(i32, i32)>, - #[serde(rename = "addExport")] - add_export: Option<(i32, i32)>, + /// If the primary import is not visible, then it is None. + imports: Vec>, + /// If the primary export is not visible, then it is None. + exports: Vec>, + /// The primary import location. + #[serde(rename = "importPosition")] + import_position: IVec2, + /// The primary export location. + #[serde(rename = "exportPosition")] + export_position: IVec2, + /// The document network does not have an add import or export button. + #[serde(rename = "addImportExport")] + add_import_export: bool, }, UpdateInSelectedNetwork { #[serde(rename = "inSelectedNetwork")] @@ -149,13 +182,16 @@ pub enum FrontendMessage { UpdateGraphViewOverlay { open: bool, }, - UpdateSpreadsheetState { + UpdateDataPanelState { open: bool, - node: Option, }, - UpdateSpreadsheetLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, + UpdatePropertiesPanelState { + open: bool, + }, + UpdateLayersPanelState { + open: bool, + }, + UpdateDataPanelLayout { diff: Vec, }, UpdateImportReorderIndex { @@ -175,18 +211,12 @@ pub enum FrontendMessage { has_left_input_wire: HashMap, }, UpdateDialogButtons { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdateDialogColumn1 { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdateDialogColumn2 { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdateDocumentArtwork { @@ -196,8 +226,6 @@ pub enum FrontendMessage { image_data: Vec<(u64, Image)>, }, UpdateDocumentBarLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdateDocumentLayerDetails { @@ -211,11 +239,6 @@ pub enum FrontendMessage { #[serde(rename = "dataBuffer")] data_buffer: JsRawBuffer, }, - UpdateDocumentModeLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, - diff: Vec, - }, UpdateDocumentRulers { origin: (f64, f64), spacing: f64, @@ -240,29 +263,17 @@ pub enum FrontendMessage { UpdateGraphFadeArtwork { percentage: f64, }, - UpdateInputHints { - #[serde(rename = "hintData")] - hint_data: HintData, - }, UpdateLayersPanelControlBarLeftLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdateLayersPanelControlBarRightLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdateLayersPanelBottomBarLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdateMenuBarLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, - layout: Vec, + diff: Vec, }, UpdateMouseCursor { cursor: MouseCursorIcon, @@ -270,6 +281,9 @@ pub enum FrontendMessage { UpdateNodeGraphNodes { nodes: Vec, }, + UpdateNodeGraphErrorDiagnostic { + error: Option, + }, UpdateVisibleNodes { nodes: Vec, }, @@ -278,8 +292,6 @@ pub enum FrontendMessage { }, ClearAllNodeGraphWires, UpdateNodeGraphControlBarLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdateNodeGraphSelection { @@ -294,30 +306,28 @@ pub enum FrontendMessage { }, UpdateOpenDocumentsList { #[serde(rename = "openDocuments")] - open_documents: Vec, + open_documents: Vec, }, - UpdatePropertyPanelSectionsLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, + UpdatePropertiesPanelLayout { diff: Vec, }, UpdateToolOptionsLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdateToolShelfLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdateWirePathInProgress { #[serde(rename = "wirePath")] wire_path: Option, }, + UpdateWelcomeScreenButtonsLayout { + diff: Vec, + }, + UpdateStatusBarHintsLayout { + diff: Vec, + }, UpdateWorkingColorsLayout { - #[serde(rename = "layoutTarget")] - layout_target: LayoutTarget, diff: Vec, }, UpdatePlatform { @@ -326,13 +336,35 @@ pub enum FrontendMessage { UpdateMaximized { maximized: bool, }, + UpdateFullscreen { + fullscreen: bool, + }, UpdateViewportHolePunch { active: bool, }, + UpdateViewportPhysicalBounds { + x: f64, + y: f64, + width: f64, + height: f64, + }, + UpdateUIScale { + scale: f64, + }, + #[cfg(not(target_family = "wasm"))] - RenderOverlays( + RenderOverlays { #[serde(skip, default = "OverlayContext::default")] #[derivative(Debug = "ignore", PartialEq = "ignore")] - OverlayContext, - ), + context: OverlayContext, + }, + + // Window prefix: cause the application window to do something + WindowClose, + WindowMinimize, + WindowMaximize, + WindowDrag, + WindowHide, + WindowHideOthers, + WindowShowAll, } diff --git a/editor/src/messages/frontend/utility_types.rs b/editor/src/messages/frontend/utility_types.rs index cb55047da..89dc539c5 100644 --- a/editor/src/messages/frontend/utility_types.rs +++ b/editor/src/messages/frontend/utility_types.rs @@ -1,14 +1,22 @@ +use std::path::PathBuf; + use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::prelude::*; #[derive(PartialEq, Eq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)] -pub struct FrontendDocumentDetails { - #[serde(rename = "isAutoSaved")] - pub is_auto_saved: bool, +pub struct OpenDocument { + pub id: DocumentId, + pub details: DocumentDetails, +} + +#[derive(PartialEq, Eq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)] +pub struct DocumentDetails { + pub name: String, + pub path: Option, #[serde(rename = "isSaved")] pub is_saved: bool, - pub name: String, - pub id: DocumentId, + #[serde(rename = "isAutoSaved")] + pub is_auto_saved: bool, } #[derive(Clone, Copy, Debug, Default, Eq, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] diff --git a/editor/src/messages/input_mapper/input_mappings.rs b/editor/src/messages/input_mapper/input_mappings.rs index 1b722301e..9e774b6c2 100644 --- a/editor/src/messages/input_mapper/input_mappings.rs +++ b/editor/src/messages/input_mapper/input_mappings.rs @@ -8,6 +8,7 @@ use crate::messages::input_mapper::utility_types::misc::{KeyMappingEntries, Mapp use crate::messages::portfolio::document::node_graph::utility_types::Direction; use crate::messages::portfolio::document::utility_types::clipboards::Clipboard; use crate::messages::portfolio::document::utility_types::misc::GroupFolderType; +use crate::messages::portfolio::utility_types::KeyboardPlatformLayout; use crate::messages::prelude::*; use crate::messages::tool::tool_messages::brush_tool::BrushToolMessageOptionsUpdate; use crate::messages::tool::tool_messages::select_tool::SelectToolPointerKeys; @@ -53,6 +54,11 @@ pub fn input_mappings() -> Mapping { // Hack to prevent Left Click + Accel + Z combo (this effectively blocks you from making a double undo with AbortTransaction) entry!(KeyDown(KeyZ); modifiers=[Accel, MouseLeft], action_dispatch=DocumentMessage::Noop), // + // ClipboardMessage + entry!(KeyDown(KeyX); modifiers=[Accel], action_dispatch=ClipboardMessage::Cut), + entry!(KeyDown(KeyC); modifiers=[Accel], action_dispatch=ClipboardMessage::Copy), + entry!(KeyDown(KeyV); modifiers=[Accel], action_dispatch=ClipboardMessage::Paste), + // // NodeGraphMessage entry!(KeyDown(MouseLeft); action_dispatch=NodeGraphMessage::PointerDown { shift_click: false, control_click: false, alt_click: false, right_click: false }), entry!(KeyDown(MouseLeft); modifiers=[Shift], action_dispatch=NodeGraphMessage::PointerDown { shift_click: true, control_click: false, alt_click: false, right_click: false }), @@ -96,7 +102,7 @@ pub fn input_mappings() -> Mapping { entry!(PointerMove; refresh_keys=[Control, Shift], action_dispatch=TransformLayerMessage::PointerMove { slow_key: Shift, increments_key: Control }), // // SelectToolMessage - entry!(PointerMove; refresh_keys=[Control, Alt, Shift], action_dispatch=SelectToolMessage::PointerMove(SelectToolPointerKeys { axis_align: Shift, snap_angle: Shift, center: Alt, duplicate: Alt })), + entry!(PointerMove; refresh_keys=[Control, Alt, Shift], action_dispatch=SelectToolMessage::PointerMove { modifier_keys: SelectToolPointerKeys { axis_align: Shift, snap_angle: Shift, center: Alt, duplicate: Alt } }), entry!(KeyDown(MouseLeft); action_dispatch=SelectToolMessage::DragStart { extend_selection: Shift, remove_from_selection: Alt, select_deepest: Accel, lasso_select: Control, skew: Control }), entry!(KeyUp(MouseLeft); action_dispatch=SelectToolMessage::DragStop { remove_from_selection: Alt }), entry!(KeyDown(Enter); action_dispatch=SelectToolMessage::Enter), @@ -178,7 +184,7 @@ pub fn input_mappings() -> Mapping { entry!(KeyDown(Escape); action_dispatch=ShapeToolMessage::Abort), entry!(KeyDown(BracketLeft); action_dispatch=ShapeToolMessage::DecreaseSides), entry!(KeyDown(BracketRight); action_dispatch=ShapeToolMessage::IncreaseSides), - entry!(PointerMove; refresh_keys=[Alt, Shift, Control], action_dispatch=ShapeToolMessage::PointerMove([Alt, Shift, Control])), + entry!(PointerMove; refresh_keys=[Alt, Shift, Control], action_dispatch=ShapeToolMessage::PointerMove { modifier: [Alt, Shift, Control] }), entry!(KeyDown(ArrowUp); modifiers=[Shift, ArrowLeft], action_dispatch=ShapeToolMessage::NudgeSelectedLayers { delta_x: -BIG_NUDGE_AMOUNT, delta_y: -BIG_NUDGE_AMOUNT, resize: Alt, resize_opposite_corner: Control }), entry!(KeyDown(ArrowUp); modifiers=[Shift, ArrowRight], action_dispatch=ShapeToolMessage::NudgeSelectedLayers { delta_x: BIG_NUDGE_AMOUNT, delta_y: -BIG_NUDGE_AMOUNT, resize: Alt, resize_opposite_corner: Control }), entry!(KeyDown(ArrowUp); modifiers=[Shift], action_dispatch=ShapeToolMessage::NudgeSelectedLayers { delta_x: 0., delta_y: -BIG_NUDGE_AMOUNT, resize: Alt, resize_opposite_corner: Control }), @@ -223,9 +229,9 @@ pub fn input_mappings() -> Mapping { entry!(KeyDown(KeyS); action_dispatch=PathToolMessage::GRS { key: KeyS }), entry!(PointerMove; refresh_keys=[KeyC, Space, Control, Shift, Alt], action_dispatch=PathToolMessage::PointerMove { toggle_colinear: KeyC, equidistant: Alt, move_anchor_with_handles: Space, snap_angle: Shift, lock_angle: Control, delete_segment: Alt, break_colinear_molding: Alt, segment_editing_modifier: Control }), entry!(KeyDown(Delete); action_dispatch=PathToolMessage::Delete), - entry!(KeyDown(KeyA); modifiers=[Accel], action_dispatch=PathToolMessage::SelectAllAnchors), - entry!(KeyDown(KeyA); modifiers=[Accel, Shift], canonical, action_dispatch=PathToolMessage::DeselectAllPoints), - entry!(KeyDown(KeyA); modifiers=[Alt], action_dispatch=PathToolMessage::DeselectAllPoints), + entry!(KeyDown(KeyA); modifiers=[Accel], action_dispatch=PathToolMessage::SelectAll), + entry!(KeyDown(KeyA); modifiers=[Accel, Shift], canonical, action_dispatch=PathToolMessage::DeselectAllSelected), + entry!(KeyDown(KeyA); modifiers=[Alt], action_dispatch=PathToolMessage::DeselectAllSelected), entry!(KeyDown(Backspace); action_dispatch=PathToolMessage::Delete), entry!(KeyUp(MouseLeft); action_dispatch=PathToolMessage::DragStop { extend_selection: Shift, shrink_selection: Alt }), entry!(KeyDown(Enter); action_dispatch=PathToolMessage::Enter { extend_selection: Shift, shrink_selection: Alt }), @@ -297,8 +303,8 @@ pub fn input_mappings() -> Mapping { entry!(PointerMove; action_dispatch=BrushToolMessage::PointerMove), entry!(KeyDown(MouseLeft); action_dispatch=BrushToolMessage::DragStart), entry!(KeyUp(MouseLeft); action_dispatch=BrushToolMessage::DragStop), - entry!(KeyDown(BracketLeft); action_dispatch=BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::ChangeDiameter(-BRUSH_SIZE_CHANGE_KEYBOARD))), - entry!(KeyDown(BracketRight); action_dispatch=BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::ChangeDiameter(BRUSH_SIZE_CHANGE_KEYBOARD))), + entry!(KeyDown(BracketLeft); action_dispatch=BrushToolMessage::UpdateOptions { options: BrushToolMessageOptionsUpdate::ChangeDiameter(-BRUSH_SIZE_CHANGE_KEYBOARD) }), + entry!(KeyDown(BracketRight); action_dispatch=BrushToolMessage::UpdateOptions { options: BrushToolMessageOptionsUpdate::ChangeDiameter(BRUSH_SIZE_CHANGE_KEYBOARD) }), entry!(KeyDown(MouseRight); action_dispatch=BrushToolMessage::Abort), entry!(KeyDown(Escape); action_dispatch=BrushToolMessage::Abort), // @@ -325,7 +331,7 @@ pub fn input_mappings() -> Mapping { // // DocumentMessage entry!(KeyDown(Space); modifiers=[Control], action_dispatch=DocumentMessage::GraphViewOverlayToggle), - entry!(KeyUp(Escape); action_dispatch=DocumentMessage::Escape), + entry!(KeyDownNoRepeat(Escape); action_dispatch=DocumentMessage::Escape), entry!(KeyDown(Delete); action_dispatch=DocumentMessage::DeleteSelectedLayers), entry!(KeyDown(Backspace); action_dispatch=DocumentMessage::DeleteSelectedLayers), entry!(KeyDown(KeyO); modifiers=[Alt], action_dispatch=DocumentMessage::ToggleOverlaysVisibility), @@ -340,6 +346,7 @@ pub fn input_mappings() -> Mapping { entry!(KeyDown(KeyA); modifiers=[Accel, Shift], canonical, action_dispatch=DocumentMessage::DeselectAllLayers), entry!(KeyDown(KeyA); modifiers=[Alt], action_dispatch=DocumentMessage::DeselectAllLayers), entry!(KeyDown(KeyS); modifiers=[Accel], action_dispatch=DocumentMessage::SaveDocument), + entry!(KeyDown(KeyS); modifiers=[Accel, Shift], action_dispatch=DocumentMessage::SaveDocumentAs), entry!(KeyDown(KeyD); modifiers=[Accel], canonical, action_dispatch=DocumentMessage::DuplicateSelectedLayers), entry!(KeyDown(KeyJ); modifiers=[Accel], action_dispatch=DocumentMessage::DuplicateSelectedLayers), entry!(KeyDown(KeyG); modifiers=[Accel], action_dispatch=DocumentMessage::GroupSelectedLayers { group_folder_type: GroupFolderType::Layer }), @@ -405,10 +412,12 @@ pub fn input_mappings() -> Mapping { entry!(KeyDown(MouseMiddle); action_dispatch=NavigationMessage::BeginCanvasPan), entry!(KeyDown(MouseLeft); modifiers=[Space], action_dispatch=NavigationMessage::BeginCanvasPan), entry!(KeyDown(NumpadAdd); modifiers=[Accel], action_dispatch=NavigationMessage::CanvasZoomIncrease { center_on_mouse: false }), + // `FakeKeyPlus` is a nonfunctional key mapping that must be accompanied by its real `Equal` key counterpart. This is used only to set the canonical key label so it shows "+" instead of "=" in the UI. + entry!(KeyDown(FakeKeyPlus); modifiers=[Accel], canonical, action_dispatch=NavigationMessage::CanvasZoomIncrease { center_on_mouse: false }), entry!(KeyDown(Equal); modifiers=[Accel], action_dispatch=NavigationMessage::CanvasZoomIncrease { center_on_mouse: false }), entry!(KeyDown(Minus); modifiers=[Accel], action_dispatch=NavigationMessage::CanvasZoomDecrease { center_on_mouse: false }), - entry!(KeyDown(KeyF); modifiers=[Alt], action_dispatch=NavigationMessage::CanvasFlip), entry!(WheelScroll; modifiers=[Control], action_dispatch=NavigationMessage::CanvasZoomMouseWheel), + entry!(WheelScroll; modifiers=[Command], action_dispatch=NavigationMessage::CanvasZoomMouseWheel), entry!(WheelScroll; modifiers=[Shift], action_dispatch=NavigationMessage::CanvasPanMouseWheel { use_y_as_x: true }), entry!(WheelScroll; action_dispatch=NavigationMessage::CanvasPanMouseWheel { use_y_as_x: false }), entry!(KeyDown(PageUp); modifiers=[Shift], action_dispatch=NavigationMessage::CanvasPanByViewportFraction { delta: DVec2::new(1., 0.) }), @@ -427,9 +436,7 @@ pub fn input_mappings() -> Mapping { entry!(KeyDown(KeyX); modifiers=[Accel], action_dispatch=PortfolioMessage::Cut { clipboard: Clipboard::Device }), entry!(KeyDown(KeyC); modifiers=[Accel], action_dispatch=PortfolioMessage::Copy { clipboard: Clipboard::Device }), entry!(KeyDown(KeyR); modifiers=[Alt], action_dispatch=PortfolioMessage::ToggleRulers), - // - // FrontendMessage - entry!(KeyDown(KeyV); modifiers=[Accel], action_dispatch=FrontendMessage::TriggerPaste), + entry!(KeyDown(KeyD); modifiers=[Alt], action_dispatch=PortfolioMessage::ToggleDataPanelOpen), // // DialogMessage entry!(KeyDown(KeyE); modifiers=[Accel], action_dispatch=DialogMessage::RequestExportDialog), @@ -464,7 +471,7 @@ pub fn input_mappings() -> Mapping { // Sort `pointer_shake` sort(&mut pointer_shake); - Mapping { + let mut mapping = Mapping { key_up, key_down, key_up_no_repeat, @@ -473,23 +480,36 @@ pub fn input_mappings() -> Mapping { wheel_scroll, pointer_move, pointer_shake, + }; + + if cfg!(target_os = "macos") { + let remove: [&[&[MappingEntry; 0]; 0]; 0] = []; + let add = [entry!(KeyDown(KeyQ); modifiers=[Accel], action_dispatch=AppWindowMessage::Close)]; + + apply_mapping_patch(&mut mapping, remove, add); } + + mapping } /// Default mappings except that scrolling without modifier keys held down is bound to zooming instead of vertical panning pub fn zoom_with_scroll() -> Mapping { use InputMapperMessage::*; + // On Mac, the OS already converts Shift+scroll into horizontal scrolling so we have to reverse the behavior from normal to produce the same outcome + let keyboard_platform = GLOBAL_PLATFORM.get().copied().unwrap_or_default().as_keyboard_platform_layout(); + let mut mapping = input_mappings(); let remove = [ entry!(WheelScroll; modifiers=[Control], action_dispatch=NavigationMessage::CanvasZoomMouseWheel), + entry!(WheelScroll; modifiers=[Command], action_dispatch=NavigationMessage::CanvasZoomMouseWheel), entry!(WheelScroll; modifiers=[Shift], action_dispatch=NavigationMessage::CanvasPanMouseWheel { use_y_as_x: true }), entry!(WheelScroll; action_dispatch=NavigationMessage::CanvasPanMouseWheel { use_y_as_x: false }), ]; let add = [ - entry!(WheelScroll; modifiers=[Control], action_dispatch=NavigationMessage::CanvasPanMouseWheel { use_y_as_x: true }), - entry!(WheelScroll; modifiers=[Shift], action_dispatch=NavigationMessage::CanvasPanMouseWheel { use_y_as_x: false }), + entry!(WheelScroll; modifiers=[Control], action_dispatch=NavigationMessage::CanvasPanMouseWheel { use_y_as_x: keyboard_platform == KeyboardPlatformLayout::Mac }), + entry!(WheelScroll; modifiers=[Shift], action_dispatch=NavigationMessage::CanvasPanMouseWheel { use_y_as_x: keyboard_platform != KeyboardPlatformLayout::Mac }), entry!(WheelScroll; action_dispatch=NavigationMessage::CanvasZoomMouseWheel), ]; diff --git a/editor/src/messages/input_mapper/key_mapping/key_mapping_message.rs b/editor/src/messages/input_mapper/key_mapping/key_mapping_message.rs index 95cb5cc57..3214864da 100644 --- a/editor/src/messages/input_mapper/key_mapping/key_mapping_message.rs +++ b/editor/src/messages/input_mapper/key_mapping/key_mapping_message.rs @@ -3,13 +3,16 @@ use crate::messages::prelude::*; #[impl_message(Message, KeyMapping)] #[derive(PartialEq, Eq, Clone, Debug, Hash, serde::Serialize, serde::Deserialize)] pub enum KeyMappingMessage { + // Sub-messages #[child] Lookup(InputMapperMessage), - #[child] - ModifyMapping(MappingVariant), + + // Messages + ModifyMapping { + mapping: MappingVariant, + }, } -#[impl_message(Message, KeyMappingMessage, ModifyMapping)] #[derive(PartialEq, Eq, Clone, Debug, Default, Hash, serde::Serialize, serde::Deserialize)] pub enum MappingVariant { #[default] diff --git a/editor/src/messages/input_mapper/key_mapping/key_mapping_message_handler.rs b/editor/src/messages/input_mapper/key_mapping/key_mapping_message_handler.rs index 605f2587f..4d40a9ebb 100644 --- a/editor/src/messages/input_mapper/key_mapping/key_mapping_message_handler.rs +++ b/editor/src/messages/input_mapper/key_mapping/key_mapping_message_handler.rs @@ -19,8 +19,11 @@ impl MessageHandler> for KeyMapp let KeyMappingMessageContext { input, actions } = context; match message { + // Sub-messages KeyMappingMessage::Lookup(input_message) => self.mapping_handler.process_message(input_message, responses, InputMapperMessageContext { input, actions }), - KeyMappingMessage::ModifyMapping(new_layout) => self.mapping_handler.set_mapping(new_layout.into()), + + // Messages + KeyMappingMessage::ModifyMapping { mapping } => self.mapping_handler.set_mapping(mapping.into()), } } advertise_actions!(); diff --git a/editor/src/messages/input_mapper/key_mapping/mod.rs b/editor/src/messages/input_mapper/key_mapping/mod.rs index 064b58509..255b00cdd 100644 --- a/editor/src/messages/input_mapper/key_mapping/mod.rs +++ b/editor/src/messages/input_mapper/key_mapping/mod.rs @@ -2,6 +2,6 @@ mod key_mapping_message; mod key_mapping_message_handler; #[doc(inline)] -pub use key_mapping_message::{KeyMappingMessage, KeyMappingMessageDiscriminant, MappingVariant, MappingVariantDiscriminant}; +pub use key_mapping_message::{KeyMappingMessage, KeyMappingMessageDiscriminant, MappingVariant}; #[doc(inline)] pub use key_mapping_message_handler::{KeyMappingMessageContext, KeyMappingMessageHandler}; diff --git a/editor/src/messages/input_mapper/utility_types/input_keyboard.rs b/editor/src/messages/input_mapper/utility_types/input_keyboard.rs index 99a267550..e5b97c2bc 100644 --- a/editor/src/messages/input_mapper/utility_types/input_keyboard.rs +++ b/editor/src/messages/input_mapper/utility_types/input_keyboard.rs @@ -4,10 +4,18 @@ use bitflags::bitflags; use std::fmt::{self, Display, Formatter}; use std::ops::{BitAnd, BitAndAssign, BitOr, BitOrAssign, BitXor, BitXorAssign}; +// =========== +// StorageType +// =========== + // TODO: Increase size of type /// Edit this to specify the storage type used. pub type StorageType = u128; +// ========= +// KeyStates +// ========= + // Base-2 logarithm of the storage type used to represents how many bits you need to fully address every bit in that storage type const STORAGE_SIZE: u32 = (std::mem::size_of::() * 8).trailing_zeros(); const STORAGE_SIZE_BITS: usize = 1 << STORAGE_SIZE; @@ -23,11 +31,19 @@ pub fn all_required_modifiers_pressed(keyboard_state: &KeyStates, modifiers: &Ke all_modifiers_without_pressed_modifiers.is_empty() } +// =========== +// KeyPosition +// =========== + pub enum KeyPosition { Pressed, Released, } +// ============ +// ModifierKeys +// ============ + bitflags! { #[derive(Clone, Copy, Debug, PartialEq, Eq, Default, serde::Serialize, serde::Deserialize)] #[repr(transparent)] @@ -40,6 +56,10 @@ bitflags! { } } +// === +// Key +// === + // Currently this is mostly based on the JS `KeyboardEvent.code` list: // But in the future, especially once users can customize keyboard mappings, we should deviate more from this so we have actual symbols // like `+` (which doesn't exist because it's the shifted version of `=` on the US keyboard, after which these scan codes are named). @@ -61,7 +81,7 @@ pub enum Key { Digit7, Digit8, Digit9, - // + KeyA, KeyB, KeyC, @@ -88,7 +108,7 @@ pub enum Key { KeyX, KeyY, KeyZ, - // + Backquote, Backslash, BracketLeft, @@ -197,17 +217,30 @@ pub enum Key { Unidentified, // Other keys that aren't part of the W3C spec + // + /// "Cmd" on Mac (not present on other platforms). Command, - /// "Ctrl" on Windows/Linux, "Cmd" on Mac + /// "Ctrl" on Windows/Linux, "Cmd" on Mac. Accel, + /// Left mouse button click (LMB). MouseLeft, + /// Right mouse button click (RMB). MouseRight, + /// Middle mouse button click (MMB). MouseMiddle, + /// Mouse backward navigation button (typically on the side of the mouse). MouseBack, + /// Mouse forward navigation button (typically on the side of the mouse). MouseForward, - // This has to be the last element in the enum - NumKeys, + // Fake keys for displaying special labels in the UI + // + /// Not a physical key that can be pressed. May be used so that an actual shortcut bound to `Equal` can separately map this fake "key" as an additional binding to display the "+" shortcut label in the UI. + FakeKeyPlus, + /// Not a physical key that can be pressed. May be used so that an actual shortcut bound to all ten number keys (0, ..., 9) can separately map this fake "key" as an additional binding to display the "0โ€“9" shortcut label in the UI. + FakeKeyNumbers, + + _KeysVariantCount, // This has to be the last element in the enum } impl fmt::Display for Key { @@ -217,11 +250,11 @@ impl fmt::Display for Key { // Writing system keys const DIGIT_PREFIX: &str = "Digit"; - if key_name.len() == DIGIT_PREFIX.len() + 1 && &key_name[0..DIGIT_PREFIX.len()] == "Digit" { + if key_name.len() == DIGIT_PREFIX.len() + 1 && &key_name[0..DIGIT_PREFIX.len()] == DIGIT_PREFIX { return write!(f, "{}", key_name.chars().skip(DIGIT_PREFIX.len()).collect::()); } const KEY_PREFIX: &str = "Key"; - if key_name.len() == KEY_PREFIX.len() + 1 && &key_name[0..KEY_PREFIX.len()] == "Key" { + if key_name.len() == KEY_PREFIX.len() + 1 && &key_name[0..KEY_PREFIX.len()] == KEY_PREFIX { return write!(f, "{}", key_name.chars().skip(KEY_PREFIX.len()).collect::()); } @@ -288,12 +321,15 @@ impl fmt::Display for Key { KeyboardPlatformLayout::Standard => "Ctrl", KeyboardPlatformLayout::Mac => "โŒ˜", }, - Self::MouseLeft => "LMB", - Self::MouseRight => "RMB", - Self::MouseMiddle => "MMB", + Self::MouseLeft => "Click", + Self::MouseRight => "R.Click", + Self::MouseMiddle => "M.Click", Self::MouseBack => "Mouse Back", Self::MouseForward => "Mouse Fwd", - Self::NumKeys => "0โ€“9", + + // Fake keys for displaying special labels in the UI + Self::FakeKeyPlus => "+", + Self::FakeKeyNumbers => "0โ€“9", _ => key_name.as_str(), }; @@ -302,22 +338,11 @@ impl fmt::Display for Key { } } -impl From for LayoutKey { - fn from(key: Key) -> Self { - Self { - key: format!("{key:?}"), - label: key.to_string(), - } - } -} +pub const NUMBER_OF_KEYS: usize = Key::_KeysVariantCount as usize - 1; -#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, specta::Type)] -struct LayoutKey { - key: String, - label: String, -} - -pub const NUMBER_OF_KEYS: usize = Key::NumKeys as usize; +// ========= +// KeysGroup +// ========= /// Only `Key`s that exist on a physical keyboard should be used. #[derive(Debug, Clone, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize)] @@ -351,21 +376,25 @@ impl fmt::Display for KeysGroup { } } -impl From for String { - fn from(keys: KeysGroup) -> Self { - let layout_keys: LayoutKeysGroup = keys.into(); - serde_json::to_string(&layout_keys).expect("Failed to serialize KeysGroup") +// ========== +// LabeledKey +// ========== + +#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, specta::Type)] +pub struct LabeledKey { + key: Key, + label: String, +} + +impl LabeledKey { + pub fn key(&self) -> Key { + self.key } } -#[derive(Debug, Clone, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize, specta::Type)] -pub struct LayoutKeysGroup(Vec); - -impl From for LayoutKeysGroup { - fn from(keys_group: KeysGroup) -> Self { - Self(keys_group.0.into_iter().map(|key| key.into()).collect()) - } -} +// =========== +// MouseMotion +// =========== #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, specta::Type)] pub enum MouseMotion { @@ -383,6 +412,45 @@ pub enum MouseMotion { MmbDrag, } +// ======================= +// LabeledKeyOrMouseMotion +// ======================= + +#[derive(Debug, Clone, PartialEq, Eq, Hash, serde::Serialize, serde::Deserialize, specta::Type)] +#[serde(untagged)] +pub enum LabeledKeyOrMouseMotion { + Key(LabeledKey), + MouseMotion(MouseMotion), +} + +impl From for LabeledKeyOrMouseMotion { + fn from(key: Key) -> Self { + match key { + Key::MouseLeft => Self::MouseMotion(MouseMotion::Lmb), + Key::MouseRight => Self::MouseMotion(MouseMotion::Rmb), + Key::MouseMiddle => Self::MouseMotion(MouseMotion::Mmb), + _ => Self::Key(LabeledKey { key, label: key.to_string() }), + } + } +} + +// =============== +// LabeledShortcut +// =============== + +#[derive(Debug, Clone, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize, specta::Type)] +pub struct LabeledShortcut(pub Vec); + +impl From for LabeledShortcut { + fn from(keys_group: KeysGroup) -> Self { + Self(keys_group.0.into_iter().map(|key| key.into()).collect()) + } +} + +// ========= +// BitVector +// ========= + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct BitVector([StorageType; LENGTH]); @@ -479,7 +547,7 @@ impl Iterator for BitVectorIter<'_, LENGTH> { impl Display for BitVector { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { for storage in self.0.iter().rev() { - write!(f, "{:0width$b}", storage, width = STORAGE_SIZE_BITS)?; + write!(f, "{storage:0STORAGE_SIZE_BITS$b}")?; } Ok(()) diff --git a/editor/src/messages/input_mapper/utility_types/input_mouse.rs b/editor/src/messages/input_mapper/utility_types/input_mouse.rs index a9b746608..7d4d197db 100644 --- a/editor/src/messages/input_mapper/utility_types/input_mouse.rs +++ b/editor/src/messages/input_mapper/utility_types/input_mouse.rs @@ -3,41 +3,13 @@ use crate::messages::prelude::*; use bitflags::bitflags; use glam::DVec2; use std::collections::VecDeque; +use std::hash::{Hash, Hasher}; // Origin is top left pub type DocumentPosition = DVec2; pub type ViewportPosition = DVec2; pub type EditorPosition = DVec2; -#[derive(PartialEq, Clone, Debug, Default, serde::Serialize, serde::Deserialize)] -pub struct ViewportBounds { - pub top_left: DVec2, - pub bottom_right: DVec2, -} - -impl ViewportBounds { - pub fn from_slice(slice: &[f64]) -> Self { - Self { - top_left: DVec2::from_slice(&slice[0..2]), - bottom_right: DVec2::from_slice(&slice[2..4]), - } - } - - pub fn size(&self) -> DVec2 { - (self.bottom_right - self.top_left).ceil() - } - - pub fn center(&self) -> DVec2 { - (self.bottom_right - self.top_left).ceil() / 2. - } - - pub fn in_bounds(&self, position: ViewportPosition) -> bool { - position.x >= 0. && position.y >= 0. && position.x <= self.bottom_right.x && position.y <= self.bottom_right.y - } -} - -use std::hash::{Hash, Hasher}; - #[derive(Debug, Copy, Clone, Default, serde::Serialize, serde::Deserialize)] pub struct ScrollDelta { pub x: f64, @@ -113,9 +85,9 @@ impl EditorMouseState { } } - pub fn to_mouse_state(&self, active_viewport_bounds: &ViewportBounds) -> MouseState { + pub fn to_mouse_state(&self, viewport: &ViewportMessageHandler) -> MouseState { MouseState { - position: self.editor_position - active_viewport_bounds.top_left, + position: (viewport.logical(self.editor_position) - viewport.offset()).into(), mouse_keys: self.mouse_keys, scroll_delta: self.scroll_delta, } diff --git a/editor/src/messages/input_mapper/utility_types/macros.rs b/editor/src/messages/input_mapper/utility_types/macros.rs index 11ad50dac..bd0354d28 100644 --- a/editor/src/messages/input_mapper/utility_types/macros.rs +++ b/editor/src/messages/input_mapper/utility_types/macros.rs @@ -117,14 +117,23 @@ macro_rules! mapping { }}; } -/// Constructs an `ActionKeys` macro with a certain `Action` variant, conveniently wrapped in `Some()`. -macro_rules! action_keys { +/// Constructs an `ActionShortcut` macro with a certain `Action` variant, conveniently wrapped in `Some()`. +macro_rules! action_shortcut { ($action:expr_2021) => { - Some(crate::messages::input_mapper::utility_types::misc::ActionKeys::Action($action.into())) + Some(crate::messages::input_mapper::utility_types::misc::ActionShortcut::Action($action.into())) }; } -pub(crate) use action_keys; +macro_rules! action_shortcut_manual { + ($($keys:expr),*) => { + Some(crate::messages::input_mapper::utility_types::misc::ActionShortcut::Shortcut( + crate::messages::input_mapper::utility_types::input_keyboard::LabeledShortcut(vec![$($keys.into()),*]).into(), + )) + }; +} + +pub(crate) use action_shortcut; +pub(crate) use action_shortcut_manual; pub(crate) use entry; pub(crate) use mapping; pub(crate) use modifiers; diff --git a/editor/src/messages/input_mapper/utility_types/misc.rs b/editor/src/messages/input_mapper/utility_types/misc.rs index 7733d6a27..1f8be1056 100644 --- a/editor/src/messages/input_mapper/utility_types/misc.rs +++ b/editor/src/messages/input_mapper/utility_types/misc.rs @@ -1,4 +1,4 @@ -use super::input_keyboard::{KeysGroup, LayoutKeysGroup, all_required_modifiers_pressed}; +use super::input_keyboard::{KeysGroup, LabeledShortcut, all_required_modifiers_pressed}; use crate::messages::input_mapper::key_mapping::MappingVariant; use crate::messages::input_mapper::utility_types::input_keyboard::{KeyStates, NUMBER_OF_KEYS}; use crate::messages::input_mapper::utility_types::input_mouse::NUMBER_OF_MOUSE_BUTTONS; @@ -128,28 +128,19 @@ pub struct MappingEntry { } #[derive(Debug, Clone, Eq, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] -pub enum ActionKeys { +pub enum ActionShortcut { Action(MessageDiscriminant), - #[serde(rename = "keys")] - Keys(LayoutKeysGroup), + #[serde(rename = "shortcut")] + Shortcut(LabeledShortcut), } -impl ActionKeys { - pub fn to_keys(&mut self, action_input_mapping: &impl Fn(&MessageDiscriminant) -> Option) -> String { - match self { - Self::Action(action) => { - if let Some(keys) = action_input_mapping(action) { - let description = keys.to_string(); - *self = Self::Keys(keys.into()); - description - } else { - *self = Self::Keys(KeysGroup::default().into()); - String::new() - } - } - Self::Keys(keys) => { - warn!("Calling `.to_keys()` on a `ActionKeys::Keys` is a mistake/bug. Keys are: {keys:?}."); - String::new() +impl ActionShortcut { + pub fn realize_shortcut(&mut self, action_input_mapping: &impl Fn(&MessageDiscriminant) -> Option) { + if let Self::Action(action) = self { + if let Some(keys) = action_input_mapping(action) { + *self = Self::Shortcut(keys.into()); + } else { + *self = Self::Shortcut(KeysGroup::default().into()); } } } diff --git a/editor/src/messages/input_preprocessor/input_preprocessor_message.rs b/editor/src/messages/input_preprocessor/input_preprocessor_message.rs index dcfbac728..db7932fdf 100644 --- a/editor/src/messages/input_preprocessor/input_preprocessor_message.rs +++ b/editor/src/messages/input_preprocessor/input_preprocessor_message.rs @@ -1,11 +1,10 @@ use crate::messages::input_mapper::utility_types::input_keyboard::{Key, ModifierKeys}; -use crate::messages::input_mapper::utility_types::input_mouse::{EditorMouseState, ViewportBounds}; +use crate::messages::input_mapper::utility_types::input_mouse::EditorMouseState; use crate::messages::prelude::*; #[impl_message(Message, InputPreprocessor)] #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] pub enum InputPreprocessorMessage { - BoundsOfViewports { bounds_of_viewports: Vec }, DoubleClick { editor_mouse_state: EditorMouseState, modifier_keys: ModifierKeys }, KeyDown { key: Key, key_repeat: bool, modifier_keys: ModifierKeys }, KeyUp { key: Key, key_repeat: bool, modifier_keys: ModifierKeys }, diff --git a/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs b/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs index 52e20d1d7..3464f0a07 100644 --- a/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs +++ b/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs @@ -1,14 +1,14 @@ use crate::messages::input_mapper::utility_types::input_keyboard::{Key, KeyStates, ModifierKeys}; -use crate::messages::input_mapper::utility_types::input_mouse::{MouseButton, MouseKeys, MouseState, ViewportBounds}; +use crate::messages::input_mapper::utility_types::input_mouse::{MouseButton, MouseKeys, MouseState}; use crate::messages::input_mapper::utility_types::misc::FrameTimeInfo; use crate::messages::portfolio::utility_types::KeyboardPlatformLayout; use crate::messages::prelude::*; -use glam::DVec2; use std::time::Duration; #[derive(ExtractField)] -pub struct InputPreprocessorMessageContext { +pub struct InputPreprocessorMessageContext<'a> { pub keyboard_platform: KeyboardPlatformLayout, + pub viewport: &'a ViewportMessageHandler, } #[derive(Debug, Default, ExtractField)] @@ -17,38 +17,18 @@ pub struct InputPreprocessorMessageHandler { pub time: u64, pub keyboard: KeyStates, pub mouse: MouseState, - pub viewport_bounds: ViewportBounds, } #[message_handler_data] -impl MessageHandler for InputPreprocessorMessageHandler { - fn process_message(&mut self, message: InputPreprocessorMessage, responses: &mut VecDeque, context: InputPreprocessorMessageContext) { - let InputPreprocessorMessageContext { keyboard_platform } = context; +impl<'a> MessageHandler> for InputPreprocessorMessageHandler { + fn process_message(&mut self, message: InputPreprocessorMessage, responses: &mut VecDeque, context: InputPreprocessorMessageContext<'a>) { + let InputPreprocessorMessageContext { keyboard_platform, viewport } = context; match message { - InputPreprocessorMessage::BoundsOfViewports { bounds_of_viewports } => { - assert_eq!(bounds_of_viewports.len(), 1, "Only one viewport is currently supported"); - - for bounds in bounds_of_viewports { - // TODO: Extend this to multiple viewports instead of setting it to the value of this last loop iteration - self.viewport_bounds = bounds; - - responses.add(NavigationMessage::CanvasPan { delta: DVec2::ZERO }); - responses.add(NodeGraphMessage::SetGridAlignedEdges); - } - responses.add(DeferMessage::AfterGraphRun { - messages: vec![ - DeferMessage::AfterGraphRun { - messages: vec![DeferMessage::TriggerNavigationReady.into()], - } - .into(), - ], - }); - } InputPreprocessorMessage::DoubleClick { editor_mouse_state, modifier_keys } => { self.update_states_of_modifier_keys(modifier_keys, keyboard_platform, responses); - let mouse_state = editor_mouse_state.to_mouse_state(&self.viewport_bounds); + let mouse_state = editor_mouse_state.to_mouse_state(viewport); self.mouse.position = mouse_state.position; for key in mouse_state.mouse_keys { @@ -81,7 +61,7 @@ impl MessageHandler f InputPreprocessorMessage::PointerDown { editor_mouse_state, modifier_keys } => { self.update_states_of_modifier_keys(modifier_keys, keyboard_platform, responses); - let mouse_state = editor_mouse_state.to_mouse_state(&self.viewport_bounds); + let mouse_state = editor_mouse_state.to_mouse_state(viewport); self.mouse.position = mouse_state.position; self.translate_mouse_event(mouse_state, true, responses); @@ -89,7 +69,7 @@ impl MessageHandler f InputPreprocessorMessage::PointerMove { editor_mouse_state, modifier_keys } => { self.update_states_of_modifier_keys(modifier_keys, keyboard_platform, responses); - let mouse_state = editor_mouse_state.to_mouse_state(&self.viewport_bounds); + let mouse_state = editor_mouse_state.to_mouse_state(viewport); self.mouse.position = mouse_state.position; responses.add(InputMapperMessage::PointerMove); @@ -100,7 +80,7 @@ impl MessageHandler f InputPreprocessorMessage::PointerUp { editor_mouse_state, modifier_keys } => { self.update_states_of_modifier_keys(modifier_keys, keyboard_platform, responses); - let mouse_state = editor_mouse_state.to_mouse_state(&self.viewport_bounds); + let mouse_state = editor_mouse_state.to_mouse_state(viewport); self.mouse.position = mouse_state.position; self.translate_mouse_event(mouse_state, false, responses); @@ -108,7 +88,7 @@ impl MessageHandler f InputPreprocessorMessage::PointerShake { editor_mouse_state, modifier_keys } => { self.update_states_of_modifier_keys(modifier_keys, keyboard_platform, responses); - let mouse_state = editor_mouse_state.to_mouse_state(&self.viewport_bounds); + let mouse_state = editor_mouse_state.to_mouse_state(viewport); self.mouse.position = mouse_state.position; responses.add(InputMapperMessage::PointerShake); @@ -121,7 +101,7 @@ impl MessageHandler f InputPreprocessorMessage::WheelScroll { editor_mouse_state, modifier_keys } => { self.update_states_of_modifier_keys(modifier_keys, keyboard_platform, responses); - let mouse_state = editor_mouse_state.to_mouse_state(&self.viewport_bounds); + let mouse_state = editor_mouse_state.to_mouse_state(viewport); self.mouse.position = mouse_state.position; self.mouse.scroll_delta = mouse_state.scroll_delta; @@ -202,11 +182,6 @@ impl InputPreprocessorMessageHandler { responses.add(InputMapperMessage::KeyDown(key)); } } - - pub fn document_bounds(&self) -> [DVec2; 2] { - // IPP bounds are relative to the entire application - [(0., 0.).into(), self.viewport_bounds.bottom_right - self.viewport_bounds.top_left] - } } #[cfg(test)] @@ -232,6 +207,7 @@ mod test { let context = InputPreprocessorMessageContext { keyboard_platform: KeyboardPlatformLayout::Standard, + viewport: &ViewportMessageHandler::default(), }; input_preprocessor.process_message(message, &mut responses, context); @@ -251,6 +227,7 @@ mod test { let context = InputPreprocessorMessageContext { keyboard_platform: KeyboardPlatformLayout::Standard, + viewport: &ViewportMessageHandler::default(), }; input_preprocessor.process_message(message, &mut responses, context); @@ -270,6 +247,7 @@ mod test { let context = InputPreprocessorMessageContext { keyboard_platform: KeyboardPlatformLayout::Standard, + viewport: &ViewportMessageHandler::default(), }; input_preprocessor.process_message(message, &mut responses, context); @@ -291,6 +269,7 @@ mod test { let context = InputPreprocessorMessageContext { keyboard_platform: KeyboardPlatformLayout::Standard, + viewport: &ViewportMessageHandler::default(), }; input_preprocessor.process_message(message, &mut responses, context); @@ -311,6 +290,7 @@ mod test { let context = InputPreprocessorMessageContext { keyboard_platform: KeyboardPlatformLayout::Standard, + viewport: &ViewportMessageHandler::default(), }; input_preprocessor.process_message(message, &mut responses, context); diff --git a/editor/src/messages/layout/layout_message.rs b/editor/src/messages/layout/layout_message.rs index b18c0055a..ff0ded389 100644 --- a/editor/src/messages/layout/layout_message.rs +++ b/editor/src/messages/layout/layout_message.rs @@ -12,6 +12,9 @@ pub enum LayoutMessage { layout: Layout, layout_target: LayoutTarget, }, + DestroyLayout { + layout_target: LayoutTarget, + }, WidgetValueCommit { layout_target: LayoutTarget, widget_id: WidgetId, diff --git a/editor/src/messages/layout/layout_message_handler.rs b/editor/src/messages/layout/layout_message_handler.rs index 9a02f9a32..2f34cbd9b 100644 --- a/editor/src/messages/layout/layout_message_handler.rs +++ b/editor/src/messages/layout/layout_message_handler.rs @@ -2,9 +2,9 @@ use crate::messages::input_mapper::utility_types::input_keyboard::KeysGroup; use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::prelude::*; use graphene_std::raster::color::Color; -use graphene_std::text::Font; use graphene_std::vector::style::{FillChoice, GradientStops}; use serde_json::Value; +use std::collections::HashMap; #[derive(ExtractField)] pub struct LayoutMessageContext<'a> { @@ -13,7 +13,7 @@ pub struct LayoutMessageContext<'a> { #[derive(Debug, Clone, Default, ExtractField)] pub struct LayoutMessageHandler { - layouts: [Layout; LayoutTarget::LayoutTargetLength as usize], + layouts: [Layout; LayoutTarget::_LayoutTargetLength as usize], } #[message_handler_data] @@ -24,13 +24,10 @@ impl MessageHandler> for LayoutMessageHa match message { LayoutMessage::ResendActiveWidget { layout_target, widget_id } => { // Find the updated diff based on the specified layout target - let Some(diff) = (match &self.layouts[layout_target as usize] { - Layout::MenuLayout(_) => return, - Layout::WidgetLayout(layout) => Self::get_widget_path(layout, widget_id).map(|(widget, widget_path)| { - // Create a widget update diff for the relevant id - let new_value = DiffUpdate::Widget(widget.clone()); - WidgetDiff { widget_path, new_value } - }), + let Some(diff) = Self::get_widget_path(&self.layouts[layout_target as usize], widget_id).map(|(widget, widget_path)| { + // Create a widget update diff for the relevant id + let new_value = DiffUpdate::Widget(widget.clone()); + WidgetDiff { widget_path, new_value } }) else { return; }; @@ -40,12 +37,16 @@ impl MessageHandler> for LayoutMessageHa LayoutMessage::SendLayout { layout, layout_target } => { self.diff_and_send_layout_to_frontend(layout_target, layout, responses, action_input_mapping); } + LayoutMessage::DestroyLayout { layout_target } => { + if let Some(layout) = self.layouts.get_mut(layout_target as usize) { + *layout = Layout::default(); + } + } LayoutMessage::WidgetValueCommit { layout_target, widget_id, value } => { self.handle_widget_callback(layout_target, widget_id, value, WidgetValueAction::Commit, responses); } LayoutMessage::WidgetValueUpdate { layout_target, widget_id, value } => { self.handle_widget_callback(layout_target, widget_id, value, WidgetValueAction::Update, responses); - responses.add(LayoutMessage::ResendActiveWidget { layout_target, widget_id }); } } } @@ -57,8 +58,8 @@ impl MessageHandler> for LayoutMessageHa impl LayoutMessageHandler { /// Get the widget path for the widget with the specified id - fn get_widget_path(widget_layout: &WidgetLayout, widget_id: WidgetId) -> Option<(&WidgetHolder, Vec)> { - let mut stack = widget_layout.layout.iter().enumerate().map(|(index, val)| (vec![index], val)).collect::>(); + fn get_widget_path(widget_layout: &Layout, widget_id: WidgetId) -> Option<(&WidgetInstance, Vec)> { + let mut stack = widget_layout.0.iter().enumerate().map(|(index, val)| (vec![index], val)).collect::>(); while let Some((mut widget_path, layout_group)) = stack.pop() { match layout_group { // Check if any of the widgets in the current column or row have the correct id @@ -71,29 +72,36 @@ impl LayoutMessageHandler { } if let Widget::PopoverButton(popover) = &widget.widget { - stack.extend(popover.popover_layout.iter().enumerate().map(|(child, val)| ([widget_path.as_slice(), &[index, child]].concat(), val))); + stack.extend( + popover + .popover_layout + .0 + .iter() + .enumerate() + .map(|(child, val)| ([widget_path.as_slice(), &[index, child]].concat(), val)), + ); } } } // A section contains more LayoutGroups which we add to the stack. LayoutGroup::Section { layout, .. } => { - stack.extend(layout.iter().enumerate().map(|(index, val)| ([widget_path.as_slice(), &[index]].concat(), val))); + stack.extend(layout.0.iter().enumerate().map(|(index, val)| ([widget_path.as_slice(), &[index]].concat(), val))); } - - LayoutGroup::Table { rows } => { - for (row_index, cell) in rows.iter().enumerate() { - for (cell_index, entry) in cell.iter().enumerate() { + LayoutGroup::Table { rows, .. } => { + for (row_index, row) in rows.iter().enumerate() { + for (cell_index, cell) in row.iter().enumerate() { // Return if this is the correct ID - if entry.widget_id == widget_id { + if cell.widget_id == widget_id { widget_path.push(row_index); widget_path.push(cell_index); - return Some((entry, widget_path)); + return Some((cell, widget_path)); } - if let Widget::PopoverButton(popover) = &entry.widget { + if let Widget::PopoverButton(popover) = &cell.widget { stack.extend( popover .popover_layout + .0 .iter() .enumerate() .map(|(child, val)| ([widget_path.as_slice(), &[row_index, cell_index, child]].concat(), val)), @@ -113,12 +121,12 @@ impl LayoutMessageHandler { return; }; - let Some(widget_holder) = layout.iter_mut().find(|widget| widget.widget_id == widget_id) else { + let Some(widget_instance) = layout.iter_mut().find(|widget| widget.widget_id == widget_id) else { warn!("handle_widget_callback was called referencing an invalid widget ID, although the layout target was valid. `widget_id: {widget_id}`, `layout_target: {layout_target:?}`",); return; }; - match &mut widget_holder.widget { + match &mut widget_instance.widget { Widget::BreadcrumbTrailButtons(breadcrumb_trail_buttons) => { let callback_message = match action { WidgetValueAction::Commit => (breadcrumb_trail_buttons.on_commit.callback)(&()), @@ -157,10 +165,10 @@ impl LayoutMessageHandler { let blue = color.get("blue").and_then(|x| x.as_f64()).map(|x| x as f32); let alpha = color.get("alpha").and_then(|x| x.as_f64()).map(|x| x as f32); - if let (Some(red), Some(green), Some(blue), Some(alpha)) = (red, green, blue, alpha) { - if let Some(color) = Color::from_rgbaf32(red, green, blue, alpha) { - return Some(color); - } + if let (Some(red), Some(green), Some(blue), Some(alpha)) = (red, green, blue, alpha) + && let Some(color) = Color::from_rgbaf32(red, green, blue, alpha) + { + return Some(color); } None }; @@ -254,44 +262,6 @@ impl LayoutMessageHandler { responses.add(callback_message); } - Widget::FontInput(font_input) => { - let callback_message = match action { - WidgetValueAction::Commit => (font_input.on_commit.callback)(&()), - WidgetValueAction::Update => { - let Some(update_value) = value.as_object() else { - error!("FontInput update was not of type: object"); - return; - }; - let Some(font_family_value) = update_value.get("fontFamily") else { - error!("FontInput update does not have a fontFamily"); - return; - }; - let Some(font_style_value) = update_value.get("fontStyle") else { - error!("FontInput update does not have a fontStyle"); - return; - }; - - let Some(font_family) = font_family_value.as_str() else { - error!("FontInput update fontFamily was not of type: string"); - return; - }; - let Some(font_style) = font_style_value.as_str() else { - error!("FontInput update fontStyle was not of type: string"); - return; - }; - - font_input.font_family = font_family.into(); - font_input.font_style = font_style.into(); - - responses.add(PortfolioMessage::LoadFont { - font: Font::new(font_family.into(), font_style.into()), - }); - (font_input.on_update.callback)(font_input) - } - }; - - responses.add(callback_message); - } Widget::IconButton(icon_button) => { let callback_message = match action { WidgetValueAction::Commit => (icon_button.on_commit.callback)(&()), @@ -308,15 +278,9 @@ impl LayoutMessageHandler { responses.add(callback_message); } + Widget::ImageLabel(_) => {} + Widget::ShortcutLabel(_) => {} Widget::IconLabel(_) => {} - Widget::InvisibleStandinInput(invisible) => { - let callback_message = match action { - WidgetValueAction::Commit => (invisible.on_commit.callback)(&()), - WidgetValueAction::Update => (invisible.on_update.callback)(&()), - }; - - responses.add(callback_message); - } Widget::NodeCatalog(node_type_input) => match action { WidgetValueAction::Commit => { let callback_message = (node_type_input.on_commit.callback)(&()); @@ -411,7 +375,34 @@ impl LayoutMessageHandler { Widget::TextButton(text_button) => { let callback_message = match action { WidgetValueAction::Commit => (text_button.on_commit.callback)(&()), - WidgetValueAction::Update => (text_button.on_update.callback)(text_button), + WidgetValueAction::Update => { + let Some(value_path) = value.as_array() else { + error!("TextButton update was not of type: array"); + return; + }; + + // Process the text button click, since no menu is involved if we're given an empty array. + if value_path.is_empty() { + (text_button.on_update.callback)(text_button) + } + // Process the text button's menu list entry click, since we have a path to the value of the contained menu entry. + else { + let mut current_submenu = &text_button.menu_list_children; + let mut final_entry: Option<&MenuListEntry> = None; + + // Loop through all menu entry value strings in the path until we reach the final entry (which we store). + // Otherwise we exit early if we can't traverse the full path. + for value in value_path.iter().filter_map(|v| v.as_str().map(|s| s.to_string())) { + let Some(next_entry) = current_submenu.iter().flatten().find(|e| e.value == value) else { return }; + + current_submenu = &next_entry.children; + final_entry = Some(next_entry); + } + + // If we've reached here without returning early, we have a final entry in the path and we should now execute its callback. + (final_entry.unwrap().on_commit.callback)(&()) + } + } }; responses.add(callback_message); @@ -440,40 +431,37 @@ impl LayoutMessageHandler { fn diff_and_send_layout_to_frontend( &mut self, layout_target: LayoutTarget, - new_layout: Layout, + mut new_layout: Layout, responses: &mut VecDeque, action_input_mapping: &impl Fn(&MessageDiscriminant) -> Option, ) { - match new_layout { - Layout::WidgetLayout(_) => { - let mut widget_diffs = Vec::new(); - self.layouts[layout_target as usize].diff(new_layout, &mut Vec::new(), &mut widget_diffs); + // Step 1: Collect CheckboxId mappings from new layout + let mut checkbox_map = HashMap::new(); + new_layout.collect_checkbox_ids(layout_target, &mut Vec::new(), &mut checkbox_map); - // Skip sending if no diff. - if widget_diffs.is_empty() { - return; - } + // Step 2: Replace all IDs in new layout with deterministic ones + new_layout.replace_widget_ids(layout_target, &mut Vec::new(), &checkbox_map); - self.send_diff(widget_diffs, layout_target, responses, action_input_mapping); - } - // We don't diff the menu bar layout yet. - Layout::MenuLayout(_) => { - // Skip update if the same - if self.layouts[layout_target as usize] == new_layout { - return; - } + // Step 3: Diff with deterministic IDs + let mut widget_diffs = Vec::new(); - // Update the backend storage - self.layouts[layout_target as usize] = new_layout; + self.layouts[layout_target as usize].diff(new_layout, &mut Vec::new(), &mut widget_diffs); - // Update the UI - let Some(layout) = self.layouts[layout_target as usize].clone().as_menu_layout(action_input_mapping).map(|x| x.layout) else { - error!("Called unwrap_menu_layout on a widget layout"); - return; - }; - responses.add(FrontendMessage::UpdateMenuBarLayout { layout_target, layout }); - } + // Skip sending if no diff + if widget_diffs.is_empty() { + return; } + + // On Mac we need the full MenuBar layout to construct the native menu + #[cfg(target_os = "macos")] + if layout_target == LayoutTarget::MenuBar { + widget_diffs = vec![WidgetDiff { + widget_path: Vec::new(), + new_value: DiffUpdate::Layout(self.layouts[LayoutTarget::MenuBar as usize].clone()), + }]; + } + + self.send_diff(widget_diffs, layout_target, responses, action_input_mapping); } /// Send a diff to the frontend based on the layout target. @@ -481,24 +469,27 @@ impl LayoutMessageHandler { diff.iter_mut().for_each(|diff| diff.new_value.apply_keyboard_shortcut(action_input_mapping)); let message = match layout_target { - LayoutTarget::DialogButtons => FrontendMessage::UpdateDialogButtons { layout_target, diff }, - LayoutTarget::DialogColumn1 => FrontendMessage::UpdateDialogColumn1 { layout_target, diff }, - LayoutTarget::DialogColumn2 => FrontendMessage::UpdateDialogColumn2 { layout_target, diff }, - LayoutTarget::DocumentBar => FrontendMessage::UpdateDocumentBarLayout { layout_target, diff }, - LayoutTarget::DocumentMode => FrontendMessage::UpdateDocumentModeLayout { layout_target, diff }, - LayoutTarget::LayersPanelControlLeftBar => FrontendMessage::UpdateLayersPanelControlBarLeftLayout { layout_target, diff }, - LayoutTarget::LayersPanelControlRightBar => FrontendMessage::UpdateLayersPanelControlBarRightLayout { layout_target, diff }, - LayoutTarget::LayersPanelBottomBar => FrontendMessage::UpdateLayersPanelBottomBarLayout { layout_target, diff }, - LayoutTarget::MenuBar => unreachable!("Menu bar is not diffed"), - LayoutTarget::NodeGraphControlBar => FrontendMessage::UpdateNodeGraphControlBarLayout { layout_target, diff }, - LayoutTarget::PropertiesSections => FrontendMessage::UpdatePropertyPanelSectionsLayout { layout_target, diff }, - LayoutTarget::Spreadsheet => FrontendMessage::UpdateSpreadsheetLayout { layout_target, diff }, - LayoutTarget::ToolOptions => FrontendMessage::UpdateToolOptionsLayout { layout_target, diff }, - LayoutTarget::ToolShelf => FrontendMessage::UpdateToolShelfLayout { layout_target, diff }, - LayoutTarget::WorkingColors => FrontendMessage::UpdateWorkingColorsLayout { layout_target, diff }, + LayoutTarget::DataPanel => FrontendMessage::UpdateDataPanelLayout { diff }, + LayoutTarget::DialogButtons => FrontendMessage::UpdateDialogButtons { diff }, + LayoutTarget::DialogColumn1 => FrontendMessage::UpdateDialogColumn1 { diff }, + LayoutTarget::DialogColumn2 => FrontendMessage::UpdateDialogColumn2 { diff }, + LayoutTarget::DocumentBar => FrontendMessage::UpdateDocumentBarLayout { diff }, + LayoutTarget::LayersPanelBottomBar => FrontendMessage::UpdateLayersPanelBottomBarLayout { diff }, + LayoutTarget::LayersPanelControlLeftBar => FrontendMessage::UpdateLayersPanelControlBarLeftLayout { diff }, + LayoutTarget::LayersPanelControlRightBar => FrontendMessage::UpdateLayersPanelControlBarRightLayout { diff }, + LayoutTarget::MenuBar => FrontendMessage::UpdateMenuBarLayout { diff }, + LayoutTarget::NodeGraphControlBar => FrontendMessage::UpdateNodeGraphControlBarLayout { diff }, + LayoutTarget::PropertiesPanel => FrontendMessage::UpdatePropertiesPanelLayout { diff }, + LayoutTarget::StatusBarHints => FrontendMessage::UpdateStatusBarHintsLayout { diff }, + LayoutTarget::ToolOptions => FrontendMessage::UpdateToolOptionsLayout { diff }, + LayoutTarget::ToolShelf => FrontendMessage::UpdateToolShelfLayout { diff }, + LayoutTarget::WelcomeScreenButtons => FrontendMessage::UpdateWelcomeScreenButtonsLayout { diff }, + LayoutTarget::WorkingColors => FrontendMessage::UpdateWorkingColorsLayout { diff }, - LayoutTarget::LayoutTargetLength => panic!("`LayoutTargetLength` is not a valid Layout Target and is used for array indexing"), + // KEEP THIS ENUM LAST + LayoutTarget::_LayoutTargetLength => panic!("`_LayoutTargetLength` is not a valid `LayoutTarget` and is used for array indexing"), }; + responses.add(message); } } diff --git a/editor/src/messages/layout/utility_types/layout_widget.rs b/editor/src/messages/layout/utility_types/layout_widget.rs index f26022774..6224ea4f0 100644 --- a/editor/src/messages/layout/utility_types/layout_widget.rs +++ b/editor/src/messages/layout/utility_types/layout_widget.rs @@ -1,11 +1,12 @@ use super::widgets::button_widgets::*; use super::widgets::input_widgets::*; use super::widgets::label_widgets::*; -use super::widgets::menu_widgets::MenuLayout; use crate::application::generate_uuid; use crate::messages::input_mapper::utility_types::input_keyboard::KeysGroup; -use crate::messages::input_mapper::utility_types::misc::ActionKeys; use crate::messages::prelude::*; +use std::collections::HashMap; +use std::collections::hash_map::DefaultHasher; +use std::hash::{Hash, Hasher}; use std::sync::Arc; #[repr(transparent)] @@ -21,6 +22,8 @@ impl core::fmt::Display for WidgetId { #[derive(PartialEq, Clone, Debug, Hash, Eq, Copy, serde::Serialize, serde::Deserialize, specta::Type)] #[repr(u8)] pub enum LayoutTarget { + /// The spreadsheet panel allows for the visualisation of data in the graph. + DataPanel, /// Contains the action buttons at the bottom of the dialog. Must be shown with the `FrontendMessage::DisplayDialog` message. DialogButtons, /// Contains the contents of the dialog's primary column. Must be shown with the `FrontendMessage::DisplayDialog` message. @@ -29,32 +32,32 @@ pub enum LayoutTarget { DialogColumn2, /// Contains the widgets located directly above the canvas to the right, for example the zoom in and out buttons. DocumentBar, - /// Contains the dropdown for design / select / guide mode found on the top left of the canvas. - DocumentMode, + /// Controls for adding, grouping, and deleting layers at the bottom of the Layers panel. + LayersPanelBottomBar, /// Blending options at the top of the Layers panel. LayersPanelControlLeftBar, /// Selected layer status (locked/hidden) at the top of the Layers panel. LayersPanelControlRightBar, - /// Controls for adding, grouping, and deleting layers at the bottom of the Layers panel. - LayersPanelBottomBar, /// The dropdown menu at the very top of the application: File, Edit, etc. MenuBar, /// Bar at the top of the node graph containing the location and the "Preview" and "Hide" buttons. NodeGraphControlBar, /// The body of the Properties panel containing many collapsable sections. - PropertiesSections, - /// The spredsheet panel allows for the visualisation of data in the graph. - Spreadsheet, - /// The bar directly above the canvas, left-aligned and to the right of the document mode dropdown. + PropertiesPanel, + /// The contextual input key/mouse combination shortcuts shown in the status bar at the bottom of the window. + StatusBarHints, + /// The left side of the control bar directly above the canvas. ToolOptions, /// The vertical buttons for all of the tools on the left of the canvas. ToolShelf, + /// The quick access buttons found on the welcome screen, shown when no documents are open. + WelcomeScreenButtons, /// The color swatch for the working colors and a flip and reset button found at the bottom of the tool shelf. WorkingColors, // KEEP THIS ENUM LAST // This is a marker that is used to define an array that is used to hold widgets - LayoutTargetLength, + _LayoutTargetLength, } /// For use by structs that define a UI widget layout by implementing the layout() function belonging to this trait. @@ -101,122 +104,123 @@ pub trait DialogLayoutHolder: LayoutHolder { } } -/// Wraps a choice of layout type. The chosen layout contains an arrangement of widgets mounted somewhere specific in the frontend. -#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] -pub enum Layout { - WidgetLayout(WidgetLayout), - MenuLayout(MenuLayout), +/// Trait for types that can compute incremental diffs for UI updates. +/// +/// This trait unifies the diffing behavior across Layout, LayoutGroup, and WidgetInstance, +/// allowing each type to specify how it should be represented in a DiffUpdate. +pub trait Diffable: Clone + PartialEq { + /// Converts this value into a DiffUpdate variant. + fn into_diff_update(self) -> DiffUpdate; + + /// Computes the diff between self (old) and new, updating self and recording changes. + fn diff(&mut self, new: Self, widget_path: &mut Vec, widget_diffs: &mut Vec); + + /// Collects all CheckboxIds currently in use in this layout, computing stable replacements. + fn collect_checkbox_ids(&self, layout_target: LayoutTarget, widget_path: &mut Vec, checkbox_map: &mut HashMap); + + /// Replaces all widget IDs with deterministic IDs based on position and type. + /// Also replaces CheckboxIds using the provided mapping. + fn replace_widget_ids(&mut self, layout_target: LayoutTarget, widget_path: &mut Vec, checkbox_map: &HashMap); } +/// Computes a deterministic WidgetId based on layout target, path, and widget type. +fn compute_widget_id(layout_target: LayoutTarget, widget_path: &[usize], widget: &Widget) -> WidgetId { + let mut hasher = DefaultHasher::new(); + + (layout_target as u8).hash(&mut hasher); + widget_path.hash(&mut hasher); + std::mem::discriminant(widget).hash(&mut hasher); + + WidgetId(hasher.finish()) +} + +/// Computes a deterministic CheckboxId based on the same WidgetId algorithm. +fn compute_checkbox_id(layout_target: LayoutTarget, widget_path: &[usize], widget: &Widget) -> CheckboxId { + let mut hasher = DefaultHasher::new(); + + (layout_target as u8).hash(&mut hasher); + widget_path.hash(&mut hasher); + std::mem::discriminant(widget).hash(&mut hasher); + + // Add extra salt for checkbox to differentiate from widget ID + "checkbox".hash(&mut hasher); + + CheckboxId(hasher.finish()) +} + +/// Contains an arrangement of widgets mounted somewhere specific in the frontend. +#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize, PartialEq, specta::Type)] +pub struct Layout(pub Vec); + impl Layout { - pub fn as_menu_layout(self, action_input_mapping: &impl Fn(&MessageDiscriminant) -> Option) -> Option { - if let Self::MenuLayout(mut menu) = self { - menu.layout - .iter_mut() - .for_each(|menu_column| menu_column.children.fill_in_shortcut_actions_with_keys(action_input_mapping)); - Some(menu) - } else { - None - } - } - - pub fn iter(&self) -> Box + '_> { - match self { - Layout::MenuLayout(menu_layout) => Box::new(menu_layout.iter()), - Layout::WidgetLayout(widget_layout) => Box::new(widget_layout.iter()), - } - } - - pub fn iter_mut(&mut self) -> Box + '_> { - match self { - Layout::MenuLayout(menu_layout) => Box::new(menu_layout.iter_mut()), - Layout::WidgetLayout(widget_layout) => Box::new(widget_layout.iter_mut()), - } - } - - /// Diffing updates self (where self is old) based on new, updating the list of modifications as it does so. - pub fn diff(&mut self, new: Self, widget_path: &mut Vec, widget_diffs: &mut Vec) { - match (self, new) { - // Simply diff the internal layout - (Self::WidgetLayout(current), Self::WidgetLayout(new)) => current.diff(new, widget_path, widget_diffs), - (current, Self::WidgetLayout(widget_layout)) => { - // Update current to the new value - *current = Self::WidgetLayout(widget_layout.clone()); - - // Push an update sublayout value - let new_value = DiffUpdate::SubLayout(widget_layout.layout); - let widget_path = widget_path.to_vec(); - widget_diffs.push(WidgetDiff { widget_path, new_value }); - } - (_, Self::MenuLayout(_)) => panic!("Cannot diff menu layout"), - } - } -} - -impl Default for Layout { - fn default() -> Self { - Self::WidgetLayout(WidgetLayout::default()) - } -} - -#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize, PartialEq, specta::Type)] -pub struct WidgetLayout { - pub layout: SubLayout, -} - -impl WidgetLayout { - pub fn new(layout: SubLayout) -> Self { - Self { layout } - } - pub fn iter(&self) -> WidgetIter<'_> { WidgetIter { - stack: self.layout.iter().collect(), + stack: self.0.iter().collect(), ..Default::default() } } pub fn iter_mut(&mut self) -> WidgetIterMut<'_> { WidgetIterMut { - stack: self.layout.iter_mut().collect(), + stack: self.0.iter_mut().collect(), ..Default::default() } } +} - /// Diffing updates self (where self is old) based on new, updating the list of modifications as it does so. - pub fn diff(&mut self, new: Self, widget_path: &mut Vec, widget_diffs: &mut Vec) { +impl Diffable for Layout { + fn into_diff_update(self) -> DiffUpdate { + DiffUpdate::Layout(self) + } + + fn diff(&mut self, new: Self, widget_path: &mut Vec, widget_diffs: &mut Vec) { // Check if the length of items is different // TODO: Diff insersion and deletion of items - if self.layout.len() != new.layout.len() { + if self.0.len() != new.0.len() { // Update the layout to the new layout - self.layout.clone_from(&new.layout); + self.0.clone_from(&new.0); // Push an update sublayout to the diff - let new = DiffUpdate::SubLayout(new.layout); widget_diffs.push(WidgetDiff { widget_path: widget_path.to_vec(), - new_value: new, + new_value: new.into_diff_update(), }); return; } // Diff all of the children - for (index, (current_child, new_child)) in self.layout.iter_mut().zip(new.layout).enumerate() { + for (index, (current_child, new_child)) in self.0.iter_mut().zip(new.0).enumerate() { widget_path.push(index); current_child.diff(new_child, widget_path, widget_diffs); widget_path.pop(); } } + + fn collect_checkbox_ids(&self, layout_target: LayoutTarget, widget_path: &mut Vec, checkbox_map: &mut HashMap) { + for (index, child) in self.0.iter().enumerate() { + widget_path.push(index); + child.collect_checkbox_ids(layout_target, widget_path, checkbox_map); + widget_path.pop(); + } + } + + fn replace_widget_ids(&mut self, layout_target: LayoutTarget, widget_path: &mut Vec, checkbox_map: &HashMap) { + for (index, child) in self.0.iter_mut().enumerate() { + widget_path.push(index); + child.replace_widget_ids(layout_target, widget_path, checkbox_map); + widget_path.pop(); + } + } } #[derive(Debug, Default)] pub struct WidgetIter<'a> { pub stack: Vec<&'a LayoutGroup>, - pub table: Vec<&'a WidgetHolder>, - pub current_slice: Option<&'a [WidgetHolder]>, + pub table: Vec<&'a WidgetInstance>, + pub current_slice: Option<&'a [WidgetInstance]>, } impl<'a> Iterator for WidgetIter<'a> { - type Item = &'a WidgetHolder; + type Item = &'a WidgetInstance; fn next(&mut self) -> Option { let widget = self.table.pop().or_else(|| { @@ -226,8 +230,8 @@ impl<'a> Iterator for WidgetIter<'a> { }); if let Some(item) = widget { - if let WidgetHolder { widget: Widget::PopoverButton(p), .. } = item { - self.stack.extend(p.popover_layout.iter()); + if let WidgetInstance { widget: Widget::PopoverButton(p), .. } = item { + self.stack.extend(p.popover_layout.0.iter()); return self.next(); } @@ -243,12 +247,12 @@ impl<'a> Iterator for WidgetIter<'a> { self.current_slice = Some(widgets); self.next() } - Some(LayoutGroup::Table { rows }) => { + Some(LayoutGroup::Table { rows, .. }) => { self.table.extend(rows.iter().flatten().rev()); self.next() } Some(LayoutGroup::Section { layout, .. }) => { - for layout_row in layout { + for layout_row in &layout.0 { self.stack.push(layout_row); } self.next() @@ -261,12 +265,12 @@ impl<'a> Iterator for WidgetIter<'a> { #[derive(Debug, Default)] pub struct WidgetIterMut<'a> { pub stack: Vec<&'a mut LayoutGroup>, - pub table: Vec<&'a mut WidgetHolder>, - pub current_slice: Option<&'a mut [WidgetHolder]>, + pub table: Vec<&'a mut WidgetInstance>, + pub current_slice: Option<&'a mut [WidgetInstance]>, } impl<'a> Iterator for WidgetIterMut<'a> { - type Item = &'a mut WidgetHolder; + type Item = &'a mut WidgetInstance; fn next(&mut self) -> Option { let widget = self.table.pop().or_else(|| { @@ -276,8 +280,8 @@ impl<'a> Iterator for WidgetIterMut<'a> { }); if let Some(widget) = widget { - if let WidgetHolder { widget: Widget::PopoverButton(p), .. } = widget { - self.stack.extend(p.popover_layout.iter_mut()); + if let WidgetInstance { widget: Widget::PopoverButton(p), .. } = widget { + self.stack.extend(p.popover_layout.0.iter_mut()); return self.next(); } @@ -293,12 +297,12 @@ impl<'a> Iterator for WidgetIterMut<'a> { self.current_slice = Some(widgets); self.next() } - Some(LayoutGroup::Table { rows }) => { + Some(LayoutGroup::Table { rows, .. }) => { self.table.extend(rows.iter_mut().flatten().rev()); self.next() } Some(LayoutGroup::Section { layout, .. }) => { - for layout_row in layout { + for layout_row in &mut layout.0 { self.stack.push(layout_row); } self.next() @@ -308,26 +312,24 @@ impl<'a> Iterator for WidgetIterMut<'a> { } } -pub type SubLayout = Vec; - #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] pub enum LayoutGroup { #[serde(rename = "column")] Column { #[serde(rename = "columnWidgets")] - widgets: Vec, + widgets: Vec, }, #[serde(rename = "row")] Row { #[serde(rename = "rowWidgets")] - widgets: Vec, + widgets: Vec, }, #[serde(rename = "table")] Table { #[serde(rename = "tableWidgets")] - rows: Vec>, + rows: Vec>, + unstyled: bool, }, - // TODO: Move this from being a child of `enum LayoutGroup` to being a child of `enum Layout` #[serde(rename = "section")] Section { name: String, @@ -335,7 +337,7 @@ pub enum LayoutGroup { visible: bool, pinned: bool, id: u64, - layout: SubLayout, + layout: Layout, }, } @@ -344,50 +346,67 @@ impl Default for LayoutGroup { Self::Row { widgets: Vec::new() } } } -impl From> for LayoutGroup { - fn from(widgets: Vec) -> LayoutGroup { +impl From> for LayoutGroup { + fn from(widgets: Vec) -> LayoutGroup { LayoutGroup::Row { widgets } } } impl LayoutGroup { - /// Applies a tooltip to all widgets in this row or column without a tooltip. - pub fn with_tooltip(self, tooltip: impl Into) -> Self { + /// Applies a tooltip description to all widgets without a tooltip in this row or column. + pub fn with_tooltip_description(self, description: impl Into) -> Self { let (is_col, mut widgets) = match self { LayoutGroup::Column { widgets } => (true, widgets), LayoutGroup::Row { widgets } => (false, widgets), _ => unimplemented!(), }; - let tooltip = tooltip.into(); + let description = description.into(); for widget in &mut widgets { let val = match &mut widget.widget { - Widget::CheckboxInput(x) => &mut x.tooltip, - Widget::ColorInput(x) => &mut x.tooltip, - Widget::CurveInput(x) => &mut x.tooltip, - Widget::DropdownInput(x) => &mut x.tooltip, - Widget::FontInput(x) => &mut x.tooltip, - Widget::IconButton(x) => &mut x.tooltip, - Widget::IconLabel(x) => &mut x.tooltip, - Widget::ImageButton(x) => &mut x.tooltip, - Widget::NumberInput(x) => &mut x.tooltip, - Widget::ParameterExposeButton(x) => &mut x.tooltip, - Widget::PopoverButton(x) => &mut x.tooltip, - Widget::TextAreaInput(x) => &mut x.tooltip, - Widget::TextButton(x) => &mut x.tooltip, - Widget::TextInput(x) => &mut x.tooltip, - Widget::TextLabel(x) => &mut x.tooltip, - Widget::BreadcrumbTrailButtons(x) => &mut x.tooltip, - Widget::InvisibleStandinInput(_) | Widget::ReferencePointInput(_) | Widget::RadioInput(_) | Widget::Separator(_) | Widget::WorkingColorsInput(_) | Widget::NodeCatalog(_) => continue, + Widget::CheckboxInput(x) => &mut x.tooltip_description, + Widget::ColorInput(x) => &mut x.tooltip_description, + Widget::CurveInput(x) => &mut x.tooltip_description, + Widget::DropdownInput(x) => &mut x.tooltip_description, + Widget::IconButton(x) => &mut x.tooltip_description, + Widget::IconLabel(x) => &mut x.tooltip_description, + Widget::ImageButton(x) => &mut x.tooltip_description, + Widget::ImageLabel(x) => &mut x.tooltip_description, + Widget::NumberInput(x) => &mut x.tooltip_description, + Widget::PopoverButton(x) => &mut x.tooltip_description, + Widget::TextAreaInput(x) => &mut x.tooltip_description, + Widget::TextButton(x) => &mut x.tooltip_description, + Widget::TextInput(x) => &mut x.tooltip_description, + Widget::TextLabel(x) => &mut x.tooltip_description, + Widget::BreadcrumbTrailButtons(x) => &mut x.tooltip_description, + Widget::ReferencePointInput(_) + | Widget::RadioInput(_) + | Widget::Separator(_) + | Widget::ShortcutLabel(_) + | Widget::WorkingColorsInput(_) + | Widget::NodeCatalog(_) + | Widget::ParameterExposeButton(_) => continue, }; if val.is_empty() { - val.clone_from(&tooltip); + val.clone_from(&description); } } if is_col { Self::Column { widgets } } else { Self::Row { widgets } } } - /// Diffing updates self (where self is old) based on new, updating the list of modifications as it does so. - pub fn diff(&mut self, new: Self, widget_path: &mut Vec, widget_diffs: &mut Vec) { + pub fn iter_mut(&mut self) -> WidgetIterMut<'_> { + WidgetIterMut { + stack: vec![self], + ..Default::default() + } + } +} + +impl Diffable for LayoutGroup { + fn into_diff_update(self) -> DiffUpdate { + DiffUpdate::LayoutGroup(self) + } + + fn diff(&mut self, new: Self, widget_path: &mut Vec, widget_diffs: &mut Vec) { let is_column = matches!(new, Self::Column { .. }); match (self, new) { (Self::Column { widgets: current_widgets }, Self::Column { widgets: new_widgets }) | (Self::Row { widgets: current_widgets }, Self::Row { widgets: new_widgets }) => { @@ -398,7 +417,7 @@ impl LayoutGroup { current_widgets.clone_from(&new_widgets); // Push back a LayoutGroup update to the diff - let new_value = DiffUpdate::LayoutGroup(if is_column { Self::Column { widgets: new_widgets } } else { Self::Row { widgets: new_widgets } }); + let new_value = (if is_column { Self::Column { widgets: new_widgets } } else { Self::Row { widgets: new_widgets } }).into_diff_update(); let widget_path = widget_path.to_vec(); widget_diffs.push(WidgetDiff { widget_path, new_value }); return; @@ -430,7 +449,7 @@ impl LayoutGroup { ) => { // Resend the entire panel if the lengths, names, visibility, or node IDs are different // TODO: Diff insersion and deletion of items - if current_layout.len() != new_layout.len() + if current_layout.0.len() != new_layout.0.len() || *current_name != new_name || *current_description != new_description || *current_visible != new_visible @@ -446,20 +465,21 @@ impl LayoutGroup { current_layout.clone_from(&new_layout); // Push an update layout group to the diff - let new_value = DiffUpdate::LayoutGroup(Self::Section { + let new_value = Self::Section { name: new_name, description: new_description, visible: new_visible, pinned: new_pinned, id: new_id, layout: new_layout, - }); + } + .into_diff_update(); let widget_path = widget_path.to_vec(); widget_diffs.push(WidgetDiff { widget_path, new_value }); } // Diff all of the children else { - for (index, (current_child, new_child)) in current_layout.iter_mut().zip(new_layout).enumerate() { + for (index, (current_child, new_child)) in current_layout.0.iter_mut().zip(new_layout.0).enumerate() { widget_path.push(index); current_child.diff(new_child, widget_path, widget_diffs); widget_path.pop(); @@ -468,51 +488,184 @@ impl LayoutGroup { } (current, new) => { *current = new.clone(); - let new_value = DiffUpdate::LayoutGroup(new); + let new_value = new.into_diff_update(); let widget_path = widget_path.to_vec(); widget_diffs.push(WidgetDiff { widget_path, new_value }); } } } - pub fn iter_mut(&mut self) -> WidgetIterMut<'_> { - WidgetIterMut { - stack: vec![self], - ..Default::default() + fn collect_checkbox_ids(&self, layout_target: LayoutTarget, widget_path: &mut Vec, checkbox_map: &mut HashMap) { + match self { + Self::Column { widgets } | Self::Row { widgets } => { + for (index, widget) in widgets.iter().enumerate() { + widget_path.push(index); + widget.collect_checkbox_ids(layout_target, widget_path, checkbox_map); + widget_path.pop(); + } + } + Self::Table { rows, .. } => { + for (row_idx, row) in rows.iter().enumerate() { + for (col_idx, widget) in row.iter().enumerate() { + widget_path.push(row_idx); + widget_path.push(col_idx); + widget.collect_checkbox_ids(layout_target, widget_path, checkbox_map); + widget_path.pop(); + widget_path.pop(); + } + } + } + Self::Section { layout, .. } => { + layout.collect_checkbox_ids(layout_target, widget_path, checkbox_map); + } + } + } + + fn replace_widget_ids(&mut self, layout_target: LayoutTarget, widget_path: &mut Vec, checkbox_map: &HashMap) { + match self { + Self::Column { widgets } | Self::Row { widgets } => { + for (index, widget) in widgets.iter_mut().enumerate() { + widget_path.push(index); + widget.replace_widget_ids(layout_target, widget_path, checkbox_map); + widget_path.pop(); + } + } + Self::Table { rows, .. } => { + for (row_idx, row) in rows.iter_mut().enumerate() { + for (col_idx, widget) in row.iter_mut().enumerate() { + widget_path.push(row_idx); + widget_path.push(col_idx); + widget.replace_widget_ids(layout_target, widget_path, checkbox_map); + widget_path.pop(); + widget_path.pop(); + } + } + } + Self::Section { layout, .. } => { + layout.replace_widget_ids(layout_target, widget_path, checkbox_map); + } } } } -#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] -pub struct WidgetHolder { +#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, specta::Type)] +pub struct WidgetInstance { #[serde(rename = "widgetId")] pub widget_id: WidgetId, pub widget: Widget, } -impl WidgetHolder { - #[deprecated(since = "0.0.0", note = "Please use the builder pattern, e.g. TextLabel::new(\"hello\").widget_holder()")] +impl PartialEq for WidgetInstance { + fn eq(&self, other: &Self) -> bool { + self.widget_id == other.widget_id && self.widget == other.widget + } +} + +impl WidgetInstance { + #[deprecated(since = "0.0.0", note = "Please use the builder pattern, e.g. TextLabel::new(\"hello\").widget_instance()")] pub fn new(widget: Widget) -> Self { Self { widget_id: WidgetId(generate_uuid()), widget, } } +} - /// Diffing updates self (where self is old) based on new, updating the list of modifications as it does so. - pub fn diff(&mut self, new: Self, widget_path: &mut [usize], widget_diffs: &mut Vec) { - // If there have been changes to the actual widget (not just the id) - if self.widget != new.widget { - // We should update to the new widget value as well as a new widget id - *self = new.clone(); +impl Diffable for WidgetInstance { + fn into_diff_update(self) -> DiffUpdate { + DiffUpdate::Widget(self) + } - // Push a widget update to the diff - let new_value = DiffUpdate::Widget(new); - let widget_path = widget_path.to_vec(); - widget_diffs.push(WidgetDiff { widget_path, new_value }); - } else { - // Required to update the callback function, which the PartialEq check above skips + fn diff(&mut self, new: Self, widget_path: &mut Vec, widget_diffs: &mut Vec) { + if self == &new { + // Still need to update callbacks since PartialEq skips them self.widget = new.widget; + return; + } + + // Special handling for PopoverButton: recursively diff nested layout if only the layout changed + if let (Widget::PopoverButton(button1), Widget::PopoverButton(button2)) = (&mut self.widget, &new.widget) { + // Check if only the popover layout changed (all other fields are the same) + if self.widget_id == new.widget_id + && button1.disabled == button2.disabled + && button1.style == button2.style + && button1.menu_direction == button2.menu_direction + && button1.icon == button2.icon + && button1.tooltip_label == button2.tooltip_label + && button1.tooltip_description == button2.tooltip_description + && button1.tooltip_shortcut == button2.tooltip_shortcut + && button1.popover_min_width == button2.popover_min_width + { + // Only the popover layout differs, diff it recursively + for (i, (a, b)) in button1.popover_layout.0.iter_mut().zip(button2.popover_layout.0.iter()).enumerate() { + widget_path.push(i); + a.diff(b.clone(), widget_path, widget_diffs); + widget_path.pop(); + } + return; + } + } + + // Widget or ID changed, send full update + *self = new.clone(); + let new_value = new.into_diff_update(); + let widget_path = widget_path.to_vec(); + widget_diffs.push(WidgetDiff { widget_path, new_value }); + } + + fn collect_checkbox_ids(&self, layout_target: LayoutTarget, widget_path: &mut Vec, checkbox_map: &mut HashMap) { + match &self.widget { + Widget::CheckboxInput(checkbox) => { + // Compute stable ID based on position and insert mapping + let checkbox_id = checkbox.for_label; + let stable_id = compute_checkbox_id(layout_target, widget_path, &self.widget); + checkbox_map.entry(checkbox_id).or_insert(stable_id); + } + Widget::TextLabel(label) => { + // Compute stable ID based on position and insert mapping + let checkbox_id = label.for_checkbox; + let stable_id = compute_checkbox_id(layout_target, widget_path, &self.widget); + checkbox_map.entry(checkbox_id).or_insert(stable_id); + } + Widget::PopoverButton(button) => { + // Recursively collect from nested popover layout + for (index, child) in button.popover_layout.0.iter().enumerate() { + widget_path.push(index); + child.collect_checkbox_ids(layout_target, widget_path, checkbox_map); + widget_path.pop(); + } + } + _ => {} + } + } + + fn replace_widget_ids(&mut self, layout_target: LayoutTarget, widget_path: &mut Vec, checkbox_map: &HashMap) { + // 1. Generate deterministic WidgetId + self.widget_id = compute_widget_id(layout_target, widget_path, &self.widget); + + // 2. Replace CheckboxIds if present + match &mut self.widget { + Widget::CheckboxInput(checkbox) => { + let old_id = checkbox.for_label; + if let Some(&new_id) = checkbox_map.get(&old_id) { + checkbox.for_label = new_id; + } + } + Widget::TextLabel(label) => { + let old_id = label.for_checkbox; + if let Some(&new_id) = checkbox_map.get(&old_id) { + label.for_checkbox = new_id; + } + } + Widget::PopoverButton(button) => { + // Recursively replace in nested popover layout + for (index, child) in button.popover_layout.0.iter_mut().enumerate() { + widget_path.push(index); + child.replace_widget_ids(layout_target, widget_path, checkbox_map); + widget_path.pop(); + } + } + _ => {} } } } @@ -542,11 +695,11 @@ pub enum Widget { ColorInput(ColorInput), CurveInput(CurveInput), DropdownInput(DropdownInput), - FontInput(FontInput), IconButton(IconButton), IconLabel(IconLabel), ImageButton(ImageButton), - InvisibleStandinInput(InvisibleStandinInput), + ImageLabel(ImageLabel), + ShortcutLabel(ShortcutLabel), NodeCatalog(NodeCatalog), NumberInput(NumberInput), ParameterExposeButton(ParameterExposeButton), @@ -575,55 +728,37 @@ pub struct WidgetDiff { } /// The new value of the UI, sent as part of a diff. -/// -/// An update can represent a single widget or an entire SubLayout, or just a single layout group. #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)] pub enum DiffUpdate { - #[serde(rename = "subLayout")] - SubLayout(SubLayout), + #[serde(rename = "layout")] + Layout(Layout), #[serde(rename = "layoutGroup")] LayoutGroup(LayoutGroup), #[serde(rename = "widget")] - Widget(WidgetHolder), + Widget(WidgetInstance), } impl DiffUpdate { /// Append the keyboard shortcut to the tooltip where applicable pub fn apply_keyboard_shortcut(&mut self, action_input_mapping: &impl Fn(&MessageDiscriminant) -> Option) { - // Function used multiple times later in this code block to convert `ActionKeys::Action` to `ActionKeys::Keys` and append its shortcut to the tooltip - let apply_shortcut_to_tooltip = |tooltip_shortcut: &mut ActionKeys, tooltip: &mut String| { - let shortcut_text = tooltip_shortcut.to_keys(action_input_mapping); - - if let ActionKeys::Keys(_keys) = tooltip_shortcut { - if !shortcut_text.is_empty() { - if !tooltip.is_empty() { - tooltip.push(' '); - } - tooltip.push('('); - tooltip.push_str(&shortcut_text); - tooltip.push(')'); - } - } - }; - - // Go through each widget to convert `ActionKeys::Action` to `ActionKeys::Keys` and append the key combination to the widget tooltip - let convert_tooltip = |widget_holder: &mut WidgetHolder| { + // Go through each widget to convert `ActionShortcut::Action` to `ActionShortcut::Shortcut` and append the key combination to the widget tooltip + let convert_tooltip = |widget_instance: &mut WidgetInstance| { // Handle all the widgets that have tooltips - let mut tooltip_shortcut = match &mut widget_holder.widget { - Widget::BreadcrumbTrailButtons(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), - Widget::CheckboxInput(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), - Widget::ColorInput(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), - Widget::DropdownInput(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), - Widget::FontInput(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), - Widget::IconButton(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), - Widget::NumberInput(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), - Widget::ParameterExposeButton(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), - Widget::PopoverButton(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), - Widget::TextButton(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), - Widget::ImageButton(widget) => Some((&mut widget.tooltip, &mut widget.tooltip_shortcut)), + let tooltip_shortcut = match &mut widget_instance.widget { + Widget::BreadcrumbTrailButtons(widget) => widget.tooltip_shortcut.as_mut(), + Widget::CheckboxInput(widget) => widget.tooltip_shortcut.as_mut(), + Widget::ColorInput(widget) => widget.tooltip_shortcut.as_mut(), + Widget::DropdownInput(widget) => widget.tooltip_shortcut.as_mut(), + Widget::IconButton(widget) => widget.tooltip_shortcut.as_mut(), + Widget::NumberInput(widget) => widget.tooltip_shortcut.as_mut(), + Widget::ParameterExposeButton(widget) => widget.tooltip_shortcut.as_mut(), + Widget::PopoverButton(widget) => widget.tooltip_shortcut.as_mut(), + Widget::TextButton(widget) => widget.tooltip_shortcut.as_mut(), + Widget::ImageButton(widget) => widget.tooltip_shortcut.as_mut(), + Widget::ShortcutLabel(widget) => widget.shortcut.as_mut(), Widget::IconLabel(_) + | Widget::ImageLabel(_) | Widget::CurveInput(_) - | Widget::InvisibleStandinInput(_) | Widget::NodeCatalog(_) | Widget::ReferencePointInput(_) | Widget::RadioInput(_) @@ -633,29 +768,90 @@ impl DiffUpdate { | Widget::TextLabel(_) | Widget::WorkingColorsInput(_) => None, }; - if let Some((tooltip, Some(tooltip_shortcut))) = &mut tooltip_shortcut { - apply_shortcut_to_tooltip(tooltip_shortcut, tooltip); + + // Convert `ActionShortcut::Action` to `ActionShortcut::Shortcut` + if let Some(tooltip_shortcut) = tooltip_shortcut { + tooltip_shortcut.realize_shortcut(action_input_mapping); } // Handle RadioInput separately because its tooltips are children of the widget - if let Widget::RadioInput(radio_input) = &mut widget_holder.widget { + if let Widget::RadioInput(radio_input) = &mut widget_instance.widget { for radio_entry_data in &mut radio_input.entries { - if let RadioEntryData { - tooltip, - tooltip_shortcut: Some(tooltip_shortcut), - .. - } = radio_entry_data - { - apply_shortcut_to_tooltip(tooltip_shortcut, tooltip); + // Convert `ActionShortcut::Action` to `ActionShortcut::Shortcut` + if let Some(tooltip_shortcut) = radio_entry_data.tooltip_shortcut.as_mut() { + tooltip_shortcut.realize_shortcut(action_input_mapping); } } } }; + // Recursively fill menu list entries with their realized shortcut keys specific to the current bindings and platform + let apply_action_shortcut_to_menu_lists = |entry_sections: &mut MenuListEntrySections| { + struct RecursiveWrapper<'a>(&'a dyn Fn(&mut MenuListEntrySections, &RecursiveWrapper)); + let recursive_wrapper = RecursiveWrapper(&|entry_sections: &mut MenuListEntrySections, recursive_wrapper| { + for entries in entry_sections { + for entry in entries { + // Convert `ActionShortcut::Action` to `ActionShortcut::Shortcut` + if let Some(tooltip_shortcut) = &mut entry.tooltip_shortcut { + tooltip_shortcut.realize_shortcut(action_input_mapping); + } + + // Recursively call this inner closure on the menu's children + (recursive_wrapper.0)(&mut entry.children, recursive_wrapper); + } + } + }); + (recursive_wrapper.0)(entry_sections, &recursive_wrapper) + }; + + // Hash the menu list entry sections for caching purposes + let hash_menu_list_entry_sections = |entry_sections: &MenuListEntrySections| { + struct RecursiveHasher<'a> { + hasher: DefaultHasher, + hash_fn: &'a dyn Fn(&mut RecursiveHasher, &MenuListEntrySections), + } + let mut recursive_hasher = RecursiveHasher { + hasher: DefaultHasher::new(), + hash_fn: &|recursive_hasher, entry_sections| { + for (index, entries) in entry_sections.iter().enumerate() { + index.hash(&mut recursive_hasher.hasher); + for entry in entries { + entry.hash(&mut recursive_hasher.hasher); + (recursive_hasher.hash_fn)(recursive_hasher, &entry.children); + } + } + }, + }; + (recursive_hasher.hash_fn)(&mut recursive_hasher, entry_sections); + recursive_hasher.hasher.finish() + }; + + // Apply shortcut conversions to all widgets that have menu lists + let convert_menu_lists = |widget_instance: &mut WidgetInstance| match &mut widget_instance.widget { + Widget::DropdownInput(dropdown_input) => { + apply_action_shortcut_to_menu_lists(&mut dropdown_input.entries); + dropdown_input.entries_hash = hash_menu_list_entry_sections(&dropdown_input.entries); + } + Widget::TextButton(text_button) => { + apply_action_shortcut_to_menu_lists(&mut text_button.menu_list_children); + text_button.menu_list_children_hash = hash_menu_list_entry_sections(&text_button.menu_list_children); + } + _ => {} + }; + match self { - Self::SubLayout(sub_layout) => sub_layout.iter_mut().flat_map(|layout_group| layout_group.iter_mut()).for_each(convert_tooltip), - Self::LayoutGroup(layout_group) => layout_group.iter_mut().for_each(convert_tooltip), - Self::Widget(widget_holder) => convert_tooltip(widget_holder), + Self::Layout(layout) => layout.0.iter_mut().flat_map(|layout_group| layout_group.iter_mut()).for_each(|widget_instance| { + convert_tooltip(widget_instance); + convert_menu_lists(widget_instance); + }), + Self::LayoutGroup(layout_group) => layout_group.iter_mut().for_each(|widget_instance| { + convert_tooltip(widget_instance); + convert_menu_lists(widget_instance); + }), + Self::Widget(widget_instance) => { + convert_tooltip(widget_instance); + convert_menu_lists(widget_instance); + } } } } diff --git a/editor/src/messages/layout/utility_types/mod.rs b/editor/src/messages/layout/utility_types/mod.rs index 8408d0b1b..33a2ddabf 100644 --- a/editor/src/messages/layout/utility_types/mod.rs +++ b/editor/src/messages/layout/utility_types/mod.rs @@ -6,5 +6,4 @@ pub mod widget_prelude { pub use super::widgets::button_widgets::*; pub use super::widgets::input_widgets::*; pub use super::widgets::label_widgets::*; - pub use super::widgets::menu_widgets::*; } diff --git a/editor/src/messages/layout/utility_types/widgets/button_widgets.rs b/editor/src/messages/layout/utility_types/widgets/button_widgets.rs index 54fbc9205..e1b48940f 100644 --- a/editor/src/messages/layout/utility_types/widgets/button_widgets.rs +++ b/editor/src/messages/layout/utility_types/widgets/button_widgets.rs @@ -1,4 +1,4 @@ -use crate::messages::input_mapper::utility_types::misc::ActionKeys; +use crate::messages::input_mapper::utility_types::misc::ActionShortcut; use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::portfolio::document::node_graph::utility_types::FrontendGraphDataType; use crate::messages::tool::tool_messages::tool_prelude::WidgetCallback; @@ -22,10 +22,14 @@ pub struct IconButton { pub active: bool, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, - #[serde(skip)] - pub tooltip_shortcut: Option, + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Callbacks #[serde(skip)] @@ -49,13 +53,17 @@ pub struct PopoverButton { pub disabled: bool, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, - #[serde(skip)] - pub tooltip_shortcut: Option, + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, #[serde(rename = "popoverLayout")] - pub popover_layout: SubLayout, + pub popover_layout: Layout, #[serde(rename = "popoverMinWidth")] pub popover_min_width: Option, @@ -83,10 +91,14 @@ pub struct ParameterExposeButton { #[serde(rename = "dataType")] pub data_type: FrontendGraphDataType, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, - #[serde(skip)] - pub tooltip_shortcut: Option, + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Callbacks #[serde(skip)] @@ -118,14 +130,24 @@ pub struct TextButton { pub disabled: bool, - pub tooltip: String, + pub narrow: bool, - #[serde(skip)] - pub tooltip_shortcut: Option, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, #[serde(rename = "menuListChildren")] pub menu_list_children: MenuListEntrySections, + #[serde(rename = "menuListChildrenHash")] + #[widget_builder(skip)] + pub menu_list_children_hash: u64, + // Callbacks #[serde(skip)] #[derivative(Debug = "ignore", PartialEq = "ignore")] @@ -146,10 +168,14 @@ pub struct ImageButton { pub height: Option, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, - #[serde(skip)] - pub tooltip_shortcut: Option, + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Callbacks #[serde(skip)] @@ -168,8 +194,6 @@ pub struct ColorInput { #[widget_builder(constructor)] pub value: FillChoice, - pub disabled: bool, - // TODO: Implement // #[serde(rename = "allowTransparency")] // #[derivative(Default(value = "false"))] @@ -179,13 +203,21 @@ pub struct ColorInput { #[derivative(Default(value = "true"))] pub allow_none: bool, - // TODO: Implement - // pub disabled: bool, - // - pub tooltip: String, + pub disabled: bool, - #[serde(skip)] - pub tooltip_shortcut: Option, + pub narrow: bool, + + #[serde(rename = "menuDirection")] + pub menu_direction: Option, + + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Callbacks #[serde(skip)] @@ -205,10 +237,14 @@ pub struct BreadcrumbTrailButtons { pub disabled: bool, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, - #[serde(skip)] - pub tooltip_shortcut: Option, + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Callbacks #[serde(skip)] diff --git a/editor/src/messages/layout/utility_types/widgets/input_widgets.rs b/editor/src/messages/layout/utility_types/widgets/input_widgets.rs index 02d1d3ee4..75ae5fafc 100644 --- a/editor/src/messages/layout/utility_types/widgets/input_widgets.rs +++ b/editor/src/messages/layout/utility_types/widgets/input_widgets.rs @@ -1,4 +1,4 @@ -use crate::messages::input_mapper::utility_types::misc::ActionKeys; +use crate::messages::input_mapper::utility_types::misc::ActionShortcut; use crate::messages::layout::utility_types::widget_prelude::*; use derivative::*; use graphene_std::Color; @@ -16,14 +16,18 @@ pub struct CheckboxInput { pub icon: String, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, #[serde(rename = "forLabel")] pub for_label: CheckboxId, - #[serde(skip)] - pub tooltip_shortcut: Option, - // Callbacks #[serde(skip)] #[derivative(Debug = "ignore", PartialEq = "ignore")] @@ -37,10 +41,11 @@ pub struct CheckboxInput { impl Default for CheckboxInput { fn default() -> Self { Self { - checked: false, - disabled: false, icon: "Checkmark".into(), - tooltip: Default::default(), + checked: Default::default(), + disabled: Default::default(), + tooltip_label: Default::default(), + tooltip_description: Default::default(), tooltip_shortcut: Default::default(), for_label: CheckboxId::new(), on_update: Default::default(), @@ -49,8 +54,8 @@ impl Default for CheckboxInput { } } -#[derive(Copy, Clone, Debug, Eq, PartialEq, serde::Serialize, serde::Deserialize)] -pub struct CheckboxId(u64); +#[derive(Copy, Clone, Debug, Eq, PartialEq, Hash, serde::Serialize, serde::Deserialize)] +pub struct CheckboxId(pub u64); impl CheckboxId { pub fn new() -> Self { @@ -75,6 +80,10 @@ pub struct DropdownInput { #[widget_builder(constructor)] pub entries: MenuListEntrySections, + #[serde(rename = "entriesHash")] + #[widget_builder(skip)] + pub entries_hash: u64, + // This uses `u32` instead of `usize` since it will be serialized as a normal JS number (replace this with `usize` after switching to a Rust-based GUI) #[serde(rename = "selectedIndex")] pub selected_index: Option, @@ -87,10 +96,19 @@ pub struct DropdownInput { pub disabled: bool, - pub tooltip: String, + pub narrow: bool, - #[serde(skip)] - pub tooltip_shortcut: Option, + #[serde(rename = "virtualScrolling")] + pub virtual_scrolling: bool, + + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Styling #[serde(rename = "minWidth")] @@ -107,24 +125,34 @@ pub type MenuListEntrySections = Vec>; #[derive(Clone, serde::Serialize, serde::Deserialize, Derivative, Default, WidgetBuilder, specta::Type)] #[derivative(Debug, PartialEq)] -#[widget_builder(not_widget_holder)] +#[widget_builder(not_widget_instance)] pub struct MenuListEntry { #[widget_builder(constructor)] pub value: String, pub label: String, + pub font: String, + pub icon: String, - pub shortcut: Vec, - - #[serde(rename = "shortcutRequiresLock")] - pub shortcut_requires_lock: bool, - pub disabled: bool, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, + pub children: MenuListEntrySections, + #[serde(rename = "childrenHash")] + #[widget_builder(skip)] + pub children_hash: u64, + // Callbacks #[serde(skip)] #[derivative(Debug = "ignore", PartialEq = "ignore")] @@ -135,50 +163,13 @@ pub struct MenuListEntry { pub on_commit: WidgetCallback<()>, } -#[derive(Clone, serde::Serialize, serde::Deserialize, Derivative, WidgetBuilder, specta::Type)] -#[derivative(Debug, PartialEq, Default)] -pub struct FontInput { - #[serde(rename = "fontFamily")] - #[widget_builder(constructor)] - pub font_family: String, - - #[serde(rename = "fontStyle")] - #[widget_builder(constructor)] - pub font_style: String, - - #[serde(rename = "isStyle")] - pub is_style_picker: bool, - - pub disabled: bool, - - pub tooltip: String, - - #[serde(skip)] - pub tooltip_shortcut: Option, - - // Callbacks - #[serde(skip)] - #[derivative(Debug = "ignore", PartialEq = "ignore")] - pub on_update: WidgetCallback, - - #[serde(skip)] - #[derivative(Debug = "ignore", PartialEq = "ignore")] - pub on_commit: WidgetCallback<()>, -} - -/// This widget allows for the flexible use of the layout system. -/// In a custom layout, one can define a widget that is just used to trigger code on the backend. -/// This is used in MenuLayout to pipe the triggering of messages from the frontend to backend. -#[derive(Clone, serde::Serialize, serde::Deserialize, Derivative, Default, WidgetBuilder, specta::Type)] -#[derivative(Debug, PartialEq)] -pub struct InvisibleStandinInput { - #[serde(skip)] - #[derivative(Debug = "ignore", PartialEq = "ignore")] - pub on_update: WidgetCallback<()>, - - #[serde(skip)] - #[derivative(Debug = "ignore", PartialEq = "ignore")] - pub on_commit: WidgetCallback<()>, +impl std::hash::Hash for MenuListEntry { + fn hash(&self, state: &mut H) { + self.value.hash(state); + self.label.hash(state); + self.icon.hash(state); + self.disabled.hash(state); + } } #[derive(Clone, serde::Serialize, serde::Deserialize, Derivative, WidgetBuilder, specta::Type)] @@ -187,14 +178,20 @@ pub struct NumberInput { // Label pub label: String, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, - #[serde(skip)] - pub tooltip_shortcut: Option, + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Disabled pub disabled: bool, + pub narrow: bool, + // Value #[widget_builder(constructor)] pub value: Option, @@ -333,6 +330,8 @@ pub struct RadioInput { pub disabled: bool, + pub narrow: bool, + // This uses `u32` instead of `usize` since it will be serialized as a normal JS number (replace this with `usize` after switching to a Rust-based GUI) #[serde(rename = "selectedIndex")] pub selected_index: Option, @@ -343,7 +342,7 @@ pub struct RadioInput { #[derive(Clone, Default, Derivative, serde::Serialize, serde::Deserialize, WidgetBuilder, specta::Type)] #[derivative(Debug, PartialEq)] -#[widget_builder(not_widget_holder)] +#[widget_builder(not_widget_instance)] pub struct RadioEntryData { #[widget_builder(constructor)] pub value: String, @@ -352,10 +351,14 @@ pub struct RadioEntryData { pub icon: String, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, - #[serde(skip)] - pub tooltip_shortcut: Option, + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Callbacks #[serde(skip)] @@ -387,7 +390,14 @@ pub struct TextAreaInput { pub disabled: bool, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Callbacks #[serde(skip)] @@ -409,13 +419,25 @@ pub struct TextInput { pub disabled: bool, - pub tooltip: String, + pub narrow: bool, + + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, pub centered: bool, #[serde(rename = "minWidth")] pub min_width: u32, + #[serde(rename = "maxWidth")] + pub max_width: u32, + // Callbacks #[serde(skip)] #[derivative(Debug = "ignore", PartialEq = "ignore")] @@ -434,7 +456,14 @@ pub struct CurveInput { pub disabled: bool, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Callbacks #[serde(skip)] @@ -454,7 +483,14 @@ pub struct ReferencePointInput { pub disabled: bool, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, // Callbacks #[serde(skip)] diff --git a/editor/src/messages/layout/utility_types/widgets/label_widgets.rs b/editor/src/messages/layout/utility_types/widgets/label_widgets.rs index f89b6dbea..e91c17c7f 100644 --- a/editor/src/messages/layout/utility_types/widgets/label_widgets.rs +++ b/editor/src/messages/layout/utility_types/widgets/label_widgets.rs @@ -1,4 +1,5 @@ use super::input_widgets::CheckboxId; +use crate::messages::input_mapper::utility_types::misc::ActionShortcut; use derivative::*; use graphite_proc_macros::WidgetBuilder; @@ -9,7 +10,14 @@ pub struct IconLabel { pub disabled: bool, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, } #[derive(Debug, Clone, Default, PartialEq, Eq, serde::Serialize, serde::Deserialize, WidgetBuilder, specta::Type)] @@ -36,26 +44,38 @@ pub enum SeparatorType { Section, } -#[derive(Clone, serde::Serialize, serde::Deserialize, Derivative, Debug, PartialEq, Eq, Default, WidgetBuilder, specta::Type)] +#[derive(Clone, serde::Serialize, serde::Deserialize, Derivative, Debug, Eq, Default, WidgetBuilder, specta::Type)] +#[derivative(PartialEq)] pub struct TextLabel { pub disabled: bool, + pub narrow: bool, + pub bold: bool, pub italic: bool, + pub monospace: bool, + + pub multiline: bool, + #[serde(rename = "centerAlign")] pub center_align: bool, #[serde(rename = "tableAlign")] pub table_align: bool, - pub multiline: bool, - #[serde(rename = "minWidth")] - pub min_width: u32, + pub min_width: String, - pub tooltip: String, + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, #[serde(rename = "forCheckbox")] pub for_checkbox: CheckboxId, @@ -65,4 +85,30 @@ pub struct TextLabel { pub value: String, } -// TODO: Add UserInputLabel +#[derive(Clone, serde::Serialize, serde::Deserialize, Derivative, Default, WidgetBuilder, specta::Type)] +#[derivative(Debug, PartialEq)] +pub struct ImageLabel { + #[widget_builder(constructor)] + pub url: String, + + pub width: Option, + + pub height: Option, + + #[serde(rename = "tooltipLabel")] + pub tooltip_label: String, + + #[serde(rename = "tooltipDescription")] + pub tooltip_description: String, + + #[serde(rename = "tooltipShortcut")] + pub tooltip_shortcut: Option, +} + +#[derive(Clone, serde::Serialize, serde::Deserialize, Derivative, Default, WidgetBuilder, specta::Type)] +#[derivative(Debug, PartialEq)] +pub struct ShortcutLabel { + // This is wrapped in an Option to satisfy the requirement that widgets implement Default + #[widget_builder(constructor)] + pub shortcut: Option, +} diff --git a/editor/src/messages/layout/utility_types/widgets/menu_widgets.rs b/editor/src/messages/layout/utility_types/widgets/menu_widgets.rs deleted file mode 100644 index e96009d06..000000000 --- a/editor/src/messages/layout/utility_types/widgets/menu_widgets.rs +++ /dev/null @@ -1,131 +0,0 @@ -use super::input_widgets::InvisibleStandinInput; -use crate::messages::input_mapper::utility_types::input_keyboard::KeysGroup; -use crate::messages::input_mapper::utility_types::misc::ActionKeys; -use crate::messages::layout::utility_types::widget_prelude::*; -use crate::messages::prelude::*; - -#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, Default, specta::Type)] -pub struct MenuBarEntryChildren(pub Vec>); - -impl MenuBarEntryChildren { - pub fn empty() -> Self { - Self(Vec::new()) - } - - pub fn fill_in_shortcut_actions_with_keys(&mut self, action_input_mapping: &impl Fn(&MessageDiscriminant) -> Option) { - let entries = self.0.iter_mut().flatten(); - - for entry in entries { - if let Some(action_keys) = &mut entry.shortcut { - action_keys.to_keys(action_input_mapping); - } - - // Recursively do this for the children also - entry.children.fill_in_shortcut_actions_with_keys(action_input_mapping); - } - } -} - -#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq, specta::Type)] -pub struct MenuBarEntry { - pub label: String, - pub icon: Option, - pub shortcut: Option, - pub action: WidgetHolder, - pub children: MenuBarEntryChildren, - pub disabled: bool, -} - -impl MenuBarEntry { - pub fn new_root(label: String, disabled: bool, children: MenuBarEntryChildren) -> Self { - Self { - label, - disabled, - children, - ..Default::default() - } - } - - pub fn create_action(callback: impl Fn(&()) -> Message + 'static + Send + Sync) -> WidgetHolder { - InvisibleStandinInput::new().on_update(callback).widget_holder() - } - - pub fn no_action() -> WidgetHolder { - MenuBarEntry::create_action(|_| Message::NoOp) - } -} - -impl Default for MenuBarEntry { - fn default() -> Self { - Self { - label: "".into(), - icon: None, - shortcut: None, - action: MenuBarEntry::no_action(), - children: MenuBarEntryChildren::empty(), - disabled: false, - } - } -} - -#[derive(Debug, Default, Clone, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] -pub struct MenuLayout { - pub layout: Vec, -} - -impl MenuLayout { - pub fn new(layout: Vec) -> Self { - Self { layout } - } - - pub fn iter(&self) -> impl Iterator + '_ { - MenuLayoutIter { stack: self.layout.iter().collect() } - } - - pub fn iter_mut(&mut self) -> impl Iterator + '_ { - MenuLayoutIterMut { - stack: self.layout.iter_mut().collect(), - } - } -} - -#[derive(Debug, Default)] -pub struct MenuLayoutIter<'a> { - pub stack: Vec<&'a MenuBarEntry>, -} - -impl<'a> Iterator for MenuLayoutIter<'a> { - type Item = &'a WidgetHolder; - - fn next(&mut self) -> Option { - match self.stack.pop() { - Some(menu_entry) => { - let more_entries = menu_entry.children.0.iter().flat_map(|entry| entry.iter()); - self.stack.extend(more_entries); - - Some(&menu_entry.action) - } - None => None, - } - } -} - -pub struct MenuLayoutIterMut<'a> { - pub stack: Vec<&'a mut MenuBarEntry>, -} - -impl<'a> Iterator for MenuLayoutIterMut<'a> { - type Item = &'a mut WidgetHolder; - - fn next(&mut self) -> Option { - match self.stack.pop() { - Some(menu_entry) => { - let more_entries = menu_entry.children.0.iter_mut().flat_map(|entry| entry.iter_mut()); - self.stack.extend(more_entries); - - Some(&mut menu_entry.action) - } - None => None, - } - } -} diff --git a/editor/src/messages/layout/utility_types/widgets/mod.rs b/editor/src/messages/layout/utility_types/widgets/mod.rs index 922029633..0f5f1c4f3 100644 --- a/editor/src/messages/layout/utility_types/widgets/mod.rs +++ b/editor/src/messages/layout/utility_types/widgets/mod.rs @@ -1,4 +1,3 @@ pub mod button_widgets; pub mod input_widgets; pub mod label_widgets; -pub mod menu_widgets; diff --git a/editor/src/messages/portfolio/menu_bar/menu_bar_message.rs b/editor/src/messages/menu_bar/menu_bar_message.rs similarity index 76% rename from editor/src/messages/portfolio/menu_bar/menu_bar_message.rs rename to editor/src/messages/menu_bar/menu_bar_message.rs index f4f19c0a9..6a1525d38 100644 --- a/editor/src/messages/portfolio/menu_bar/menu_bar_message.rs +++ b/editor/src/messages/menu_bar/menu_bar_message.rs @@ -1,6 +1,6 @@ use crate::messages::prelude::*; -#[impl_message(Message, PortfolioMessage, MenuBar)] +#[impl_message(Message, MenuBar)] #[derive(PartialEq, Eq, Clone, Debug, Hash, serde::Serialize, serde::Deserialize)] pub enum MenuBarMessage { // Messages diff --git a/editor/src/messages/menu_bar/menu_bar_message_handler.rs b/editor/src/messages/menu_bar/menu_bar_message_handler.rs new file mode 100644 index 000000000..b06b7397a --- /dev/null +++ b/editor/src/messages/menu_bar/menu_bar_message_handler.rs @@ -0,0 +1,740 @@ +use crate::messages::debug::utility_types::MessageLoggingVerbosity; +use crate::messages::input_mapper::utility_types::macros::action_shortcut; +use crate::messages::layout::utility_types::widget_prelude::*; +use crate::messages::portfolio::document::utility_types::misc::{AlignAggregate, AlignAxis, FlipAxis, GroupFolderType}; +use crate::messages::prelude::*; +use graphene_std::path_bool::BooleanOperation; + +#[derive(Debug, Clone, Default, ExtractField)] +pub struct MenuBarMessageHandler { + pub has_active_document: bool, + pub canvas_tilted: bool, + pub canvas_flipped: bool, + pub rulers_visible: bool, + pub node_graph_open: bool, + pub has_selected_nodes: bool, + pub has_selected_layers: bool, + pub has_selection_history: (bool, bool), + pub message_logging_verbosity: MessageLoggingVerbosity, + pub reset_node_definitions_on_open: bool, + pub make_path_editable_is_allowed: bool, + pub data_panel_open: bool, + pub layers_panel_open: bool, + pub properties_panel_open: bool, +} + +#[message_handler_data] +impl MessageHandler for MenuBarMessageHandler { + fn process_message(&mut self, message: MenuBarMessage, responses: &mut VecDeque, _: ()) { + match message { + MenuBarMessage::SendLayout => { + self.send_layout(responses, LayoutTarget::MenuBar); + } + } + } + + fn actions(&self) -> ActionList { + actions!(MenuBarMessageDiscriminant;) + } +} + +impl LayoutHolder for MenuBarMessageHandler { + fn layout(&self) -> Layout { + let no_active_document = !self.has_active_document; + let node_graph_open = self.node_graph_open; + let has_selected_nodes = self.has_selected_nodes; + let has_selected_layers = self.has_selected_layers; + let has_selection_history = self.has_selection_history; + let message_logging_verbosity_off = self.message_logging_verbosity == MessageLoggingVerbosity::Off; + let message_logging_verbosity_names = self.message_logging_verbosity == MessageLoggingVerbosity::Names; + let message_logging_verbosity_contents = self.message_logging_verbosity == MessageLoggingVerbosity::Contents; + let reset_node_definitions_on_open = self.reset_node_definitions_on_open; + let make_path_editable_is_allowed = self.make_path_editable_is_allowed; + + let about = MenuListEntry::new("About Graphiteโ€ฆ") + .label({ + #[cfg(not(target_os = "macos"))] + { + "About Graphiteโ€ฆ" + } + #[cfg(target_os = "macos")] + { + "About Graphite" + } + }) + .icon("GraphiteLogo") + .on_commit(|_| DialogMessage::RequestAboutGraphiteDialog.into()); + let preferences = MenuListEntry::new("Preferencesโ€ฆ") + .label("Preferencesโ€ฆ") + .icon("Settings") + .tooltip_shortcut(action_shortcut!(DialogMessageDiscriminant::RequestPreferencesDialog)) + .on_commit(|_| DialogMessage::RequestPreferencesDialog.into()); + + let menu_bar_buttons = vec![ + #[cfg(not(target_os = "macos"))] + TextButton::new("Graphite") + .label("") + .flush(true) + .icon(Some("GraphiteLogo".into())) + .on_commit(|_| FrontendMessage::TriggerVisitLink { url: "https://graphite.art".into() }.into()) + .widget_instance(), + #[cfg(target_os = "macos")] + TextButton::new("Graphite") + .label("") + .flush(true) + .menu_list_children(vec![ + vec![about], + vec![preferences], + vec![ + MenuListEntry::new("Hide Graphite") + .label("Hide Graphite") + .tooltip_shortcut(action_shortcut!(AppWindowMessageDiscriminant::Hide)) + .on_commit(|_| AppWindowMessage::Hide.into()), + MenuListEntry::new("Hide Others") + .label("Hide Others") + .tooltip_shortcut(action_shortcut!(AppWindowMessageDiscriminant::HideOthers)) + .on_commit(|_| AppWindowMessage::HideOthers.into()), + MenuListEntry::new("Show All") + .label("Show All") + .tooltip_shortcut(action_shortcut!(AppWindowMessageDiscriminant::ShowAll)) + .on_commit(|_| AppWindowMessage::ShowAll.into()), + ], + vec![ + MenuListEntry::new("Quit Graphite") + .label("Quit Graphite") + .tooltip_shortcut(action_shortcut!(AppWindowMessageDiscriminant::Close)) + .on_commit(|_| AppWindowMessage::Close.into()), + ], + ]) + .widget_instance(), + TextButton::new("File") + .label("File") + .flush(true) + .menu_list_children(vec![ + vec![ + MenuListEntry::new("Newโ€ฆ") + .label("Newโ€ฆ") + .icon("File") + .on_commit(|_| DialogMessage::RequestNewDocumentDialog.into()) + .tooltip_shortcut(action_shortcut!(DialogMessageDiscriminant::RequestNewDocumentDialog)), + MenuListEntry::new("Openโ€ฆ") + .label("Openโ€ฆ") + .icon("Folder") + .tooltip_shortcut(action_shortcut!(PortfolioMessageDiscriminant::OpenDocument)) + .on_commit(|_| PortfolioMessage::OpenDocument.into()), + MenuListEntry::new("Open Demo Artworkโ€ฆ") + .label("Open Demo Artworkโ€ฆ") + .icon("Image") + .on_commit(|_| DialogMessage::RequestDemoArtworkDialog.into()), + ], + vec![ + MenuListEntry::new("Close") + .label("Close") + .icon("Close") + .tooltip_shortcut(action_shortcut!(PortfolioMessageDiscriminant::CloseActiveDocumentWithConfirmation)) + .on_commit(|_| PortfolioMessage::CloseActiveDocumentWithConfirmation.into()) + .disabled(no_active_document), + MenuListEntry::new("Close All") + .label("Close All") + .icon("CloseAll") + .tooltip_shortcut(action_shortcut!(PortfolioMessageDiscriminant::CloseAllDocumentsWithConfirmation)) + .on_commit(|_| PortfolioMessage::CloseAllDocumentsWithConfirmation.into()) + .disabled(no_active_document), + ], + vec![ + MenuListEntry::new("Save") + .label("Save") + .icon("Save") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::SaveDocument)) + .on_commit(|_| DocumentMessage::SaveDocument.into()) + .disabled(no_active_document), + #[cfg(not(target_family = "wasm"))] + MenuListEntry::new("Save Asโ€ฆ") + .label("Save Asโ€ฆ") + .icon("Save") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::SaveDocumentAs)) + .on_commit(|_| DocumentMessage::SaveDocumentAs.into()) + .disabled(no_active_document), + ], + vec![ + MenuListEntry::new("Importโ€ฆ") + .label("Importโ€ฆ") + .icon("FileImport") + .tooltip_shortcut(action_shortcut!(PortfolioMessageDiscriminant::Import)) + .on_commit(|_| PortfolioMessage::Import.into()), + MenuListEntry::new("Exportโ€ฆ") + .label("Exportโ€ฆ") + .icon("FileExport") + .tooltip_shortcut(action_shortcut!(DialogMessageDiscriminant::RequestExportDialog)) + .on_commit(|_| DialogMessage::RequestExportDialog.into()) + .disabled(no_active_document), + ], + #[cfg(not(target_os = "macos"))] + vec![preferences], + ]) + .widget_instance(), + TextButton::new("Edit") + .label("Edit") + .flush(true) + .menu_list_children(vec![ + vec![ + MenuListEntry::new("Undo") + .label("Undo") + .icon("HistoryUndo") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::Undo)) + .on_commit(|_| DocumentMessage::Undo.into()) + .disabled(no_active_document), + MenuListEntry::new("Redo") + .label("Redo") + .icon("HistoryRedo") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::Redo)) + .on_commit(|_| DocumentMessage::Redo.into()) + .disabled(no_active_document), + ], + vec![ + MenuListEntry::new("Cut") + .label("Cut") + .icon("Cut") + .tooltip_shortcut(action_shortcut!(ClipboardMessageDiscriminant::Cut)) + .on_commit(|_| ClipboardMessage::Cut.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Copy") + .label("Copy") + .icon("Copy") + .tooltip_shortcut(action_shortcut!(ClipboardMessageDiscriminant::Copy)) + .on_commit(|_| ClipboardMessage::Copy.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Paste") + .label("Paste") + .icon("Paste") + .tooltip_shortcut(action_shortcut!(ClipboardMessageDiscriminant::Paste)) + .on_commit(|_| ClipboardMessage::Paste.into()) + .disabled(no_active_document), + ], + vec![ + MenuListEntry::new("Duplicate") + .label("Duplicate") + .icon("Copy") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::DuplicateSelectedLayers)) + .on_commit(|_| DocumentMessage::DuplicateSelectedLayers.into()) + .disabled(no_active_document || !has_selected_nodes), + MenuListEntry::new("Delete") + .label("Delete") + .icon("Trash") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::DeleteSelectedLayers)) + .on_commit(|_| DocumentMessage::DeleteSelectedLayers.into()) + .disabled(no_active_document || !has_selected_nodes), + ], + vec![ + MenuListEntry::new("Convert to Infinite Canvas") + .label("Convert to Infinite Canvas") + .icon("Artboard") + .on_commit(|_| DocumentMessage::RemoveArtboards.into()) + .disabled(no_active_document), + ], + ]) + .widget_instance(), + TextButton::new("Layer") + .label("Layer") + .flush(true) + .menu_list_children(vec![ + vec![ + MenuListEntry::new("New") + .label("New") + .icon("NewLayer") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::CreateEmptyFolder)) + .on_commit(|_| DocumentMessage::CreateEmptyFolder.into()) + .disabled(no_active_document), + ], + vec![ + MenuListEntry::new("Group") + .label("Group") + .icon("Folder") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::GroupSelectedLayers)) + .on_commit(|_| { + DocumentMessage::GroupSelectedLayers { + group_folder_type: GroupFolderType::Layer, + } + .into() + }) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Ungroup") + .label("Ungroup") + .icon("FolderOpen") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::UngroupSelectedLayers)) + .on_commit(|_| DocumentMessage::UngroupSelectedLayers.into()) + .disabled(no_active_document || !has_selected_layers), + ], + vec![ + MenuListEntry::new("Hide/Show") + .label("Hide/Show") + .icon("EyeHide") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::ToggleSelectedVisibility)) + .on_commit(|_| DocumentMessage::ToggleSelectedVisibility.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Lock/Unlock") + .label("Lock/Unlock") + .icon("PadlockLocked") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::ToggleSelectedLocked)) + .on_commit(|_| DocumentMessage::ToggleSelectedLocked.into()) + .disabled(no_active_document || !has_selected_layers), + ], + vec![ + MenuListEntry::new("Grab") + .label("Grab") + .icon("TransformationGrab") + .tooltip_shortcut(action_shortcut!(TransformLayerMessageDiscriminant::BeginGrab)) + .on_commit(|_| TransformLayerMessage::BeginGrab.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Rotate") + .label("Rotate") + .icon("TransformationRotate") + .tooltip_shortcut(action_shortcut!(TransformLayerMessageDiscriminant::BeginRotate)) + .on_commit(|_| TransformLayerMessage::BeginRotate.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Scale") + .label("Scale") + .icon("TransformationScale") + .tooltip_shortcut(action_shortcut!(TransformLayerMessageDiscriminant::BeginScale)) + .on_commit(|_| TransformLayerMessage::BeginScale.into()) + .disabled(no_active_document || !has_selected_layers), + ], + vec![ + MenuListEntry::new("Arrange") + .label("Arrange") + .icon("StackHollow") + .disabled(no_active_document || !has_selected_layers) + .children(vec![ + vec![ + MenuListEntry::new("Raise To Front") + .label("Raise To Front") + .icon("Stack") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::SelectedLayersRaiseToFront)) + .on_commit(|_| DocumentMessage::SelectedLayersRaiseToFront.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Raise") + .label("Raise") + .icon("StackRaise") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::SelectedLayersRaise)) + .on_commit(|_| DocumentMessage::SelectedLayersRaise.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Lower") + .label("Lower") + .icon("StackLower") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::SelectedLayersLower)) + .on_commit(|_| DocumentMessage::SelectedLayersLower.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Lower to Back") + .label("Lower to Back") + .icon("StackBottom") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::SelectedLayersLowerToBack)) + .on_commit(|_| DocumentMessage::SelectedLayersLowerToBack.into()) + .disabled(no_active_document || !has_selected_layers), + ], + vec![ + MenuListEntry::new("Reverse") + .label("Reverse") + .icon("StackReverse") + .on_commit(|_| DocumentMessage::SelectedLayersReverse.into()) + .disabled(no_active_document || !has_selected_layers), + ], + ]), + MenuListEntry::new("Align") + .label("Align") + .icon("AlignVerticalCenter") + .disabled(no_active_document || !has_selected_layers) + .children(vec![ + vec![ + MenuListEntry::new("Align Left") + .label("Align Left") + .icon("AlignLeft") + .on_commit(|_| { + DocumentMessage::AlignSelectedLayers { + axis: AlignAxis::X, + aggregate: AlignAggregate::Min, + } + .into() + }) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Align Horizontal Center") + .label("Align Horizontal Center") + .icon("AlignHorizontalCenter") + .on_commit(|_| { + DocumentMessage::AlignSelectedLayers { + axis: AlignAxis::X, + aggregate: AlignAggregate::Center, + } + .into() + }) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Align Right") + .label("Align Right") + .icon("AlignRight") + .on_commit(|_| { + DocumentMessage::AlignSelectedLayers { + axis: AlignAxis::X, + aggregate: AlignAggregate::Max, + } + .into() + }) + .disabled(no_active_document || !has_selected_layers), + ], + vec![ + MenuListEntry::new("Align Top") + .label("Align Top") + .icon("AlignTop") + .on_commit(|_| { + DocumentMessage::AlignSelectedLayers { + axis: AlignAxis::Y, + aggregate: AlignAggregate::Min, + } + .into() + }) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Align Vertical Center") + .label("Align Vertical Center") + .icon("AlignVerticalCenter") + .on_commit(|_| { + DocumentMessage::AlignSelectedLayers { + axis: AlignAxis::Y, + aggregate: AlignAggregate::Center, + } + .into() + }) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Align Bottom") + .label("Align Bottom") + .icon("AlignBottom") + .on_commit(|_| { + DocumentMessage::AlignSelectedLayers { + axis: AlignAxis::Y, + aggregate: AlignAggregate::Max, + } + .into() + }) + .disabled(no_active_document || !has_selected_layers), + ], + ]), + MenuListEntry::new("Flip") + .label("Flip") + .icon("FlipVertical") + .disabled(no_active_document || !has_selected_layers) + .children(vec![vec![ + MenuListEntry::new("Flip Horizontal") + .label("Flip Horizontal") + .icon("FlipHorizontal") + .on_commit(|_| DocumentMessage::FlipSelectedLayers { flip_axis: FlipAxis::X }.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Flip Vertical") + .label("Flip Vertical") + .icon("FlipVertical") + .on_commit(|_| DocumentMessage::FlipSelectedLayers { flip_axis: FlipAxis::Y }.into()) + .disabled(no_active_document || !has_selected_layers), + ]]), + MenuListEntry::new("Turn") + .label("Turn") + .icon("TurnPositive90") + .disabled(no_active_document || !has_selected_layers) + .children(vec![vec![ + MenuListEntry::new("Turn -90ยฐ") + .label("Turn -90ยฐ") + .icon("TurnNegative90") + .on_commit(|_| DocumentMessage::RotateSelectedLayers { degrees: -90. }.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Turn 90ยฐ") + .label("Turn 90ยฐ") + .icon("TurnPositive90") + .on_commit(|_| DocumentMessage::RotateSelectedLayers { degrees: 90. }.into()) + .disabled(no_active_document || !has_selected_layers), + ]]), + MenuListEntry::new("Boolean") + .label("Boolean") + .icon("BooleanSubtractFront") + .disabled(no_active_document || !has_selected_layers) + .children(vec![vec![ + MenuListEntry::new("Union") + .label("Union") + .icon("BooleanUnion") + .on_commit(|_| { + let group_folder_type = GroupFolderType::BooleanOperation(BooleanOperation::Union); + DocumentMessage::GroupSelectedLayers { group_folder_type }.into() + }) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Subtract Front") + .label("Subtract Front") + .icon("BooleanSubtractFront") + .on_commit(|_| { + let group_folder_type = GroupFolderType::BooleanOperation(BooleanOperation::SubtractFront); + DocumentMessage::GroupSelectedLayers { group_folder_type }.into() + }) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Subtract Back") + .label("Subtract Back") + .icon("BooleanSubtractBack") + .on_commit(|_| { + let group_folder_type = GroupFolderType::BooleanOperation(BooleanOperation::SubtractBack); + DocumentMessage::GroupSelectedLayers { group_folder_type }.into() + }) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Intersect") + .label("Intersect") + .icon("BooleanIntersect") + .on_commit(|_| { + let group_folder_type = GroupFolderType::BooleanOperation(BooleanOperation::Intersect); + DocumentMessage::GroupSelectedLayers { group_folder_type }.into() + }) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Difference") + .label("Difference") + .icon("BooleanDifference") + .on_commit(|_| { + let group_folder_type = GroupFolderType::BooleanOperation(BooleanOperation::Difference); + DocumentMessage::GroupSelectedLayers { group_folder_type }.into() + }) + .disabled(no_active_document || !has_selected_layers), + ]]), + ], + vec![ + MenuListEntry::new("Make Path Editable") + .label("Make Path Editable") + .icon("NodeShape") + .on_commit(|_| NodeGraphMessage::AddPathNode.into()) + .disabled(!make_path_editable_is_allowed), + ], + ]) + .widget_instance(), + TextButton::new("Select") + .label("Select") + .flush(true) + .menu_list_children(vec![ + vec![ + MenuListEntry::new("Select All") + .label("Select All") + .icon("SelectAll") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::SelectAllLayers)) + .on_commit(|_| DocumentMessage::SelectAllLayers.into()) + .disabled(no_active_document), + MenuListEntry::new("Deselect All") + .label("Deselect All") + .icon("DeselectAll") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::DeselectAllLayers)) + .on_commit(|_| DocumentMessage::DeselectAllLayers.into()) + .disabled(no_active_document || !has_selected_nodes), + MenuListEntry::new("Select Parent") + .label("Select Parent") + .icon("SelectParent") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::SelectParentLayer)) + .on_commit(|_| DocumentMessage::SelectParentLayer.into()) + .disabled(no_active_document || !has_selected_nodes), + ], + vec![ + MenuListEntry::new("Previous Selection") + .label("Previous Selection") + .icon("HistoryUndo") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::SelectionStepBack)) + .on_commit(|_| DocumentMessage::SelectionStepBack.into()) + .disabled(!has_selection_history.0), + MenuListEntry::new("Next Selection") + .label("Next Selection") + .icon("HistoryRedo") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::SelectionStepForward)) + .on_commit(|_| DocumentMessage::SelectionStepForward.into()) + .disabled(!has_selection_history.1), + ], + ]) + .widget_instance(), + TextButton::new("View") + .label("View") + .flush(true) + .menu_list_children(vec![ + vec![ + MenuListEntry::new("Tilt") + .label("Tilt") + .icon("Tilt") + .tooltip_shortcut(action_shortcut!(NavigationMessageDiscriminant::BeginCanvasTilt)) + .on_commit(|_| NavigationMessage::BeginCanvasTilt { was_dispatched_from_menu: true }.into()) + .disabled(no_active_document || node_graph_open), + MenuListEntry::new("Reset Tilt") + .label("Reset Tilt") + .icon("TiltReset") + .tooltip_shortcut(action_shortcut!(NavigationMessageDiscriminant::CanvasTiltSet)) + .on_commit(|_| NavigationMessage::CanvasTiltSet { angle_radians: 0.into() }.into()) + .disabled(no_active_document || node_graph_open || !self.canvas_tilted), + ], + vec![ + MenuListEntry::new("Zoom In") + .label("Zoom In") + .icon("ZoomIn") + .tooltip_shortcut(action_shortcut!(NavigationMessageDiscriminant::CanvasZoomIncrease)) + .on_commit(|_| NavigationMessage::CanvasZoomIncrease { center_on_mouse: false }.into()) + .disabled(no_active_document), + MenuListEntry::new("Zoom Out") + .label("Zoom Out") + .icon("ZoomOut") + .tooltip_shortcut(action_shortcut!(NavigationMessageDiscriminant::CanvasZoomDecrease)) + .on_commit(|_| NavigationMessage::CanvasZoomDecrease { center_on_mouse: false }.into()) + .disabled(no_active_document), + MenuListEntry::new("Zoom to Selection") + .label("Zoom to Selection") + .icon("FrameSelected") + .tooltip_shortcut(action_shortcut!(NavigationMessageDiscriminant::FitViewportToSelection)) + .on_commit(|_| NavigationMessage::FitViewportToSelection.into()) + .disabled(no_active_document || !has_selected_layers), + MenuListEntry::new("Zoom to Fit") + .label("Zoom to Fit") + .icon("FrameAll") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::ZoomCanvasToFitAll)) + .on_commit(|_| DocumentMessage::ZoomCanvasToFitAll.into()) + .disabled(no_active_document), + MenuListEntry::new("Zoom to 100%") + .label("Zoom to 100%") + .icon("Zoom1x") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::ZoomCanvasTo100Percent)) + .on_commit(|_| DocumentMessage::ZoomCanvasTo100Percent.into()) + .disabled(no_active_document), + MenuListEntry::new("Zoom to 200%") + .label("Zoom to 200%") + .icon("Zoom2x") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::ZoomCanvasTo200Percent)) + .on_commit(|_| DocumentMessage::ZoomCanvasTo200Percent.into()) + .disabled(no_active_document), + ], + vec![ + MenuListEntry::new("Flip") + .label("Flip") + .icon(if self.canvas_flipped { "CheckboxChecked" } else { "CheckboxUnchecked" }) + .tooltip_shortcut(action_shortcut!(NavigationMessageDiscriminant::CanvasFlip)) + .on_commit(|_| NavigationMessage::CanvasFlip.into()) + .disabled(no_active_document || node_graph_open), + ], + vec![ + MenuListEntry::new("Rulers") + .label("Rulers") + .icon(if self.rulers_visible { "CheckboxChecked" } else { "CheckboxUnchecked" }) + .tooltip_shortcut(action_shortcut!(PortfolioMessageDiscriminant::ToggleRulers)) + .on_commit(|_| PortfolioMessage::ToggleRulers.into()) + .disabled(no_active_document), + ], + ]) + .widget_instance(), + TextButton::new("Window") + .label("Window") + .flush(true) + .menu_list_children(vec![ + vec![ + MenuListEntry::new("Properties") + .label("Properties") + .icon(if self.properties_panel_open { "CheckboxChecked" } else { "CheckboxUnchecked" }) + .tooltip_shortcut(action_shortcut!(PortfolioMessageDiscriminant::TogglePropertiesPanelOpen)) + .on_commit(|_| PortfolioMessage::TogglePropertiesPanelOpen.into()), + MenuListEntry::new("Layers") + .label("Layers") + .icon(if self.layers_panel_open { "CheckboxChecked" } else { "CheckboxUnchecked" }) + .tooltip_shortcut(action_shortcut!(PortfolioMessageDiscriminant::ToggleLayersPanelOpen)) + .on_commit(|_| PortfolioMessage::ToggleLayersPanelOpen.into()), + ], + vec![ + MenuListEntry::new("Data") + .label("Data") + .icon(if self.data_panel_open { "CheckboxChecked" } else { "CheckboxUnchecked" }) + .tooltip_shortcut(action_shortcut!(PortfolioMessageDiscriminant::ToggleDataPanelOpen)) + .on_commit(|_| PortfolioMessage::ToggleDataPanelOpen.into()), + ], + ]) + .widget_instance(), + TextButton::new("Help") + .label("Help") + .flush(true) + .menu_list_children(vec![ + #[cfg(not(target_os = "macos"))] + vec![about], + vec![ + MenuListEntry::new("Donate to Graphite").label("Donate to Graphite").icon("Heart").on_commit(|_| { + FrontendMessage::TriggerVisitLink { + url: "https://graphite.art/donate/".into(), + } + .into() + }), + MenuListEntry::new("User Manual").label("User Manual").icon("UserManual").on_commit(|_| { + FrontendMessage::TriggerVisitLink { + url: "https://graphite.art/learn/".into(), + } + .into() + }), + MenuListEntry::new("Report a Bug").label("Report a Bug").icon("Bug").on_commit(|_| { + FrontendMessage::TriggerVisitLink { + url: "https://github.com/GraphiteEditor/Graphite/issues/new".into(), + } + .into() + }), + MenuListEntry::new("Visit on GitHub").label("Visit on GitHub").icon("Website").on_commit(|_| { + FrontendMessage::TriggerVisitLink { + url: "https://github.com/GraphiteEditor/Graphite".into(), + } + .into() + }), + ], + vec![MenuListEntry::new("Developer Debug").label("Developer Debug").icon("Code").children(vec![ + vec![ + MenuListEntry::new("Reset Nodes to Definitions on Open") + .label("Reset Nodes to Definitions on Open") + .icon(if reset_node_definitions_on_open { "CheckboxChecked" } else { "CheckboxUnchecked" }) + .on_commit(|_| PortfolioMessage::ToggleResetNodesToDefinitionsOnOpen.into()), + ], + vec![ + MenuListEntry::new("Print Trace Logs") + .label("Print Trace Logs") + .icon(if log::max_level() == log::LevelFilter::Trace { "CheckboxChecked" } else { "CheckboxUnchecked" }) + .on_commit(|_| DebugMessage::ToggleTraceLogs.into()), + MenuListEntry::new("Print Messages: Off") + .label("Print Messages: Off") + .icon(if message_logging_verbosity_off { + #[cfg(not(target_os = "macos"))] + { + "SmallDot".to_string() + } + #[cfg(target_os = "macos")] + { + "CheckboxChecked".to_string() + } + } else { Default::default() }) + .tooltip_shortcut(action_shortcut!(DebugMessageDiscriminant::MessageOff)) + .on_commit(|_| DebugMessage::MessageOff.into()), + MenuListEntry::new("Print Messages: Only Names") + .label("Print Messages: Only Names") + .icon(if message_logging_verbosity_names { + #[cfg(not(target_os = "macos"))] + { + "SmallDot".to_string() + } + #[cfg(target_os = "macos")] + { + "CheckboxChecked".to_string() + } + } else { Default::default() }) + .tooltip_shortcut(action_shortcut!(DebugMessageDiscriminant::MessageNames)) + .on_commit(|_| DebugMessage::MessageNames.into()), + MenuListEntry::new("Print Messages: Full Contents") + .label("Print Messages: Full Contents") + .icon(if message_logging_verbosity_contents { + #[cfg(not(target_os = "macos"))] + { + "SmallDot".to_string() + } + #[cfg(target_os = "macos")] + { + "CheckboxChecked".to_string() + } + } else { Default::default() }) + .tooltip_shortcut(action_shortcut!(DebugMessageDiscriminant::MessageContents)) + .on_commit(|_| DebugMessage::MessageContents.into()), + ], + vec![MenuListEntry::new("Trigger a Crash").label("Trigger a Crash").icon("Warning").on_commit(|_| panic!())], + ])], + ]) + .widget_instance(), + ]; + + Layout(vec![LayoutGroup::Row { widgets: menu_bar_buttons }]) + } +} diff --git a/editor/src/messages/portfolio/menu_bar/mod.rs b/editor/src/messages/menu_bar/mod.rs similarity index 100% rename from editor/src/messages/portfolio/menu_bar/mod.rs rename to editor/src/messages/menu_bar/mod.rs diff --git a/editor/src/messages/message.rs b/editor/src/messages/message.rs index ee441f6bf..4b104495e 100644 --- a/editor/src/messages/message.rs +++ b/editor/src/messages/message.rs @@ -12,6 +12,8 @@ pub enum Message { #[child] Broadcast(BroadcastMessage), #[child] + Clipboard(ClipboardMessage), + #[child] Debug(DebugMessage), #[child] Defer(DeferMessage), @@ -28,19 +30,21 @@ pub enum Message { #[child] Layout(LayoutMessage), #[child] + MenuBar(MenuBarMessage), + #[child] Portfolio(PortfolioMessage), #[child] Preferences(PreferencesMessage), #[child] Tool(ToolMessage), #[child] - Workspace(WorkspaceMessage), + Viewport(ViewportMessage), // Messages - NoOp, Batched { messages: Box<[Message]>, }, + NoOp, } /// Provides an impl of `specta::Type` for `MessageDiscriminant`, the struct created by `impl_message`. @@ -71,14 +75,12 @@ mod test { fn print_tree_node(tree: &DebugMessageTree, prefix: &str, is_last: bool, file: &mut std::fs::File) { // Print the current node - let (branch, child_prefix) = if tree.has_message_handler_data_fields() || tree.has_message_handler_fields() { - ("โ”œโ”€โ”€ ", format!("{}โ”‚ ", prefix)) + let (branch, child_prefix) = if tree.message_handler_data_fields().is_some() || tree.message_handler_fields().is_some() { + ("โ”œโ”€โ”€ ", format!("{prefix}โ”‚ ")) + } else if is_last { + ("โ””โ”€โ”€ ", format!("{prefix} ")) } else { - if is_last { - ("โ””โ”€โ”€ ", format!("{} ", prefix)) - } else { - ("โ”œโ”€โ”€ ", format!("{}โ”‚ ", prefix)) - } + ("โ”œโ”€โ”€ ", format!("{prefix}โ”‚ ")) }; if tree.path().is_empty() { @@ -96,24 +98,38 @@ mod test { } } - // Print handler field if any - if let Some(data) = tree.message_handler_fields() { - let len = data.fields().len(); - let (branch, child_prefix) = if tree.has_message_handler_data_fields() { - ("โ”œโ”€โ”€ ", format!("{}โ”‚ ", prefix)) - } else { - ("โ””โ”€โ”€ ", format!("{} ", prefix)) - }; - if data.path().is_empty() { - file.write_all(format!("{}{}{}\n", prefix, branch, data.name()).as_bytes()).unwrap(); - } else { - file.write_all(format!("{}{}{} `{}`\n", prefix, branch, data.name(), data.path()).as_bytes()).unwrap(); - } - for (i, field) in data.fields().iter().enumerate() { + // Print message field if any + if let Some(fields) = tree.fields() { + let len = fields.len(); + for (i, field) in fields.iter().enumerate() { let is_last_field = i == len - 1; let branch = if is_last_field { "โ””โ”€โ”€ " } else { "โ”œโ”€โ”€ " }; - file.write_all(format!("{}{}{}\n", child_prefix, branch, field.0).as_bytes()).unwrap(); + file.write_all(format!("{child_prefix}{branch}{field}\n").as_bytes()).unwrap(); + } + } + + // Print handler field if any + if let Some(data) = tree.message_handler_fields() { + let len = data.fields().len(); + let (branch, child_prefix) = if tree.message_handler_data_fields().is_some() { + ("โ”œโ”€โ”€ ", format!("{prefix}โ”‚ ")) + } else { + ("โ””โ”€โ”€ ", format!("{prefix} ")) + }; + + const FRONTEND_MESSAGE_STR: &str = "FrontendMessage"; + if data.name().is_empty() && tree.name() != FRONTEND_MESSAGE_STR { + panic!("{}'s MessageHandler is missing #[message_handler_data]", tree.name()); + } else if tree.name() != FRONTEND_MESSAGE_STR { + file.write_all(format!("{}{}{} `{}`\n", prefix, branch, data.name(), data.path()).as_bytes()).unwrap(); + + for (i, field) in data.fields().iter().enumerate() { + let is_last_field = i == len - 1; + let branch = if is_last_field { "โ””โ”€โ”€ " } else { "โ”œโ”€โ”€ " }; + + file.write_all(format!("{}{}{}\n", child_prefix, branch, field.0).as_bytes()).unwrap(); + } } } diff --git a/editor/src/messages/mod.rs b/editor/src/messages/mod.rs index 407864c4c..7edfea806 100644 --- a/editor/src/messages/mod.rs +++ b/editor/src/messages/mod.rs @@ -3,6 +3,7 @@ pub mod animation; pub mod app_window; pub mod broadcast; +pub mod clipboard; pub mod debug; pub mod defer; pub mod dialog; @@ -11,9 +12,10 @@ pub mod globals; pub mod input_mapper; pub mod input_preprocessor; pub mod layout; +pub mod menu_bar; pub mod message; pub mod portfolio; pub mod preferences; pub mod prelude; pub mod tool; -pub mod workspace; +pub mod viewport; diff --git a/editor/src/messages/portfolio/spreadsheet/spreadsheet_message.rs b/editor/src/messages/portfolio/document/data_panel/data_panel_message.rs similarity index 62% rename from editor/src/messages/portfolio/spreadsheet/spreadsheet_message.rs rename to editor/src/messages/portfolio/document/data_panel/data_panel_message.rs index 1af04ab60..a9067c849 100644 --- a/editor/src/messages/portfolio/spreadsheet/spreadsheet_message.rs +++ b/editor/src/messages/portfolio/document/data_panel/data_panel_message.rs @@ -1,16 +1,15 @@ use crate::messages::prelude::*; use crate::node_graph_executor::InspectResult; -/// The spreadsheet UI allows for graph data to be previewed. -#[impl_message(Message, PortfolioMessage, Spreadsheet)] +/// The Data panel UI allows the user to visualize the output data of the selected node. +#[impl_message(Message, DocumentMessage, DataPanel)] #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] -pub enum SpreadsheetMessage { - ToggleOpen, - +pub enum DataPanelMessage { UpdateLayout { #[serde(skip)] inspect_result: InspectResult, }, + ClearLayout, PushToElementPath { index: usize, @@ -19,14 +18,15 @@ pub enum SpreadsheetMessage { len: usize, }, - ViewVectorDomain { - domain: VectorDomain, + ViewVectorTableTab { + tab: VectorTableTab, }, } #[derive(PartialEq, Eq, Clone, Copy, Default, Debug, serde::Serialize, serde::Deserialize)] -pub enum VectorDomain { +pub enum VectorTableTab { #[default] + Properties, Points, Segments, Regions, diff --git a/editor/src/messages/portfolio/document/data_panel/data_panel_message_handler.rs b/editor/src/messages/portfolio/document/data_panel/data_panel_message_handler.rs new file mode 100644 index 000000000..004b3cc48 --- /dev/null +++ b/editor/src/messages/portfolio/document/data_panel/data_panel_message_handler.rs @@ -0,0 +1,736 @@ +use super::VectorTableTab; +use crate::messages::layout::utility_types::layout_widget::{Layout, LayoutGroup, LayoutTarget}; +use crate::messages::portfolio::document::data_panel::DataPanelMessage; +use crate::messages::portfolio::document::utility_types::network_interface::NodeNetworkInterface; +use crate::messages::prelude::*; +use crate::messages::tool::tool_messages::tool_prelude::*; +use glam::{Affine2, Vec2}; +use graph_craft::document::NodeId; +use graphene_std::Color; +use graphene_std::Context; +use graphene_std::gradient::GradientStops; +use graphene_std::memo::IORecord; +use graphene_std::raster_types::{CPU, GPU, Raster}; +use graphene_std::table::Table; +use graphene_std::vector::Vector; +use graphene_std::vector::style::{Fill, FillChoice}; +use graphene_std::{Artboard, Graphic}; +use std::any::Any; +use std::sync::Arc; + +#[derive(ExtractField)] +pub struct DataPanelMessageContext<'a> { + pub network_interface: &'a mut NodeNetworkInterface, + pub data_panel_open: bool, +} + +/// The data panel allows for graph data to be previewed. +#[derive(Default, Debug, Clone, ExtractField)] +pub struct DataPanelMessageHandler { + introspected_node: Option, + introspected_data: Option>, + element_path: Vec, + active_vector_table_tab: VectorTableTab, +} + +#[message_handler_data] +impl MessageHandler> for DataPanelMessageHandler { + fn process_message(&mut self, message: DataPanelMessage, responses: &mut VecDeque, context: DataPanelMessageContext) { + match message { + DataPanelMessage::UpdateLayout { mut inspect_result } => { + self.introspected_node = Some(inspect_result.inspect_node); + self.introspected_data = inspect_result.take_data(); + self.update_layout(responses, context); + } + DataPanelMessage::ClearLayout => { + self.introspected_node = None; + self.introspected_data = None; + self.element_path.clear(); + self.active_vector_table_tab = VectorTableTab::default(); + self.update_layout(responses, context); + } + + DataPanelMessage::PushToElementPath { index } => { + self.element_path.push(index); + self.update_layout(responses, context); + } + DataPanelMessage::TruncateElementPath { len } => { + self.element_path.truncate(len); + self.update_layout(responses, context); + } + + DataPanelMessage::ViewVectorTableTab { tab } => { + self.active_vector_table_tab = tab; + self.update_layout(responses, context); + } + } + } + + fn actions(&self) -> ActionList { + actions!(DataPanelMessage;) + } +} + +impl DataPanelMessageHandler { + fn update_layout(&mut self, responses: &mut VecDeque, context: DataPanelMessageContext<'_>) { + let DataPanelMessageContext { network_interface, .. } = context; + + let mut layout_data = LayoutData { + current_depth: 0, + desired_path: &mut self.element_path, + breadcrumbs: Vec::new(), + vector_table_tab: self.active_vector_table_tab, + }; + + // Main data visualization + let mut layout = Layout( + self.introspected_data + .as_ref() + .map(|instrospected_data| generate_layout(instrospected_data, &mut layout_data).unwrap_or_else(|| label("Visualization of this data type is not yet supported"))) + .unwrap_or_default(), + ); + + let mut widgets = Vec::new(); + + // Selected layer/node name + if let Some(node_id) = self.introspected_node { + let is_layer = network_interface.is_layer(&node_id, &[]); + + widgets.extend([ + if is_layer { + IconLabel::new("Layer").tooltip_description("Name of the selected layer.").widget_instance() + } else { + IconLabel::new("Node").tooltip_description("Name of the selected node.").widget_instance() + }, + Separator::new(SeparatorType::Related).widget_instance(), + TextInput::new(network_interface.display_name(&node_id, &[])) + .tooltip_description(if is_layer { "Name of the selected layer." } else { "Name of the selected node." }) + .on_update(move |text_input| { + NodeGraphMessage::SetDisplayName { + node_id, + alias: text_input.value.clone(), + skip_adding_history_step: false, + } + .into() + }) + .max_width(200) + .widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + ]); + } + + // Element path breadcrumbs + if !layout_data.breadcrumbs.is_empty() { + let breadcrumb = BreadcrumbTrailButtons::new(layout_data.breadcrumbs) + .on_update(|&len| DataPanelMessage::TruncateElementPath { len: len as usize }.into()) + .widget_instance(); + widgets.push(breadcrumb); + } + + if !widgets.is_empty() { + layout.0.insert(0, LayoutGroup::Row { widgets }); + } + + responses.add(LayoutMessage::SendLayout { + layout, + layout_target: LayoutTarget::DataPanel, + }); + } +} + +struct LayoutData<'a> { + current_depth: usize, + desired_path: &'a mut Vec, + breadcrumbs: Vec, + vector_table_tab: VectorTableTab, +} + +macro_rules! generate_layout_downcast { + ($introspected_data:expr, $data:expr, [ $($ty:ty),* $(,)? ]) => { + if false { None } + $( + else if let Some(io) = $introspected_data.downcast_ref::>() { + Some(io.output.layout_with_breadcrumb($data)) + } + )* + else { None } + } +} +// TODO: We simply try all these types sequentially. Find a better strategy. +fn generate_layout(introspected_data: &Arc, data: &mut LayoutData) -> Option> { + generate_layout_downcast!(introspected_data, data, [ + Table, + Table, + Table, + Table>, + Table>, + Table, + Table, + Vec, + f64, + u32, + u64, + bool, + String, + Option, + DVec2, + DAffine2, + ]) +} + +fn column_headings(value: &[&str]) -> Vec { + value.iter().map(|text| TextLabel::new(*text).widget_instance()).collect() +} + +fn label(x: impl Into) -> Vec { + let error = vec![TextLabel::new(x).widget_instance()]; + vec![LayoutGroup::Row { widgets: error }] +} + +trait TableRowLayout { + fn type_name() -> &'static str; + fn identifier(&self) -> String; + fn layout_with_breadcrumb(&self, data: &mut LayoutData) -> Vec { + data.breadcrumbs.push(self.identifier()); + self.element_page(data) + } + fn element_widget(&self, index: usize) -> WidgetInstance { + TextButton::new(self.identifier()) + .on_update(move |_| DataPanelMessage::PushToElementPath { index }.into()) + .narrow(true) + .widget_instance() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + vec![] + } +} + +impl TableRowLayout for Vec { + fn type_name() -> &'static str { + "Vec" + } + fn identifier(&self) -> String { + format!("Vec<{}> ({} element{})", T::type_name(), self.len(), if self.len() == 1 { "" } else { "s" }) + } + fn element_page(&self, data: &mut LayoutData) -> Vec { + if let Some(index) = data.desired_path.get(data.current_depth).copied() { + if let Some(row) = self.get(index) { + data.current_depth += 1; + let result = row.layout_with_breadcrumb(data); + data.current_depth -= 1; + return result; + } else { + warn!("Desired path truncated"); + data.desired_path.truncate(data.current_depth); + } + } + + let mut rows = self + .iter() + .enumerate() + .map(|(index, row)| vec![TextLabel::new(format!("{index}")).narrow(true).widget_instance(), row.element_widget(index)]) + .collect::>(); + + rows.insert(0, column_headings(&["", "element"])); + + vec![LayoutGroup::Table { rows, unstyled: false }] + } +} + +impl TableRowLayout for Table { + fn type_name() -> &'static str { + "Table" + } + fn identifier(&self) -> String { + format!("Table<{}> ({} element{})", T::type_name(), self.len(), if self.len() == 1 { "" } else { "s" }) + } + fn element_page(&self, data: &mut LayoutData) -> Vec { + if let Some(index) = data.desired_path.get(data.current_depth).copied() { + if let Some(row) = self.get(index) { + data.current_depth += 1; + let result = row.element.layout_with_breadcrumb(data); + data.current_depth -= 1; + return result; + } else { + warn!("Desired path truncated"); + data.desired_path.truncate(data.current_depth); + } + } + + let mut rows = self + .iter() + .enumerate() + .map(|(index, row)| { + vec![ + TextLabel::new(format!("{index}")).narrow(true).widget_instance(), + row.element.element_widget(index), + TextLabel::new(format_transform_matrix(row.transform)).narrow(true).widget_instance(), + TextLabel::new(format!("{}", row.alpha_blending)).narrow(true).widget_instance(), + TextLabel::new(row.source_node_id.map_or_else(|| "-".to_string(), |id| format!("{}", id.0))) + .narrow(true) + .widget_instance(), + ] + }) + .collect::>(); + + rows.insert(0, column_headings(&["", "element", "transform", "alpha_blending", "source_node_id"])); + + vec![LayoutGroup::Table { rows, unstyled: false }] + } +} + +impl TableRowLayout for Artboard { + fn type_name() -> &'static str { + "Artboard" + } + fn identifier(&self) -> String { + self.label.clone() + } + fn element_page(&self, data: &mut LayoutData) -> Vec { + self.content.element_page(data) + } +} + +impl TableRowLayout for Graphic { + fn type_name() -> &'static str { + "Graphic" + } + fn identifier(&self) -> String { + match self { + Self::Graphic(table) => table.identifier(), + Self::Vector(table) => table.identifier(), + Self::RasterCPU(table) => table.identifier(), + Self::RasterGPU(table) => table.identifier(), + Self::Color(table) => table.identifier(), + Self::Gradient(table) => table.identifier(), + } + } + // Don't put a breadcrumb for Graphic + fn layout_with_breadcrumb(&self, data: &mut LayoutData) -> Vec { + self.element_page(data) + } + fn element_page(&self, data: &mut LayoutData) -> Vec { + match self { + Self::Graphic(table) => table.layout_with_breadcrumb(data), + Self::Vector(table) => table.layout_with_breadcrumb(data), + Self::RasterCPU(table) => table.layout_with_breadcrumb(data), + Self::RasterGPU(table) => table.layout_with_breadcrumb(data), + Self::Color(table) => table.layout_with_breadcrumb(data), + Self::Gradient(table) => table.layout_with_breadcrumb(data), + } + } +} + +impl TableRowLayout for Vector { + fn type_name() -> &'static str { + "Vector" + } + fn identifier(&self) -> String { + format!( + "Vector ({} point{}, {} segment{})", + self.point_domain.ids().len(), + if self.point_domain.ids().len() == 1 { "" } else { "s" }, + self.segment_domain.ids().len(), + if self.segment_domain.ids().len() == 1 { "" } else { "s" } + ) + } + fn element_page(&self, data: &mut LayoutData) -> Vec { + let table_tab_entries = [VectorTableTab::Properties, VectorTableTab::Points, VectorTableTab::Segments, VectorTableTab::Regions] + .into_iter() + .map(|tab| { + RadioEntryData::new(format!("{tab:?}")) + .label(format!("{tab:?}")) + .on_update(move |_| DataPanelMessage::ViewVectorTableTab { tab }.into()) + }) + .collect(); + let table_tabs = vec![RadioInput::new(table_tab_entries).selected_index(Some(data.vector_table_tab as u32)).widget_instance()]; + + let mut table_rows = Vec::new(); + match data.vector_table_tab { + VectorTableTab::Properties => { + table_rows.push(column_headings(&["property", "value"])); + + match self.style.fill.clone() { + Fill::None => table_rows.push(vec![ + TextLabel::new("Fill").narrow(true).widget_instance(), + ColorInput::new(FillChoice::None).disabled(true).menu_direction(Some(MenuDirection::Top)).narrow(true).widget_instance(), + ]), + Fill::Solid(color) => table_rows.push(vec![ + TextLabel::new("Fill").narrow(true).widget_instance(), + ColorInput::new(FillChoice::Solid(color)) + .disabled(true) + .menu_direction(Some(MenuDirection::Top)) + .narrow(true) + .widget_instance(), + ]), + Fill::Gradient(gradient) => { + table_rows.push(vec![ + TextLabel::new("Fill").narrow(true).widget_instance(), + ColorInput::new(FillChoice::Gradient(gradient.stops)) + .disabled(true) + .menu_direction(Some(MenuDirection::Top)) + .narrow(true) + .widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Fill Gradient Type").narrow(true).widget_instance(), + TextLabel::new(gradient.gradient_type.to_string()).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Fill Gradient Start").narrow(true).widget_instance(), + TextLabel::new(format_dvec2(gradient.start)).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Fill Gradient End").narrow(true).widget_instance(), + TextLabel::new(format_dvec2(gradient.end)).narrow(true).widget_instance(), + ]); + } + } + + if let Some(stroke) = self.style.stroke.clone() { + let color = if let Some(color) = stroke.color { FillChoice::Solid(color) } else { FillChoice::None }; + table_rows.push(vec![ + TextLabel::new("Stroke").narrow(true).widget_instance(), + ColorInput::new(color).disabled(true).menu_direction(Some(MenuDirection::Top)).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Stroke Weight").narrow(true).widget_instance(), + TextLabel::new(format!("{} px", stroke.weight)).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Stroke Dash Lengths").narrow(true).widget_instance(), + TextLabel::new(if stroke.dash_lengths.is_empty() { + "-".to_string() + } else { + format!("[{}]", stroke.dash_lengths.iter().map(|x| format!("{x} px")).collect::>().join(", ")) + }) + .narrow(true) + .widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Stroke Dash Offset").narrow(true).widget_instance(), + TextLabel::new(format!("{}", stroke.dash_offset)).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Stroke Cap").narrow(true).widget_instance(), + TextLabel::new(stroke.cap.to_string()).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Stroke Join").narrow(true).widget_instance(), + TextLabel::new(stroke.join.to_string()).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Stroke Join Miter Limit").narrow(true).widget_instance(), + TextLabel::new(format!("{}", stroke.join_miter_limit)).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Stroke Align").narrow(true).widget_instance(), + TextLabel::new(stroke.align.to_string()).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Stroke Transform").narrow(true).widget_instance(), + TextLabel::new(format_transform_matrix(&stroke.transform)).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Stroke Non-Scaling").narrow(true).widget_instance(), + TextLabel::new((if stroke.non_scaling { "Yes" } else { "No" }).to_string()).narrow(true).widget_instance(), + ]); + table_rows.push(vec![ + TextLabel::new("Stroke Paint Order").narrow(true).widget_instance(), + TextLabel::new(stroke.paint_order.to_string()).narrow(true).widget_instance(), + ]); + } + + let colinear = self.colinear_manipulators.iter().map(|[a, b]| format!("[{a} / {b}]")).collect::>().join(", "); + let colinear = if colinear.is_empty() { "-".to_string() } else { colinear }; + table_rows.push(vec![ + TextLabel::new("Colinear Handle IDs").narrow(true).widget_instance(), + TextLabel::new(colinear).narrow(true).widget_instance(), + ]); + + table_rows.push(vec![ + TextLabel::new("Upstream Nested Layers").narrow(true).widget_instance(), + TextLabel::new(if self.upstream_data.is_some() { + "Yes (this preserves references to its upstream nested layers for editing by tools)" + } else { + "No (this doesn't preserve references to its upstream nested layers for editing by tools)" + }) + .narrow(true) + .widget_instance(), + ]); + } + VectorTableTab::Points => { + table_rows.push(column_headings(&["", "position"])); + table_rows.extend(self.point_domain.iter().map(|(id, position)| { + vec![ + TextLabel::new(format!("{}", id.inner())).narrow(true).widget_instance(), + TextLabel::new(format!("{position}")).narrow(true).widget_instance(), + ] + })); + } + VectorTableTab::Segments => { + table_rows.push(column_headings(&["", "start_index", "end_index", "handles"])); + table_rows.extend(self.segment_domain.iter().map(|(id, start, end, handles)| { + vec![ + TextLabel::new(format!("{}", id.inner())).narrow(true).widget_instance(), + TextLabel::new(format!("{start}")).narrow(true).widget_instance(), + TextLabel::new(format!("{end}")).narrow(true).widget_instance(), + TextLabel::new(format!("{handles:?}")).narrow(true).widget_instance(), + ] + })); + } + VectorTableTab::Regions => { + table_rows.push(column_headings(&["", "segment_range", "fill"])); + table_rows.extend(self.region_domain.iter().map(|(id, segment_range, fill)| { + vec![ + TextLabel::new(format!("{}", id.inner())).narrow(true).widget_instance(), + TextLabel::new(format!("{segment_range:?}")).narrow(true).widget_instance(), + TextLabel::new(format!("{}", fill.inner())).narrow(true).widget_instance(), + ] + })); + } + } + + vec![LayoutGroup::Row { widgets: table_tabs }, LayoutGroup::Table { rows: table_rows, unstyled: false }] + } +} + +impl TableRowLayout for Raster { + fn type_name() -> &'static str { + "Raster" + } + fn identifier(&self) -> String { + format!("Raster ({}x{})", self.width, self.height) + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let raster = self.data(); + + if raster.width == 0 || raster.height == 0 { + let widgets = vec![TextLabel::new("Image has no area").widget_instance()]; + return vec![LayoutGroup::Row { widgets }]; + } + + let base64_string = raster.base64_string.clone().unwrap_or_else(|| { + use base64::Engine; + + let output = raster.to_png(); + let preamble = "data:image/png;base64,"; + let mut base64_string = String::with_capacity(preamble.len() + output.len() * 4); + base64_string.push_str(preamble); + base64::engine::general_purpose::STANDARD.encode_string(output, &mut base64_string); + base64_string + }); + + let widgets = vec![ImageLabel::new(base64_string).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for Raster { + fn type_name() -> &'static str { + "Raster" + } + fn identifier(&self) -> String { + format!("Raster ({}x{})", self.data().width(), self.data().height()) + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![TextLabel::new("Raster is a texture on the GPU and cannot currently be displayed here").widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for Color { + fn type_name() -> &'static str { + "Color" + } + fn identifier(&self) -> String { + format!("Color (#{})", self.to_gamma_srgb().to_rgba_hex_srgb()) + } + fn element_widget(&self, _index: usize) -> WidgetInstance { + ColorInput::new(FillChoice::Solid(*self)) + .disabled(true) + .menu_direction(Some(MenuDirection::Top)) + .narrow(true) + .widget_instance() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![self.element_widget(0)]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for GradientStops { + fn type_name() -> &'static str { + "Gradient" + } + fn identifier(&self) -> String { + format!("Gradient ({} stops)", self.0.len()) + } + fn element_widget(&self, _index: usize) -> WidgetInstance { + ColorInput::new(FillChoice::Gradient(self.clone())) + .menu_direction(Some(MenuDirection::Top)) + .disabled(true) + .narrow(true) + .widget_instance() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![self.element_widget(0)]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for f64 { + fn type_name() -> &'static str { + "Number (f64)" + } + fn identifier(&self) -> String { + "Number (f64)".to_string() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![TextLabel::new(self.to_string()).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for u32 { + fn type_name() -> &'static str { + "Number (u32)" + } + fn identifier(&self) -> String { + "Number (u32)".to_string() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![TextLabel::new(self.to_string()).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for u64 { + fn type_name() -> &'static str { + "Number (u64)" + } + fn identifier(&self) -> String { + "Number (u64)".to_string() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![TextLabel::new(self.to_string()).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for bool { + fn type_name() -> &'static str { + "Bool" + } + fn identifier(&self) -> String { + "Bool".to_string() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![TextLabel::new(self.to_string()).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for String { + fn type_name() -> &'static str { + "String" + } + fn identifier(&self) -> String { + // Show the first line, and if there are more, indicate that with an ellipsis + let first_line = self.lines().next().unwrap_or(""); + if self.lines().count() > 1 { + format!("\"{} โ€ฆ\"", first_line) + } else { + format!("\"{}\"", first_line) + } + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![TextAreaInput::new(self.to_string()).disabled(true).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for Option { + fn type_name() -> &'static str { + "Option" + } + fn identifier(&self) -> String { + "Option".to_string() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![TextLabel::new(format!("{self:?}")).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for DVec2 { + fn type_name() -> &'static str { + "Vec2" + } + fn identifier(&self) -> String { + "Vec2".to_string() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![TextLabel::new(format!("({}, {})", self.x, self.y)).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for Vec2 { + fn type_name() -> &'static str { + "Vec2" + } + fn identifier(&self) -> String { + "Vec2".to_string() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![TextLabel::new(format!("({}, {})", self.x, self.y)).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for DAffine2 { + fn type_name() -> &'static str { + "Transform" + } + fn identifier(&self) -> String { + "Transform".to_string() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let widgets = vec![TextLabel::new(format_transform_matrix(self)).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +impl TableRowLayout for Affine2 { + fn type_name() -> &'static str { + "Transform" + } + fn identifier(&self) -> String { + "Transform".to_string() + } + fn element_page(&self, _data: &mut LayoutData) -> Vec { + let matrix = DAffine2::from_cols_array(&self.to_cols_array().map(|x| x as f64)); + let widgets = vec![TextLabel::new(format_transform_matrix(&matrix)).widget_instance()]; + vec![LayoutGroup::Row { widgets }] + } +} + +fn format_transform_matrix(transform: &DAffine2) -> String { + let (scale, angle, translation) = transform.to_scale_angle_translation(); + let rotation = if angle == -0. { 0. } else { angle.to_degrees() }; + let round = |x: f64| (x * 1e3).round() / 1e3; + + format!( + "Location: ({} px, {} px) โ€” Rotation: {rotation:2}ยฐ โ€” Scale: ({}x, {}x)", + round(translation.x), + round(translation.y), + round(scale.x), + round(scale.y) + ) +} + +fn format_dvec2(value: DVec2) -> String { + let round = |x: f64| (x * 1e3).round() / 1e3; + format!("({} px, {} px)", round(value.x), round(value.y)) +} diff --git a/editor/src/messages/portfolio/document/data_panel/mod.rs b/editor/src/messages/portfolio/document/data_panel/mod.rs new file mode 100644 index 000000000..d1a28217e --- /dev/null +++ b/editor/src/messages/portfolio/document/data_panel/mod.rs @@ -0,0 +1,7 @@ +mod data_panel_message; +mod data_panel_message_handler; + +#[doc(inline)] +pub use data_panel_message::*; +#[doc(inline)] +pub use data_panel_message_handler::*; diff --git a/editor/src/messages/portfolio/document/document_message.rs b/editor/src/messages/portfolio/document/document_message.rs index 89db87c98..b6bc9b63a 100644 --- a/editor/src/messages/portfolio/document/document_message.rs +++ b/editor/src/messages/portfolio/document/document_message.rs @@ -2,8 +2,8 @@ use std::path::PathBuf; use super::utility_types::misc::{GroupFolderType, SnappingState}; use crate::messages::input_mapper::utility_types::input_keyboard::Key; -use crate::messages::portfolio::document::overlays::utility_types::OverlayContext; -use crate::messages::portfolio::document::overlays::utility_types::OverlaysType; +use crate::messages::portfolio::document::data_panel::DataPanelMessage; +use crate::messages::portfolio::document::overlays::utility_types::{OverlayContext, OverlaysType}; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::misc::{AlignAggregate, AlignAxis, FlipAxis, GridSnapping}; use crate::messages::portfolio::utility_types::PanelType; @@ -15,7 +15,7 @@ use graphene_std::raster::BlendMode; use graphene_std::raster::Image; use graphene_std::transform::Footprint; use graphene_std::vector::click_target::ClickTarget; -use graphene_std::vector::style::ViewMode; +use graphene_std::vector::style::RenderMode; #[impl_message(Message, PortfolioMessage, Document)] #[derive(derivative::Derivative, Clone, serde::Serialize, serde::Deserialize)] @@ -33,6 +33,8 @@ pub enum DocumentMessage { Overlays(OverlaysMessage), #[child] PropertiesPanel(PropertiesPanelMessage), + #[child] + DataPanel(DataPanelMessage), // Messages AlignSelectedLayers { @@ -50,7 +52,9 @@ pub enum DocumentMessage { DocumentHistoryBackward, DocumentHistoryForward, DocumentStructureChanged, - DrawArtboardOverlays(OverlayContext), + DrawArtboardOverlays { + context: OverlayContext, + }, DuplicateSelectedLayers, EnterNestedNetwork { node_id: NodeId, @@ -69,9 +73,15 @@ pub enum DocumentMessage { open: bool, }, GraphViewOverlayToggle, - GridOptions(GridSnapping), - GridOverlays(OverlayContext), - GridVisibility(bool), + GridOptions { + options: GridSnapping, + }, + GridOverlays { + context: OverlayContext, + }, + GridVisibility { + visible: bool, + }, GroupSelectedLayers { group_folder_type: GroupFolderType, }, @@ -107,9 +117,11 @@ pub enum DocumentMessage { RenderRulers, RenderScrollbars, SaveDocument, + SaveDocumentAs, SavedDocument { path: Option, }, + MarkAsSaved, SelectParentLayer, SelectAllLayers, SelectedLayersLower, @@ -164,13 +176,14 @@ pub enum DocumentMessage { node_id: NodeId, is_layer: bool, }, - SetViewMode { - view_mode: ViewMode, + SetRenderMode { + render_mode: RenderMode, }, AddTransaction, StartTransaction, EndTransaction, CommitTransaction, + CancelTransaction, AbortTransaction, RepeatedAbortTransaction { undo_count: usize, diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index 5bfa0af7d..a0b7332c2 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -1,31 +1,31 @@ use super::node_graph::document_node_definitions; use super::node_graph::utility_types::Transform; -use super::overlays::utility_types::Pivot; use super::utility_types::error::EditorError; use super::utility_types::misc::{GroupFolderType, SNAP_FUNCTIONS_FOR_BOUNDING_BOXES, SNAP_FUNCTIONS_FOR_PATHS, SnappingOptions, SnappingState}; use super::utility_types::network_interface::{self, NodeNetworkInterface, TransactionStatus}; use super::utility_types::nodes::{CollapsedLayers, SelectedNodes}; use crate::application::{GRAPHITE_GIT_COMMIT_HASH, generate_uuid}; -use crate::consts::{ASYMPTOTIC_EFFECT, COLOR_OVERLAY_GRAY, DEFAULT_DOCUMENT_NAME, FILE_SAVE_SUFFIX, SCALE_EFFECT, SCROLLBAR_SPACING, VIEWPORT_ROTATE_SNAP_INTERVAL}; -use crate::messages::input_mapper::utility_types::macros::action_keys; +use crate::consts::{ASYMPTOTIC_EFFECT, COLOR_OVERLAY_GRAY, DEFAULT_DOCUMENT_NAME, FILE_EXTENSION, SCALE_EFFECT, SCROLLBAR_SPACING, VIEWPORT_ROTATE_SNAP_INTERVAL}; +use crate::messages::input_mapper::utility_types::macros::action_shortcut; use crate::messages::layout::utility_types::widget_prelude::*; +use crate::messages::portfolio::document::data_panel::{DataPanelMessageContext, DataPanelMessageHandler}; use crate::messages::portfolio::document::graph_operation::utility_types::TransformIn; use crate::messages::portfolio::document::node_graph::NodeGraphMessageContext; +use crate::messages::portfolio::document::node_graph::utility_types::FrontendGraphDataType; use crate::messages::portfolio::document::overlays::grid_overlays::{grid_overlay, overlay_options}; -use crate::messages::portfolio::document::overlays::utility_types::{OverlaysType, OverlaysVisibilitySettings}; +use crate::messages::portfolio::document::overlays::utility_types::{OverlaysType, OverlaysVisibilitySettings, Pivot}; use crate::messages::portfolio::document::properties_panel::properties_panel_message_handler::PropertiesPanelMessageContext; use crate::messages::portfolio::document::utility_types::document_metadata::{DocumentMetadata, LayerNodeIdentifier}; -use crate::messages::portfolio::document::utility_types::misc::{AlignAggregate, AlignAxis, DocumentMode, FlipAxis, PTZ}; +use crate::messages::portfolio::document::utility_types::misc::{AlignAggregate, AlignAxis, FlipAxis, PTZ}; use crate::messages::portfolio::document::utility_types::network_interface::{FlowType, InputConnector, NodeTemplate}; use crate::messages::portfolio::document::utility_types::nodes::RawBuffer; -use crate::messages::portfolio::utility_types::PersistentData; +use crate::messages::portfolio::utility_types::{FontCatalog, PanelType, PersistentData}; use crate::messages::prelude::*; use crate::messages::tool::common_functionality::graph_modification_utils::{self, get_blend_mode, get_fill, get_opacity}; use crate::messages::tool::tool_messages::select_tool::SelectToolPointerKeys; use crate::messages::tool::tool_messages::tool_prelude::Key; use crate::messages::tool::utility_types::ToolType; use crate::node_graph_executor::NodeGraphExecutor; -use bezier_rs::Subpath; use glam::{DAffine2, DVec2, IVec2}; use graph_craft::document::value::TaggedValue; use graph_craft::document::{NodeId, NodeInput, NodeNetwork, OldNodeNetwork}; @@ -33,10 +33,14 @@ use graphene_std::math::quad::Quad; use graphene_std::path_bool::{boolean_intersect, path_bool_lib}; use graphene_std::raster::BlendMode; use graphene_std::raster_types::Raster; +use graphene_std::subpath::Subpath; use graphene_std::table::Table; +use graphene_std::text::Font; use graphene_std::vector::PointId; use graphene_std::vector::click_target::{ClickTarget, ClickTargetType}; -use graphene_std::vector::style::ViewMode; +use graphene_std::vector::misc::{dvec2_to_point, point_to_dvec2}; +use graphene_std::vector::style::RenderMode; +use kurbo::{Affine, CubicBez, Line, ParamCurve, PathSeg, QuadBez}; use std::path::PathBuf; use std::time::Duration; @@ -48,7 +52,10 @@ pub struct DocumentMessageContext<'a> { pub executor: &'a mut NodeGraphExecutor, pub current_tool: &'a ToolType, pub preferences: &'a PreferencesMessageHandler, - pub device_pixel_ratio: f64, + pub data_panel_open: bool, + pub layers_panel_open: bool, + pub properties_panel_open: bool, + pub viewport: &'a ViewportMessageHandler, } #[derive(Clone, Debug, serde::Serialize, serde::Deserialize, ExtractField)] @@ -63,9 +70,11 @@ pub struct DocumentMessageHandler { #[serde(skip)] pub node_graph_handler: NodeGraphMessageHandler, #[serde(skip)] - overlays_message_handler: OverlaysMessageHandler, + pub overlays_message_handler: OverlaysMessageHandler, #[serde(skip)] - properties_panel_message_handler: PropertiesPanelMessageHandler, + pub properties_panel_message_handler: PropertiesPanelMessageHandler, + #[serde(skip)] + pub data_panel_message_handler: DataPanelMessageHandler, // ============================================ // Fields that are saved in the document format @@ -76,18 +85,15 @@ pub struct DocumentMessageHandler { /// List of the [`LayerNodeIdentifier`]s that are currently collapsed by the user in the Layers panel. /// Collapsed means that the expansion arrow isn't set to show the children of these layers. pub collapsed: CollapsedLayers, - /// The name of the document, which is displayed in the tab and title bar of the editor. - pub name: String, /// The full Git commit hash of the Graphite repository that was used to build the editor. /// We save this to provide a hint about which version of the editor was used to create the document. pub commit_hash: String, /// The current pan, tilt, and zoom state of the viewport's view of the document canvas. pub document_ptz: PTZ, - /// The current mode that the document is in, which starts out as Design Mode. This choice affects the editing behavior of the tools. - pub document_mode: DocumentMode, - /// The current view mode that the user has set for rendering the document within the viewport. + /// The current mode that the user has set for rendering the document within the viewport. /// This is usually "Normal" but can be set to "Outline" or "Pixels" to see the canvas differently. - pub view_mode: ViewMode, + #[serde(alias = "view_mode")] + pub render_mode: RenderMode, /// Sets whether or not all the viewport overlays should be drawn on top of the artwork. /// This includes tool interaction visualizations (like the transform cage and path anchors/handles), the grid, and more. pub overlays_visibility_settings: OverlaysVisibilitySettings, @@ -104,6 +110,12 @@ pub struct DocumentMessageHandler { // Fields omitted from the saved document format // ============================================= // + /// The name of the document, which is displayed in the tab and title bar of the editor. + #[serde(skip)] + pub name: String, + /// The path of the to the document file. + #[serde(skip)] + pub(crate) path: Option, /// Path to network currently viewed in the node graph overlay. This will eventually be stored in each panel, so that multiple panels can refer to different networks #[serde(skip)] breadcrumb_network_path: Vec, @@ -116,9 +128,6 @@ pub struct DocumentMessageHandler { /// Stack of document network snapshots for future history states. #[serde(skip)] document_redo_history: VecDeque, - /// The path of the to the document file. - #[serde(skip)] - path: Option, /// Hash of the document snapshot that was most recently saved to disk by the user. #[serde(skip)] saved_hash: Option, @@ -144,16 +153,15 @@ impl Default for DocumentMessageHandler { node_graph_handler: NodeGraphMessageHandler::default(), overlays_message_handler: OverlaysMessageHandler::default(), properties_panel_message_handler: PropertiesPanelMessageHandler::default(), + data_panel_message_handler: DataPanelMessageHandler::default(), // ============================================ // Fields that are saved in the document format // ============================================ network_interface: default_document_network_interface(), collapsed: CollapsedLayers::default(), - name: DEFAULT_DOCUMENT_NAME.to_string(), commit_hash: GRAPHITE_GIT_COMMIT_HASH.to_string(), document_ptz: PTZ::default(), - document_mode: DocumentMode::DesignMode, - view_mode: ViewMode::default(), + render_mode: RenderMode::default(), overlays_visibility_settings: OverlaysVisibilitySettings::default(), rulers_visible: true, graph_view_overlay_open: false, @@ -162,11 +170,12 @@ impl Default for DocumentMessageHandler { // ============================================= // Fields omitted from the saved document format // ============================================= + name: DEFAULT_DOCUMENT_NAME.to_string(), + path: None, breadcrumb_network_path: Vec::new(), selection_network_path: Vec::new(), document_undo_history: VecDeque::new(), document_redo_history: VecDeque::new(), - path: None, saved_hash: None, auto_saved_hash: None, layer_range_selection_reference: None, @@ -183,9 +192,12 @@ impl MessageHandler> for DocumentMes ipp, persistent_data, executor, + viewport, current_tool, preferences, - device_pixel_ratio, + data_panel_open, + layers_panel_open, + properties_panel_open, } = context; match message { @@ -198,6 +210,7 @@ impl MessageHandler> for DocumentMes document_ptz: &mut self.document_ptz, graph_view_overlay_open: self.graph_view_overlay_open, preferences, + viewport, }; self.navigation_handler.process_message(message, responses, context); @@ -206,15 +219,8 @@ impl MessageHandler> for DocumentMes let visibility_settings = self.overlays_visibility_settings; // Send the overlays message to the overlays message handler - self.overlays_message_handler.process_message( - message, - responses, - OverlaysMessageContext { - visibility_settings, - ipp, - device_pixel_ratio, - }, - ); + self.overlays_message_handler + .process_message(message, responses, OverlaysMessageContext { visibility_settings, viewport }); } DocumentMessage::PropertiesPanel(message) => { let context = PropertiesPanelMessageContext { @@ -223,9 +229,20 @@ impl MessageHandler> for DocumentMes document_name: self.name.as_str(), executor, persistent_data, + properties_panel_open, }; self.properties_panel_message_handler.process_message(message, responses, context); } + DocumentMessage::DataPanel(message) => { + self.data_panel_message_handler.process_message( + message, + responses, + DataPanelMessageContext { + network_interface: &mut self.network_interface, + data_panel_open, + }, + ); + } DocumentMessage::NodeGraph(message) => { self.node_graph_handler.process_message( message, @@ -241,6 +258,8 @@ impl MessageHandler> for DocumentMes graph_fade_artwork_percentage: self.graph_fade_artwork_percentage, navigation_handler: &self.navigation_handler, preferences, + layers_panel_open, + viewport, }, ); } @@ -301,17 +320,17 @@ impl MessageHandler> for DocumentMes // Clear the control bar responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(Default::default()), + layout: Layout::default(), layout_target: LayoutTarget::LayersPanelControlLeftBar, }); responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(Default::default()), + layout: Layout::default(), layout_target: LayoutTarget::LayersPanelControlRightBar, }); // Clear the bottom bar responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(Default::default()), + layout: Layout::default(), layout_target: LayoutTarget::LayersPanelBottomBar, }); } @@ -353,17 +372,20 @@ impl MessageHandler> for DocumentMes responses.add(NodeGraphMessage::SelectedNodesSet { nodes: vec![] }); self.layer_range_selection_reference = None; } - DocumentMessage::DocumentHistoryBackward => self.undo_with_history(ipp, responses), - DocumentMessage::DocumentHistoryForward => self.redo_with_history(ipp, responses), + DocumentMessage::DocumentHistoryBackward => self.undo_with_history(viewport, responses), + DocumentMessage::DocumentHistoryForward => self.redo_with_history(viewport, responses), DocumentMessage::DocumentStructureChanged => { - self.update_layers_panel_control_bar_widgets(responses); - self.update_layers_panel_bottom_bar_widgets(responses); + if layers_panel_open { + self.network_interface.load_structure(); + let data_buffer: RawBuffer = self.serialize_root(); - self.network_interface.load_structure(); - let data_buffer: RawBuffer = self.serialize_root(); - responses.add(FrontendMessage::UpdateDocumentLayerStructure { data_buffer }); + self.update_layers_panel_control_bar_widgets(layers_panel_open, responses); + self.update_layers_panel_bottom_bar_widgets(layers_panel_open, responses); + + responses.add(FrontendMessage::UpdateDocumentLayerStructure { data_buffer }); + } } - DocumentMessage::DrawArtboardOverlays(overlay_context) => { + DocumentMessage::DrawArtboardOverlays { context: overlay_context } => { if !overlay_context.visibility_settings.artboard_name() { return; } @@ -448,25 +470,47 @@ impl MessageHandler> for DocumentMes responses.add(NodeGraphMessage::UnloadWires); responses.add(NodeGraphMessage::SendGraph); responses.add(DocumentMessage::ZoomCanvasToFitAll); - responses.add(NodeGraphMessage::SetGridAlignedEdges); + responses.add(NodeGraphMessage::UpdateNodeGraphWidth); } DocumentMessage::Escape => { + // Abort dragging nodes if self.node_graph_handler.drag_start.is_some() { responses.add(DocumentMessage::AbortTransaction); self.node_graph_handler.drag_start = None; - } else if self + } + // Abort box selection + else if self.node_graph_handler.box_selection_start.is_some() { + self.node_graph_handler.box_selection_start = None; + responses.add(NodeGraphMessage::SelectedNodesSet { + nodes: self.node_graph_handler.selection_before_pointer_down.clone(), + }); + responses.add(FrontendMessage::UpdateBox { box_selection: None }); + } + // Abort wire in progress of being connected + else if self.node_graph_handler.wire_in_progress_from_connector.is_some() { + self.node_graph_handler.wire_in_progress_from_connector = None; + self.node_graph_handler.wire_in_progress_to_connector = None; + self.node_graph_handler.wire_in_progress_type = FrontendGraphDataType::General; + + responses.add(FrontendMessage::UpdateWirePathInProgress { wire_path: None }); + responses.add(DocumentMessage::AbortTransaction); + } + // Close the context menu if it's open + else if self .node_graph_handler .context_menu .as_ref() .is_some_and(|context_menu| matches!(context_menu.context_menu_data, super::node_graph::utility_types::ContextMenuData::CreateNode { compatible_type: None })) { - // Close the context menu self.node_graph_handler.context_menu = None; responses.add(FrontendMessage::UpdateContextMenuInformation { context_menu_information: None }); - self.node_graph_handler.wire_in_progress_from_connector = None; - self.node_graph_handler.wire_in_progress_to_connector = None; - responses.add(FrontendMessage::UpdateWirePathInProgress { wire_path: None }); - } else { + } + // Exit one level up if inside a nested network + else if !self.breadcrumb_network_path.is_empty() { + responses.add(DocumentMessage::ExitNestedNetwork { steps_back: 1 }); + } + // Close the graph view overlay if it's open + else { responses.add(DocumentMessage::GraphViewOverlay { open: false }); } } @@ -478,7 +522,7 @@ impl MessageHandler> for DocumentMes responses.add(NodeGraphMessage::UnloadWires); responses.add(NodeGraphMessage::SendGraph); responses.add(DocumentMessage::PTZUpdate); - responses.add(NodeGraphMessage::SetGridAlignedEdges); + responses.add(NodeGraphMessage::UpdateNodeGraphWidth); } DocumentMessage::FlipSelectedLayers { flip_axis } => { let scale = match flip_axis { @@ -548,30 +592,31 @@ impl MessageHandler> for DocumentMes responses.add(ToolMessage::DeactivateTools); responses.add(OverlaysMessage::Draw); // Clear the overlays responses.add(NavigationMessage::CanvasTiltSet { angle_radians: 0. }); - responses.add(NodeGraphMessage::SetGridAlignedEdges); responses.add(NodeGraphMessage::UpdateGraphBarRight); responses.add(NodeGraphMessage::SendGraph); responses.add(NodeGraphMessage::UpdateHints); + responses.add(NodeGraphMessage::UpdateEdges); } else { responses.add(ToolMessage::ActivateTool { tool_type: *current_tool }); + responses.add(OverlaysMessage::Draw); // Redraw overlays when graph is closed } } DocumentMessage::GraphViewOverlayToggle => { responses.add(DocumentMessage::GraphViewOverlay { open: !self.graph_view_overlay_open }); } - DocumentMessage::GridOptions(grid) => { - self.snapping_state.grid = grid; + DocumentMessage::GridOptions { options } => { + self.snapping_state.grid = options; self.snapping_state.grid_snapping = true; responses.add(OverlaysMessage::Draw); responses.add(PortfolioMessage::UpdateDocumentWidgets); } - DocumentMessage::GridOverlays(mut overlay_context) => { + DocumentMessage::GridOverlays { context: mut overlay_context } => { if self.snapping_state.grid_snapping { grid_overlay(self, &mut overlay_context) } } - DocumentMessage::GridVisibility(enabled) => { - self.snapping_state.grid_snapping = enabled; + DocumentMessage::GridVisibility { visible } => { + self.snapping_state.grid_snapping = visible; responses.add(OverlaysMessage::Draw); } DocumentMessage::GroupSelectedLayers { group_folder_type } => { @@ -802,7 +847,7 @@ impl MessageHandler> for DocumentMes let scale = DAffine2::from_scale(enlargement_factor); let pivot = DAffine2::from_translation(pivot); let transformation = pivot * scale * pivot.inverse(); - let document_to_viewport = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz); + let document_to_viewport = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), &self.document_ptz); for layer in self.network_interface.shallowest_unique_layers(&[]).filter(|layer| can_move(*layer)) { let to = document_to_viewport.inverse() * self.metadata().downstream_transform_to_viewport(layer); @@ -827,10 +872,10 @@ impl MessageHandler> for DocumentMes let image_size = DVec2::new(image.width as f64, image.height as f64); // Align the layer with the mouse or center of viewport - let viewport_location = mouse.map_or(ipp.viewport_bounds.center() + ipp.viewport_bounds.top_left, |pos| pos.into()); + let viewport_location = mouse.map_or(viewport.center_in_viewport_space().into_dvec2() + viewport.offset().into_dvec2(), |pos| pos.into()); - let document_to_viewport = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz); - let center_in_viewport = DAffine2::from_translation(document_to_viewport.inverse().transform_point2(viewport_location - ipp.viewport_bounds.top_left)); + let document_to_viewport = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), &self.document_ptz); + let center_in_viewport = DAffine2::from_translation(document_to_viewport.inverse().transform_point2(viewport_location - viewport.offset().into_dvec2())); let center_in_viewport_layerspace = center_in_viewport; // Make layer the size of the image @@ -879,9 +924,9 @@ impl MessageHandler> for DocumentMes mouse, parent_and_insert_index, } => { - let document_to_viewport = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz); - let viewport_location = mouse.map_or(ipp.viewport_bounds.center() + ipp.viewport_bounds.top_left, |pos| pos.into()); - let center_in_viewport = DAffine2::from_translation(document_to_viewport.inverse().transform_point2(viewport_location - ipp.viewport_bounds.top_left)); + let document_to_viewport = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), &self.document_ptz); + let viewport_location = mouse.map_or(viewport.center_in_viewport_space().into_dvec2() + viewport.offset().into_dvec2(), |pos| pos.into()); + let center_in_viewport = DAffine2::from_translation(document_to_viewport.inverse().transform_point2(viewport_location - viewport.offset().into_dvec2())); let layer_node_id = NodeId::new(); let layer_id = LayerNodeIdentifier::new_unchecked(layer_node_id); @@ -918,7 +963,12 @@ impl MessageHandler> for DocumentMes responses.add(OverlaysMessage::Draw); } DocumentMessage::RenameDocument { new_name } => { - self.name = new_name; + self.name = new_name.clone(); + + self.path = None; + self.set_save_state(false); + self.set_auto_save_state(false); + responses.add(PortfolioMessage::UpdateOpenDocumentsList); responses.add(NodeGraphMessage::UpdateNewNodeGraph); } @@ -931,7 +981,7 @@ impl MessageHandler> for DocumentMes } else { &self.document_ptz }; - let document_to_viewport = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), current_ptz); + let document_to_viewport = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), current_ptz); let ruler_scale = if !self.graph_view_overlay_open { self.navigation_handler.snapped_zoom(current_ptz.zoom()) @@ -967,12 +1017,12 @@ impl MessageHandler> for DocumentMes }); } DocumentMessage::RenderScrollbars => { - let document_transform_scale = self.navigation_handler.snapped_zoom(self.document_ptz.zoom()); + let document_transform_scale = self.navigation_handler.snapped_zoom(self.document_ptz.zoom()) / viewport.scale(); let scale = 0.5 + ASYMPTOTIC_EFFECT + document_transform_scale * SCALE_EFFECT; - let viewport_size = ipp.viewport_bounds.size(); - let viewport_mid = ipp.viewport_bounds.center(); + let viewport_size = viewport.size().into_dvec2(); + let viewport_mid = viewport.center_in_viewport_space().into_dvec2(); let [bounds1, bounds2] = if !self.graph_view_overlay_open { self.metadata().document_bounds_viewport_space().unwrap_or([viewport_mid; 2]) } else { @@ -991,25 +1041,46 @@ impl MessageHandler> for DocumentMes multiplier: scrollbar_multiplier.into(), }); } - DocumentMessage::SaveDocument => { + DocumentMessage::SaveDocument | DocumentMessage::SaveDocumentAs => { + if let DocumentMessage::SaveDocumentAs = message { + self.path = None; + } + self.set_save_state(true); responses.add(PortfolioMessage::AutoSaveActiveDocument); // Update the save status of the just saved document responses.add(PortfolioMessage::UpdateOpenDocumentsList); - let name = match self.name.ends_with(FILE_SAVE_SUFFIX) { - true => self.name.clone(), - false => self.name.clone() + FILE_SAVE_SUFFIX, - }; responses.add(FrontendMessage::TriggerSaveDocument { document_id, - name, + name: format!("{}.{}", self.name.clone(), FILE_EXTENSION), path: self.path.clone(), content: self.serialize_document().into_bytes(), }) } DocumentMessage::SavedDocument { path } => { self.path = path; + + responses.add(PortfolioMessage::AutoSaveActiveDocument); + + // Update the name to match the file stem + let document_name_from_path = self.path.as_ref().and_then(|path| { + if path.extension().is_some_and(|e| e == FILE_EXTENSION) { + path.file_stem().map(|n| n.to_string_lossy().to_string()) + } else { + None + } + }); + if let Some(name) = document_name_from_path { + self.name = name; + + responses.add(PortfolioMessage::UpdateOpenDocumentsList); + responses.add(NodeGraphMessage::UpdateNewNodeGraph); + } + } + DocumentMessage::MarkAsSaved => { + self.set_save_state(true); + responses.add(PortfolioMessage::UpdateOpenDocumentsList); } DocumentMessage::SelectParentLayer => { let selected_nodes = self.network_interface.selected_nodes(); @@ -1033,7 +1104,7 @@ impl MessageHandler> for DocumentMes if !parent_layers.is_empty() { let nodes = parent_layers.into_iter().collect(); responses.add(NodeGraphMessage::SelectedNodesSet { nodes }); - responses.add(BroadcastEvent::SelectionChanged); + responses.add(EventMessage::SelectionChanged); } } DocumentMessage::SelectAllLayers => { @@ -1108,7 +1179,7 @@ impl MessageHandler> for DocumentMes } else { responses.add_front(NodeGraphMessage::SelectedNodesAdd { nodes: vec![id] }); } - responses.add(BroadcastEvent::SelectionChanged); + responses.add(EventMessage::SelectionChanged); } else { nodes.push(id); } @@ -1128,7 +1199,6 @@ impl MessageHandler> for DocumentMes } } DocumentMessage::SetActivePanel { active_panel: panel } => { - use crate::messages::portfolio::utility_types::PanelType; match panel { PanelType::Document => { if self.graph_view_overlay_open { @@ -1178,7 +1248,7 @@ impl MessageHandler> for DocumentMes Some(overlays_type) => overlays_type, None => { visibility_settings.all = visible; - responses.add(BroadcastEvent::ToolAbort); + responses.add(EventMessage::ToolAbort); responses.add(OverlaysMessage::Draw); return; } @@ -1201,7 +1271,7 @@ impl MessageHandler> for DocumentMes OverlaysType::Handles => visibility_settings.handles = visible, } - responses.add(BroadcastEvent::ToolAbort); + responses.add(EventMessage::ToolAbort); responses.add(OverlaysMessage::Draw); } DocumentMessage::SetRangeSelectionLayer { new_layer } => { @@ -1217,8 +1287,8 @@ impl MessageHandler> for DocumentMes responses.add(NodeGraphMessage::SetToNodeOrLayer { node_id, is_layer }); responses.add(DocumentMessage::EndTransaction); } - DocumentMessage::SetViewMode { view_mode } => { - self.view_mode = view_mode; + DocumentMessage::SetRenderMode { render_mode } => { + self.render_mode = render_mode; responses.add_front(NodeGraphMessage::RunDocumentGraph); } DocumentMessage::AddTransaction => { @@ -1237,37 +1307,49 @@ impl MessageHandler> for DocumentMes // Push the UpdateOpenDocumentsList message to the bus in order to update the save status of the open documents responses.add(PortfolioMessage::UpdateOpenDocumentsList); } - // Commits the transaction if the network was mutated since the transaction started, otherwise it aborts the transaction + // Commits the transaction if the network was mutated since the transaction started, otherwise it cancels the transaction DocumentMessage::EndTransaction => match self.network_interface.transaction_status() { TransactionStatus::Started => { - responses.add_front(DocumentMessage::AbortTransaction); + responses.add_front(DocumentMessage::CancelTransaction); } TransactionStatus::Modified => { responses.add_front(DocumentMessage::CommitTransaction); } TransactionStatus::Finished => {} }, + DocumentMessage::CancelTransaction => { + self.network_interface.finish_transaction(); + self.document_undo_history.pop_back(); + } DocumentMessage::CommitTransaction => { if self.network_interface.transaction_status() == TransactionStatus::Finished { return; } self.network_interface.finish_transaction(); self.document_redo_history.clear(); + responses.add(PortfolioMessage::UpdateOpenDocumentsList); } - DocumentMessage::AbortTransaction => { - responses.add(DocumentMessage::RepeatedAbortTransaction { undo_count: 1 }); - } + DocumentMessage::AbortTransaction => match self.network_interface.transaction_status() { + TransactionStatus::Started => { + responses.add_front(DocumentMessage::CancelTransaction); + } + TransactionStatus::Modified => { + responses.add(DocumentMessage::RepeatedAbortTransaction { undo_count: 1 }); + } + TransactionStatus::Finished => {} + }, DocumentMessage::RepeatedAbortTransaction { undo_count } => { if self.network_interface.transaction_status() == TransactionStatus::Finished { return; } for _ in 0..undo_count { - self.undo(ipp, responses); + self.undo(viewport, responses); } self.network_interface.finish_transaction(); responses.add(OverlaysMessage::Draw); + responses.add(PortfolioMessage::UpdateOpenDocumentsList); } DocumentMessage::ToggleLayerExpansion { id, recursive } => { let layer = LayerNodeIdentifier::new(id, &self.network_interface); @@ -1412,15 +1494,17 @@ impl MessageHandler> for DocumentMes } DocumentMessage::PTZUpdate => { if !self.graph_view_overlay_open { - let transform = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz); + let transform = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), &self.document_ptz); self.network_interface.set_document_to_viewport_transform(transform); // Ensure selection box is kept in sync with the pointer when the PTZ changes - responses.add(SelectToolMessage::PointerMove(SelectToolPointerKeys { - axis_align: Key::Shift, - snap_angle: Key::Shift, - center: Key::Alt, - duplicate: Key::Alt, - })); + responses.add(SelectToolMessage::PointerMove { + modifier_keys: SelectToolPointerKeys { + axis_align: Key::Shift, + snap_angle: Key::Shift, + center: Key::Alt, + duplicate: Key::Alt, + }, + }); responses.add(NodeGraphMessage::RunDocumentGraph); } else { let Some(network_metadata) = self.network_interface.network_metadata(&self.breadcrumb_network_path) else { @@ -1429,7 +1513,7 @@ impl MessageHandler> for DocumentMes let transform = self .navigation_handler - .calculate_offset_transform(ipp.viewport_bounds.center(), &network_metadata.persistent_metadata.navigation_metadata.node_graph_ptz); + .calculate_offset_transform(viewport.center_in_viewport_space().into(), &network_metadata.persistent_metadata.navigation_metadata.node_graph_ptz); self.network_interface.set_transform(transform, &self.breadcrumb_network_path); responses.add(DocumentMessage::RenderRulers); @@ -1449,11 +1533,11 @@ impl MessageHandler> for DocumentMes } DocumentMessage::SelectionStepBack => { self.network_interface.selection_step_back(&self.selection_network_path); - responses.add(BroadcastEvent::SelectionChanged); + responses.add(EventMessage::SelectionChanged); } DocumentMessage::SelectionStepForward => { self.network_interface.selection_step_forward(&self.selection_network_path); - responses.add(BroadcastEvent::SelectionChanged); + responses.add(EventMessage::SelectionChanged); } DocumentMessage::WrapContentInArtboard { place_artboard_at_origin } => { // Get bounding box of all layers @@ -1469,7 +1553,7 @@ impl MessageHandler> for DocumentMes .default_node_template(); responses.add(NodeGraphMessage::InsertNode { node_id, - node_template: new_artboard_node, + node_template: Box::new(new_artboard_node), }); responses.add(NodeGraphMessage::ShiftNodePosition { node_id, x: 15, y: -3 }); responses.add(GraphOperationMessage::ResizeArtboard { @@ -1541,6 +1625,10 @@ impl MessageHandler> for DocumentMes ZoomCanvasToFitAll, ); + // Additional actions available on desktop + #[cfg(not(target_family = "wasm"))] + common.extend(actions!(DocumentMessageDiscriminant::SaveDocumentAs)); + // Additional actions if there are any selected layers if self.network_interface.selected_nodes().selected_layers(self.metadata()).next().is_some() { let mut select = actions!(DocumentMessageDiscriminant; @@ -1579,29 +1667,30 @@ impl MessageHandler> for DocumentMes impl DocumentMessageHandler { /// Runs an intersection test with all layers and a viewport space quad - pub fn intersect_quad<'a>(&'a self, viewport_quad: graphene_std::renderer::Quad, ipp: &InputPreprocessorMessageHandler) -> impl Iterator + use<'a> { - let document_to_viewport = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz); + pub fn intersect_quad<'a>(&'a self, viewport_quad: graphene_std::renderer::Quad, viewport: &ViewportMessageHandler) -> impl Iterator + use<'a> { + let document_to_viewport = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), &self.document_ptz); let document_quad = document_to_viewport.inverse() * viewport_quad; ClickXRayIter::new(&self.network_interface, XRayTarget::Quad(document_quad)) } /// Runs an intersection test with all layers and a viewport space quad; ignoring artboards - pub fn intersect_quad_no_artboards<'a>(&'a self, viewport_quad: graphene_std::renderer::Quad, ipp: &InputPreprocessorMessageHandler) -> impl Iterator + use<'a> { - self.intersect_quad(viewport_quad, ipp).filter(|layer| !self.network_interface.is_artboard(&layer.to_node(), &[])) + pub fn intersect_quad_no_artboards<'a>(&'a self, viewport_quad: graphene_std::renderer::Quad, viewport: &ViewportMessageHandler) -> impl Iterator + use<'a> { + self.intersect_quad(viewport_quad, viewport).filter(|layer| !self.network_interface.is_artboard(&layer.to_node(), &[])) } /// Runs an intersection test with all layers and a viewport space subpath - pub fn intersect_polygon<'a>(&'a self, mut viewport_polygon: Subpath, ipp: &InputPreprocessorMessageHandler) -> impl Iterator + use<'a> { - let document_to_viewport = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz); + pub fn intersect_polygon<'a>(&'a self, mut viewport_polygon: Subpath, viewport: &ViewportMessageHandler) -> impl Iterator + use<'a> { + let document_to_viewport = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), &self.document_ptz); viewport_polygon.apply_transform(document_to_viewport.inverse()); ClickXRayIter::new(&self.network_interface, XRayTarget::Polygon(viewport_polygon)) } /// Runs an intersection test with all layers and a viewport space subpath; ignoring artboards - pub fn intersect_polygon_no_artboards<'a>(&'a self, viewport_polygon: Subpath, ipp: &InputPreprocessorMessageHandler) -> impl Iterator + use<'a> { - self.intersect_polygon(viewport_polygon, ipp).filter(|layer| !self.network_interface.is_artboard(&layer.to_node(), &[])) + pub fn intersect_polygon_no_artboards<'a>(&'a self, viewport_polygon: Subpath, viewport: &ViewportMessageHandler) -> impl Iterator + use<'a> { + self.intersect_polygon(viewport_polygon, viewport) + .filter(|layer| !self.network_interface.is_artboard(&layer.to_node(), &[])) } pub fn is_layer_fully_inside(&self, layer: &LayerNodeIdentifier, quad: graphene_std::renderer::Quad) -> bool { @@ -1627,8 +1716,8 @@ impl DocumentMessageHandler { layer_left >= quad_left && layer_right <= quad_right && layer_top <= quad_top && layer_bottom >= quad_bottom } - pub fn is_layer_fully_inside_polygon(&self, layer: &LayerNodeIdentifier, ipp: &InputPreprocessorMessageHandler, mut viewport_polygon: Subpath) -> bool { - let document_to_viewport = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz); + pub fn is_layer_fully_inside_polygon(&self, layer: &LayerNodeIdentifier, viewport: &ViewportMessageHandler, mut viewport_polygon: Subpath) -> bool { + let document_to_viewport = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), &self.document_ptz); viewport_polygon.apply_transform(document_to_viewport.inverse()); let layer_click_targets = self.network_interface.document_metadata().click_targets(*layer); @@ -1651,8 +1740,8 @@ impl DocumentMessageHandler { } /// Find all of the layers that were clicked on from a viewport space location - pub fn click_xray(&self, ipp: &InputPreprocessorMessageHandler) -> impl Iterator + use<'_> { - let document_to_viewport = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz); + pub fn click_xray(&self, ipp: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) -> impl Iterator + use<'_> { + let document_to_viewport = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), &self.document_ptz); let point = document_to_viewport.inverse().transform_point2(ipp.mouse.position); ClickXRayIter::new(&self.network_interface, XRayTarget::Point(point)) } @@ -1673,8 +1762,8 @@ impl DocumentMessageHandler { } /// Find layers under the location in viewport space that was clicked, listed by their depth in the layer tree hierarchy. - pub fn click_list<'a>(&'a self, ipp: &InputPreprocessorMessageHandler) -> impl Iterator + use<'a> { - self.click_xray(ipp) + pub fn click_list<'a>(&'a self, ipp: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) -> impl Iterator + use<'a> { + self.click_xray(ipp, viewport) .filter(move |&layer| !self.network_interface.is_artboard(&layer.to_node(), &[])) .skip_while(|&layer| layer == LayerNodeIdentifier::ROOT_PARENT) .scan(true, |last_had_children, layer| { @@ -1687,14 +1776,28 @@ impl DocumentMessageHandler { }) } - pub fn click_list_no_parents<'a>(&'a self, ipp: &InputPreprocessorMessageHandler) -> impl Iterator + use<'a> { - self.click_xray(ipp) + /// Find layers (including artboards) under the location in viewport space that was clicked, listed by their depth in the layer tree hierarchy. + pub fn click_list_with_artboards<'a>(&'a self, ipp: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) -> impl Iterator + use<'a> { + self.click_xray(ipp, viewport) + .skip_while(|&layer| layer == LayerNodeIdentifier::ROOT_PARENT) + .scan(true, |last_had_children, layer| { + if *last_had_children { + *last_had_children = layer.has_children(self.network_interface.document_metadata()); + Some(layer) + } else { + None + } + }) + } + + pub fn click_list_no_parents<'a>(&'a self, ipp: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) -> impl Iterator + use<'a> { + self.click_xray(ipp, viewport) .filter(move |&layer| !self.network_interface.is_artboard(&layer.to_node(), &[]) && !layer.has_children(self.network_interface.document_metadata())) } /// Find the deepest layer that has been clicked on from a location in viewport space. - pub fn click(&self, ipp: &InputPreprocessorMessageHandler) -> Option { - self.click_list(ipp).last() + pub fn click(&self, ipp: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) -> Option { + self.click_list(ipp, viewport).last() } pub fn click_based_on_position(&self, mouse_snapped_positon: DVec2) -> Option { @@ -1728,7 +1831,8 @@ impl DocumentMessageHandler { pub fn deserialize_document(serialized_content: &str) -> Result { let document_message_handler = serde_json::from_str::(serialized_content) - .or_else(|_| { + .or_else(|e| { + log::warn!("Failed to directly load document with the following error: {e}. Trying old DocumentMessageHandler."); // TODO: Eventually remove this document upgrade code #[derive(Debug, serde::Serialize, serde::Deserialize)] pub struct OldDocumentMessageHandler { @@ -1751,11 +1855,9 @@ impl DocumentMessageHandler { pub commit_hash: String, /// The current pan, tilt, and zoom state of the viewport's view of the document canvas. pub document_ptz: PTZ, - /// The current mode that the document is in, which starts out as Design Mode. This choice affects the editing behavior of the tools. - pub document_mode: DocumentMode, - /// The current view mode that the user has set for rendering the document within the viewport. + /// The current mode that the user has set for rendering the document within the viewport. /// This is usually "Normal" but can be set to "Outline" or "Pixels" to see the canvas differently. - pub view_mode: ViewMode, + pub view_mode: RenderMode, /// Sets whether or not all the viewport overlays should be drawn on top of the artwork. /// This includes tool interaction visualizations (like the transform cage and path anchors/handles), the grid, and more. pub overlays_visibility_settings: OverlaysVisibilitySettings, @@ -1772,8 +1874,7 @@ impl DocumentMessageHandler { collapsed: old_message_handler.collapsed, commit_hash: old_message_handler.commit_hash, document_ptz: old_message_handler.document_ptz, - document_mode: old_message_handler.document_mode, - view_mode: old_message_handler.view_mode, + render_mode: old_message_handler.view_mode, overlays_visibility_settings: old_message_handler.overlays_visibility_settings, rulers_visible: old_message_handler.rulers_visible, graph_view_overlay_open: old_message_handler.graph_view_overlay_open, @@ -1851,8 +1952,8 @@ impl DocumentMessageHandler { structure_section.as_slice().into() } - pub fn undo_with_history(&mut self, ipp: &InputPreprocessorMessageHandler, responses: &mut VecDeque) { - let Some(previous_network) = self.undo(ipp, responses) else { return }; + pub fn undo_with_history(&mut self, viewport: &ViewportMessageHandler, responses: &mut VecDeque) { + let Some(previous_network) = self.undo(viewport, responses) else { return }; self.document_redo_history.push_back(previous_network); if self.document_redo_history.len() > crate::consts::MAX_UNDO_HISTORY_LEN { @@ -1860,7 +1961,7 @@ impl DocumentMessageHandler { } } - pub fn undo(&mut self, ipp: &InputPreprocessorMessageHandler, responses: &mut VecDeque) -> Option { + pub fn undo(&mut self, viewport: &ViewportMessageHandler, responses: &mut VecDeque) -> Option { // If there is no history return and don't broadcast SelectionChanged let mut network_interface = self.document_undo_history.pop_back()?; @@ -1869,7 +1970,7 @@ impl DocumentMessageHandler { std::mem::swap(&mut network_interface.resolved_types, &mut self.network_interface.resolved_types); //Update the metadata transform based on document PTZ - let transform = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz); + let transform = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), &self.document_ptz); network_interface.set_document_to_viewport_transform(transform); // Ensure document structure is loaded so that updating the selected nodes has the correct metadata @@ -1884,13 +1985,12 @@ impl DocumentMessageHandler { // TODO: Remove once the footprint is used to load the imports/export distances from the edge responses.add(NodeGraphMessage::UnloadWires); - responses.add(NodeGraphMessage::SetGridAlignedEdges); Some(previous_network) } - pub fn redo_with_history(&mut self, ipp: &InputPreprocessorMessageHandler, responses: &mut VecDeque) { + pub fn redo_with_history(&mut self, viewport: &ViewportMessageHandler, responses: &mut VecDeque) { // Push the UpdateOpenDocumentsList message to the queue in order to update the save status of the open documents - let Some(previous_network) = self.redo(ipp, responses) else { return }; + let Some(previous_network) = self.redo(viewport, responses) else { return }; self.document_undo_history.push_back(previous_network); if self.document_undo_history.len() > crate::consts::MAX_UNDO_HISTORY_LEN { @@ -1898,7 +1998,7 @@ impl DocumentMessageHandler { } } - pub fn redo(&mut self, ipp: &InputPreprocessorMessageHandler, responses: &mut VecDeque) -> Option { + pub fn redo(&mut self, viewport: &ViewportMessageHandler, responses: &mut VecDeque) -> Option { // If there is no history return and don't broadcast SelectionChanged let mut network_interface = self.document_redo_history.pop_back()?; @@ -1907,7 +2007,7 @@ impl DocumentMessageHandler { std::mem::swap(&mut network_interface.resolved_types, &mut self.network_interface.resolved_types); //Update the metadata transform based on document PTZ - let transform = self.navigation_handler.calculate_offset_transform(ipp.viewport_bounds.center(), &self.document_ptz); + let transform = self.navigation_handler.calculate_offset_transform(viewport.center_in_viewport_space().into(), &self.document_ptz); network_interface.set_document_to_viewport_transform(transform); let previous_network = std::mem::replace(&mut self.network_interface, network_interface); @@ -1920,16 +2020,16 @@ impl DocumentMessageHandler { Some(previous_network) } - pub fn current_hash(&self) -> Option { - self.document_undo_history.iter().last().map(|network| network.document_network().current_hash()) + pub fn current_hash(&self) -> u64 { + self.network_interface.document_network().current_hash() } pub fn is_auto_saved(&self) -> bool { - self.current_hash() == self.auto_saved_hash + Some(self.current_hash()) == self.auto_saved_hash } pub fn is_saved(&self) -> bool { - self.current_hash() == self.saved_hash + Some(self.current_hash()) == self.saved_hash } pub fn is_graph_overlay_open(&self) -> bool { @@ -1938,7 +2038,7 @@ impl DocumentMessageHandler { pub fn set_auto_save_state(&mut self, is_saved: bool) { if is_saved { - self.auto_saved_hash = self.current_hash(); + self.auto_saved_hash = Some(self.current_hash()); } else { self.auto_saved_hash = None; } @@ -1946,18 +2046,18 @@ impl DocumentMessageHandler { pub fn set_save_state(&mut self, is_saved: bool) { if is_saved { - self.saved_hash = self.current_hash(); + self.saved_hash = Some(self.current_hash()); } else { self.saved_hash = None; } } /// Finds the artboard that bounds the point in viewport space and be the container of any newly added layers. - pub fn new_layer_bounding_artboard(&self, ipp: &InputPreprocessorMessageHandler) -> LayerNodeIdentifier { + pub fn new_layer_bounding_artboard(&self, ipp: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) -> LayerNodeIdentifier { let container_based_on_selection = self.new_layer_parent(true); let container_based_on_clicked_artboard = self - .click_xray(ipp) + .click_xray(ipp, viewport) .find(|layer| self.network_interface.is_artboard(&layer.to_node(), &[])) .unwrap_or(LayerNodeIdentifier::ROOT_PARENT); @@ -2071,74 +2171,48 @@ impl DocumentMessageHandler { } /// Loads all of the fonts in the document. - pub fn load_layer_resources(&self, responses: &mut VecDeque) { - let mut fonts = HashSet::new(); - for (_node_id, node, _) in self.document_network().recursive_nodes() { + pub fn load_layer_resources(&self, responses: &mut VecDeque, font_catalog: &FontCatalog) { + let mut fonts_to_load = HashSet::new(); + + for (_, node, _) in self.document_network().recursive_nodes() { for input in &node.inputs { if let Some(TaggedValue::Font(font)) = input.as_value() { - fonts.insert(font.clone()); + fonts_to_load.insert(font.clone()); } } } - for font in fonts { - responses.add_front(FrontendMessage::TriggerFontLoad { font }); + + for font in fonts_to_load { + if let Some(style) = font_catalog.find_font_style_in_catalog(&font) { + responses.add_front(FrontendMessage::TriggerFontDataLoad { + font: Font::new(font.font_family, style.to_named_style()), + url: style.url, + }); + } } } pub fn update_document_widgets(&self, responses: &mut VecDeque, animation_is_playing: bool, time: Duration) { - // Document mode (dropdown menu at the left of the bar above the viewport, before the tool options) - - let document_mode_layout = WidgetLayout::new(vec![LayoutGroup::Row { - widgets: vec![ - // DropdownInput::new( - // vec![vec![ - // MenuListEntry::new(format!("{:?}", DocumentMode::DesignMode)) - // .label(DocumentMode::DesignMode.to_string()) - // .icon(DocumentMode::DesignMode.icon_name()), - // MenuListEntry::new(format!("{:?}", DocumentMode::SelectMode)) - // .label(DocumentMode::SelectMode.to_string()) - // .icon(DocumentMode::SelectMode.icon_name()) - // .on_commit(|_| DialogMessage::RequestComingSoonDialog { issue: Some(330) }.into()), - // MenuListEntry::new(format!("{:?}", DocumentMode::GuideMode)) - // .label(DocumentMode::GuideMode.to_string()) - // .icon(DocumentMode::GuideMode.icon_name()) - // .on_commit(|_| DialogMessage::RequestComingSoonDialog { issue: Some(331) }.into()), - // ]]) - // .selected_index(Some(self.document_mode as u32)) - // .draw_icon(true) - // .interactive(false) // TODO: set to true when dialogs are not spawned - // .widget_holder(), - // Separator::new(SeparatorType::Section).widget_holder(), - ], - }]); - - responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(document_mode_layout), - layout_target: LayoutTarget::DocumentMode, - }); - - // Document bar (right portion of the bar above the viewport) - let mut snapping_state = self.snapping_state.clone(); let mut snapping_state2 = self.snapping_state.clone(); let mut widgets = vec![ IconButton::new("PlaybackToStart", 24) - .tooltip("Restart Animation") - .tooltip_shortcut(action_keys!(AnimationMessageDiscriminant::RestartAnimation)) + .tooltip_label("Restart Animation") + .tooltip_shortcut(action_shortcut!(AnimationMessageDiscriminant::RestartAnimation)) .on_update(|_| AnimationMessage::RestartAnimation.into()) .disabled(time == Duration::ZERO) - .widget_holder(), + .widget_instance(), IconButton::new(if animation_is_playing { "PlaybackPause" } else { "PlaybackPlay" }, 24) - .tooltip(if animation_is_playing { "Pause Animation" } else { "Play Animation" }) - .tooltip_shortcut(action_keys!(AnimationMessageDiscriminant::ToggleLivePreview)) + .tooltip_label(if animation_is_playing { "Pause Animation" } else { "Play Animation" }) + .tooltip_shortcut(action_shortcut!(AnimationMessageDiscriminant::ToggleLivePreview)) .on_update(|_| AnimationMessage::ToggleLivePreview.into()) - .widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), CheckboxInput::new(self.overlays_visibility_settings.all) .icon("Overlays") - .tooltip("Overlays") - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::ToggleOverlaysVisibility)) + .tooltip_label("Overlays") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::ToggleOverlaysVisibility)) .on_update(|optional_input: &CheckboxInput| { DocumentMessage::SetOverlaysVisibility { visible: optional_input.checked, @@ -2146,14 +2220,14 @@ impl DocumentMessageHandler { } .into() }) - .widget_holder(), + .widget_instance(), PopoverButton::new() - .popover_layout(vec![ + .popover_layout(Layout(vec![ LayoutGroup::Row { - widgets: vec![TextLabel::new("Overlays").bold(true).widget_holder()], + widgets: vec![TextLabel::new("Overlays").bold(true).widget_instance()], }, LayoutGroup::Row { - widgets: vec![TextLabel::new("General").widget_holder()], + widgets: vec![TextLabel::new("General").widget_instance()], }, LayoutGroup::Row { widgets: { @@ -2168,8 +2242,8 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Artboard Name".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("Artboard Name".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, @@ -2186,13 +2260,13 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("G/R/S Measurement".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("G/R/S Measurement".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, LayoutGroup::Row { - widgets: vec![TextLabel::new("Select Tool").widget_holder()], + widgets: vec![TextLabel::new("Select Tool").widget_instance()], }, LayoutGroup::Row { widgets: { @@ -2207,8 +2281,8 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Quick Measurement".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("Quick Measurement".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, @@ -2225,8 +2299,8 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Transform Cage".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("Transform Cage".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, @@ -2243,8 +2317,8 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Transform Dial".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("Transform Dial".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, @@ -2261,8 +2335,8 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Transform Pivot".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("Transform Pivot".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, @@ -2279,8 +2353,8 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Transform Origin".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("Transform Origin".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, @@ -2297,8 +2371,8 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Hover Outline".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("Hover Outline".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, @@ -2315,13 +2389,13 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Selection Outline".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("Selection Outline".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, LayoutGroup::Row { - widgets: vec![TextLabel::new("Pen & Path Tools").widget_holder()], + widgets: vec![TextLabel::new("Pen & Path Tools").widget_instance()], }, LayoutGroup::Row { widgets: { @@ -2336,8 +2410,8 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Path".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("Path".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, @@ -2354,8 +2428,8 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new("Anchors".to_string()).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new("Anchors".to_string()).for_checkbox(checkbox_id).widget_instance(), ] }, }, @@ -2373,21 +2447,21 @@ impl DocumentMessageHandler { .into() }) .for_label(checkbox_id) - .widget_holder(), + .widget_instance(), TextLabel::new("Handles".to_string()) .disabled(!self.overlays_visibility_settings.anchors) .for_checkbox(checkbox_id) - .widget_holder(), + .widget_instance(), ] }, }, - ]) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + ])) + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), CheckboxInput::new(snapping_state.snapping_enabled) .icon("Snapping") - .tooltip("Snapping") - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::ToggleSnapping)) + .tooltip_label("Snapping") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::ToggleSnapping)) .on_update(move |optional_input: &CheckboxInput| { DocumentMessage::SetSnapping { closure: Some(|snapping_state| &mut snapping_state.snapping_enabled), @@ -2395,19 +2469,19 @@ impl DocumentMessageHandler { } .into() }) - .widget_holder(), + .widget_instance(), PopoverButton::new() - .popover_layout( + .popover_layout(Layout( [ LayoutGroup::Row { - widgets: vec![TextLabel::new("Snapping").bold(true).widget_holder()], + widgets: vec![TextLabel::new("Snapping").bold(true).widget_instance()], }, LayoutGroup::Row { - widgets: vec![TextLabel::new(SnappingOptions::BoundingBoxes.to_string()).widget_holder()], + widgets: vec![TextLabel::new(SnappingOptions::BoundingBoxes.to_string()).widget_instance()], }, ] .into_iter() - .chain(SNAP_FUNCTIONS_FOR_BOUNDING_BOXES.into_iter().map(|(name, closure, tooltip)| LayoutGroup::Row { + .chain(SNAP_FUNCTIONS_FOR_BOUNDING_BOXES.into_iter().map(|(name, closure, description)| LayoutGroup::Row { widgets: { let checkbox_id = CheckboxId::new(); vec![ @@ -2419,17 +2493,18 @@ impl DocumentMessageHandler { } .into() }) - .tooltip(tooltip) + .tooltip_label(name) + .tooltip_description(description) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new(name).tooltip(tooltip).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new(name).tooltip_label(name).tooltip_description(description).for_checkbox(checkbox_id).widget_instance(), ] }, })) .chain([LayoutGroup::Row { - widgets: vec![TextLabel::new(SnappingOptions::Paths.to_string()).widget_holder()], + widgets: vec![TextLabel::new(SnappingOptions::Paths.to_string()).widget_instance()], }]) - .chain(SNAP_FUNCTIONS_FOR_PATHS.into_iter().map(|(name, closure, tooltip)| LayoutGroup::Row { + .chain(SNAP_FUNCTIONS_FOR_PATHS.into_iter().map(|(name, closure, description)| LayoutGroup::Row { widgets: { let checkbox_id = CheckboxId::new(); vec![ @@ -2441,58 +2516,53 @@ impl DocumentMessageHandler { } .into() }) - .tooltip(tooltip) + .tooltip_label(name) + .tooltip_description(description) .for_label(checkbox_id) - .widget_holder(), - TextLabel::new(name).tooltip(tooltip).for_checkbox(checkbox_id).widget_holder(), + .widget_instance(), + TextLabel::new(name).tooltip_label(name).tooltip_description(description).for_checkbox(checkbox_id).widget_instance(), ] }, })) .collect(), - ) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + )) + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), CheckboxInput::new(self.snapping_state.grid_snapping) .icon("Grid") - .tooltip("Grid") - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::ToggleGridVisibility)) - .on_update(|optional_input: &CheckboxInput| DocumentMessage::GridVisibility(optional_input.checked).into()) - .widget_holder(), + .tooltip_label("Grid") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::ToggleGridVisibility)) + .on_update(|optional_input: &CheckboxInput| DocumentMessage::GridVisibility { visible: optional_input.checked }.into()) + .widget_instance(), PopoverButton::new() - .popover_layout(overlay_options(&self.snapping_state.grid)) + .popover_layout(Layout(overlay_options(&self.snapping_state.grid))) .popover_min_width(Some(320)) - .widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), RadioInput::new(vec![ - RadioEntryData::new("normal") - .icon("ViewModeNormal") - .tooltip("View Mode: Normal") - .on_update(|_| DocumentMessage::SetViewMode { view_mode: ViewMode::Normal }.into()), - RadioEntryData::new("outline") - .icon("ViewModeOutline") - .tooltip("View Mode: Outline") - .on_update(|_| DocumentMessage::SetViewMode { view_mode: ViewMode::Outline }.into()), - RadioEntryData::new("pixels") - .icon("ViewModePixels") - .tooltip("View Mode: Pixels") - .on_update(|_| DialogMessage::RequestComingSoonDialog { issue: Some(320) }.into()), + RadioEntryData::new("Normal") + .icon("RenderModeNormal") + .tooltip_label("Render Mode: Normal") + .on_update(|_| DocumentMessage::SetRenderMode { render_mode: RenderMode::Normal }.into()), + RadioEntryData::new("Outline") + .icon("RenderModeOutline") + .tooltip_label("Render Mode: Outline") + .on_update(|_| DocumentMessage::SetRenderMode { render_mode: RenderMode::Outline }.into()), + // TODO: See issue #320 + // RadioEntryData::new("PixelPreview") + // .icon("RenderModePixels") + // .tooltip_label("Render Mode: Pixel Preview") + // .on_update(|_| todo!()), + // TODO: See issue #1845 + // RadioEntryData::new("SvgPreview") + // .icon("RenderModeSvg") + // .tooltip_label("Render Mode: SVG Preview") + // .on_update(|_| todo!()), ]) - .selected_index(match self.view_mode { - ViewMode::Normal => Some(0), - _ => Some(1), - }) - .widget_holder(), - // PopoverButton::new() - // .popover_layout(vec![ - // LayoutGroup::Row { - // widgets: vec![TextLabel::new("View Mode").bold(true).widget_holder()], - // }, - // LayoutGroup::Row { - // widgets: vec![TextLabel::new("Coming soon").widget_holder()], - // }, - // ]) - // .widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + .selected_index(Some(self.render_mode as u32)) + .narrow(true) + .widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), ]; widgets.extend(navigation_controls(&self.document_ptz, &self.navigation_handler, false)); @@ -2500,7 +2570,7 @@ impl DocumentMessageHandler { let tilt_value = self.navigation_handler.snapped_tilt(self.document_ptz.tilt()) / (std::f64::consts::PI / 180.); if tilt_value.abs() > 0.00001 { widgets.extend([ - Separator::new(SeparatorType::Related).widget_holder(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(tilt_value)) .unit("ยฐ") .increment_behavior(NumberInputIncrementBehavior::Callback) @@ -2518,38 +2588,40 @@ impl DocumentMessageHandler { } .into() }) - .tooltip("Canvas Tilt") + .tooltip_label("Canvas Tilt") .on_update(|number_input: &NumberInput| { NavigationMessage::CanvasTiltSet { angle_radians: number_input.value.unwrap().to_radians(), } .into() }) - .widget_holder(), + .widget_instance(), ]); } widgets.extend([ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), TextButton::new("Node Graph") .icon(Some((if self.graph_view_overlay_open { "GraphViewOpen" } else { "GraphViewClosed" }).into())) .hover_icon(Some((if self.graph_view_overlay_open { "GraphViewClosed" } else { "GraphViewOpen" }).into())) - .tooltip(if self.graph_view_overlay_open { "Hide Node Graph" } else { "Show Node Graph" }) - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::GraphViewOverlayToggle)) + .tooltip_label(if self.graph_view_overlay_open { "Hide Node Graph" } else { "Show Node Graph" }) + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::GraphViewOverlayToggle)) .on_update(move |_| DocumentMessage::GraphViewOverlayToggle.into()) - .widget_holder(), + .widget_instance(), ]); - let document_bar_layout = WidgetLayout::new(vec![LayoutGroup::Row { widgets }]); - responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(document_bar_layout), + layout: Layout(vec![LayoutGroup::Row { widgets }]), layout_target: LayoutTarget::DocumentBar, }); - responses.add(NodeGraphMessage::ForceRunDocumentGraph); + responses.add(NodeGraphMessage::RunDocumentGraph); } - pub fn update_layers_panel_control_bar_widgets(&self, responses: &mut VecDeque) { + pub fn update_layers_panel_control_bar_widgets(&self, layers_panel_open: bool, responses: &mut VecDeque) { + if !layers_panel_open { + return; + } + // Get an iterator over the selected layers (excluding artboards which don't have an opacity or blend mode). let selected_nodes = self.network_interface.selected_nodes(); let selected_layers_except_artboards = selected_nodes.selected_layers_except_artboards(&self.network_interface); @@ -2630,9 +2702,9 @@ impl DocumentMessageHandler { .disabled(disabled) .draw_icon(false) .max_width(100) - .tooltip("Blend Mode") - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .tooltip_label("Blend Mode") + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(opacity) .label("Opacity") .unit("%") @@ -2652,9 +2724,9 @@ impl DocumentMessageHandler { }) .on_commit(|_| DocumentMessage::AddTransaction.into()) .max_width(100) - .tooltip("Opacity") - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .tooltip_label("Opacity") + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(fill) .label("Fill") .unit("%") @@ -2674,63 +2746,63 @@ impl DocumentMessageHandler { }) .on_commit(|_| DocumentMessage::AddTransaction.into()) .max_width(100) - .tooltip("Fill") - .widget_holder(), + .tooltip_label("Fill") + .widget_instance(), ]; - let layers_panel_control_bar_left = WidgetLayout::new(vec![LayoutGroup::Row { widgets }]); + let layers_panel_control_bar_left = Layout(vec![LayoutGroup::Row { widgets }]); let widgets = vec![ IconButton::new(if selection_all_locked { "PadlockLocked" } else { "PadlockUnlocked" }, 24) .hover_icon(Some((if selection_all_locked { "PadlockUnlocked" } else { "PadlockLocked" }).into())) - .tooltip(if selection_all_locked { "Unlock Selected" } else { "Lock Selected" }) - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::ToggleSelectedLocked)) + .tooltip_label(if selection_all_locked { "Unlock Selected" } else { "Lock Selected" }) + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::ToggleSelectedLocked)) .on_update(|_| NodeGraphMessage::ToggleSelectedLocked.into()) .disabled(!has_selection) - .widget_holder(), + .widget_instance(), IconButton::new(if selection_all_visible { "EyeVisible" } else { "EyeHidden" }, 24) .hover_icon(Some((if selection_all_visible { "EyeHide" } else { "EyeShow" }).into())) - .tooltip(if selection_all_visible { "Hide Selected" } else { "Show Selected" }) - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::ToggleSelectedVisibility)) + .tooltip_label(if selection_all_visible { "Hide Selected" } else { "Show Selected" }) + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::ToggleSelectedVisibility)) .on_update(|_| DocumentMessage::ToggleSelectedVisibility.into()) .disabled(!has_selection) - .widget_holder(), + .widget_instance(), ]; - let layers_panel_control_bar_right = WidgetLayout::new(vec![LayoutGroup::Row { widgets }]); + let layers_panel_control_bar_right = Layout(vec![LayoutGroup::Row { widgets }]); responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(layers_panel_control_bar_left), + layout: layers_panel_control_bar_left, layout_target: LayoutTarget::LayersPanelControlLeftBar, }); responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(layers_panel_control_bar_right), + layout: layers_panel_control_bar_right, layout_target: LayoutTarget::LayersPanelControlRightBar, }); } - pub fn update_layers_panel_bottom_bar_widgets(&self, responses: &mut VecDeque) { + pub fn update_layers_panel_bottom_bar_widgets(&mut self, layers_panel_open: bool, responses: &mut VecDeque) { + if !layers_panel_open { + return; + } + let selected_nodes = self.network_interface.selected_nodes(); let mut selected_layers = selected_nodes.selected_layers(self.metadata()); let selected_layer = selected_layers.next(); let has_selection = selected_layer.is_some(); let has_multiple_selection = selected_layers.next().is_some(); + for _ in selected_layers {} let widgets = vec![ PopoverButton::new() .icon(Some("Node".to_string())) .menu_direction(Some(MenuDirection::Top)) - .tooltip("Add an operation to the end of this layer's chain of nodes") + .tooltip_description("Add an operation to the end of this layer's chain of nodes.") .disabled(!has_selection || has_multiple_selection) .popover_layout({ - // Showing only compatible types + // Showing only compatible types for the layer based on the output type of the node upstream from its horizontal input let compatible_type = selected_layer.and_then(|layer| { - let graph_layer = graph_modification_utils::NodeGraphLayer::new(layer, &self.network_interface); - let node_type = graph_layer.horizontal_layer_flow().nth(1); - if let Some(node_id) = node_type { - let (output_type, _) = self.network_interface.output_type(&node_id, 0, &self.selection_network_path); - Some(format!("type:{}", output_type.nested_type())) - } else { - None - } + self.network_interface + .upstream_output_connector(&InputConnector::node(layer.to_node(), 1), &[]) + .and_then(|upstream_output| self.network_interface.output_type(&upstream_output, &[]).add_node_string()) }); let mut node_chooser = NodeCatalog::new(); @@ -2748,36 +2820,34 @@ impl DocumentMessageHandler { Message::NoOp } }) - .widget_holder(); - vec![LayoutGroup::Row { widgets: vec![node_chooser] }] + .widget_instance(); + Layout(vec![LayoutGroup::Row { widgets: vec![node_chooser] }]) }) - .widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), IconButton::new("Folder", 24) - .tooltip("Group Selected") - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::GroupSelectedLayers)) + .tooltip_label("Group Selected") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::GroupSelectedLayers)) .on_update(|_| { let group_folder_type = GroupFolderType::Layer; DocumentMessage::GroupSelectedLayers { group_folder_type }.into() }) .disabled(!has_selection) - .widget_holder(), + .widget_instance(), IconButton::new("NewLayer", 24) - .tooltip("New Layer") - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::CreateEmptyFolder)) + .tooltip_label("New Layer") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::CreateEmptyFolder)) .on_update(|_| DocumentMessage::CreateEmptyFolder.into()) - .widget_holder(), + .widget_instance(), IconButton::new("Trash", 24) - .tooltip("Delete Selected") - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::DeleteSelectedLayers)) + .tooltip_label("Delete Selected") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::DeleteSelectedLayers)) .on_update(|_| DocumentMessage::DeleteSelectedLayers.into()) .disabled(!has_selection) - .widget_holder(), + .widget_instance(), ]; - let layers_panel_bottom_bar = WidgetLayout::new(vec![LayoutGroup::Row { widgets }]); - responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(layers_panel_bottom_bar), + layout: Layout(vec![LayoutGroup::Row { widgets }]), layout_target: LayoutTarget::LayersPanelBottomBar, }); } @@ -2949,10 +3019,10 @@ fn quad_to_path_lib_segments(quad: Quad) -> Vec { } fn click_targets_to_path_lib_segments<'a>(click_targets: impl Iterator, transform: DAffine2) -> Vec { - let segment = |bezier: bezier_rs::Bezier| match bezier.handles { - bezier_rs::BezierHandles::Linear => path_bool_lib::PathSegment::Line(bezier.start, bezier.end), - bezier_rs::BezierHandles::Quadratic { handle } => path_bool_lib::PathSegment::Quadratic(bezier.start, handle, bezier.end), - bezier_rs::BezierHandles::Cubic { handle_start, handle_end } => path_bool_lib::PathSegment::Cubic(bezier.start, handle_start, handle_end, bezier.end), + let segment = |bezier: PathSeg| match bezier { + PathSeg::Line(line) => path_bool_lib::PathSegment::Line(point_to_dvec2(line.p0), point_to_dvec2(line.p1)), + PathSeg::Quad(quad_bez) => path_bool_lib::PathSegment::Quadratic(point_to_dvec2(quad_bez.p0), point_to_dvec2(quad_bez.p1), point_to_dvec2(quad_bez.p2)), + PathSeg::Cubic(cubic_bez) => path_bool_lib::PathSegment::Cubic(point_to_dvec2(cubic_bez.p0), point_to_dvec2(cubic_bez.p1), point_to_dvec2(cubic_bez.p2), point_to_dvec2(cubic_bez.p3)), }; click_targets .filter_map(|target| { @@ -2963,7 +3033,7 @@ fn click_targets_to_path_lib_segments<'a>(click_targets: impl Iterator ClickXRayIter<'a> { /// Handles the checking of the layer where the target is a rect or path fn check_layer_area_target(&mut self, click_targets: Option<&Vec>, clip: bool, layer: LayerNodeIdentifier, path: Vec, transform: DAffine2) -> XRayResult { - // Convert back to Bezier-rs types for intersections + // Convert back to Kurbo types for intersections let segment = |bezier: &path_bool_lib::PathSegment| match *bezier { - path_bool_lib::PathSegment::Line(start, end) => bezier_rs::Bezier::from_linear_dvec2(start, end), - path_bool_lib::PathSegment::Cubic(start, h1, h2, end) => bezier_rs::Bezier::from_cubic_dvec2(start, h1, h2, end), - path_bool_lib::PathSegment::Quadratic(start, h1, end) => bezier_rs::Bezier::from_quadratic_dvec2(start, h1, end), + path_bool_lib::PathSegment::Line(start, end) => PathSeg::Line(Line::new(dvec2_to_point(start), dvec2_to_point(end))), + path_bool_lib::PathSegment::Cubic(start, h1, h2, end) => PathSeg::Cubic(CubicBez::new(dvec2_to_point(start), dvec2_to_point(h1), dvec2_to_point(h2), dvec2_to_point(end))), + path_bool_lib::PathSegment::Quadratic(start, h1, end) => PathSeg::Quad(QuadBez::new(dvec2_to_point(start), dvec2_to_point(h1), dvec2_to_point(end))), path_bool_lib::PathSegment::Arc(_, _, _, _, _, _, _) => unimplemented!(), }; let get_clip = || path.iter().map(segment); @@ -3039,48 +3109,52 @@ impl<'a> ClickXRayIter<'a> { XRayTarget::Quad(quad) => self.check_layer_area_target(click_targets, clip, layer, quad_to_path_lib_segments(*quad), transform), XRayTarget::Path(path) => self.check_layer_area_target(click_targets, clip, layer, path.clone(), transform), XRayTarget::Polygon(polygon) => { - let polygon = polygon.iter_closed().map(|line| path_bool_lib::PathSegment::Line(line.start, line.end)).collect(); + let polygon = polygon + .iter_closed() + .map(|line| path_bool_lib::PathSegment::Line(point_to_dvec2(line.start()), point_to_dvec2(line.end()))) + .collect(); self.check_layer_area_target(click_targets, clip, layer, polygon, transform) } } } } -pub fn navigation_controls(ptz: &PTZ, navigation_handler: &NavigationMessageHandler, node_graph: bool) -> Vec { +pub fn navigation_controls(ptz: &PTZ, navigation_handler: &NavigationMessageHandler, node_graph: bool) -> Vec { let mut list = vec![ IconButton::new("ZoomIn", 24) - .tooltip("Zoom In") - .tooltip_shortcut(action_keys!(NavigationMessageDiscriminant::CanvasZoomIncrease)) + .tooltip_label("Zoom In") + .tooltip_shortcut(action_shortcut!(NavigationMessageDiscriminant::CanvasZoomIncrease)) .on_update(|_| NavigationMessage::CanvasZoomIncrease { center_on_mouse: false }.into()) - .widget_holder(), + .widget_instance(), IconButton::new("ZoomOut", 24) - .tooltip("Zoom Out") - .tooltip_shortcut(action_keys!(NavigationMessageDiscriminant::CanvasZoomDecrease)) + .tooltip_label("Zoom Out") + .tooltip_shortcut(action_shortcut!(NavigationMessageDiscriminant::CanvasZoomDecrease)) .on_update(|_| NavigationMessage::CanvasZoomDecrease { center_on_mouse: false }.into()) - .widget_holder(), + .widget_instance(), IconButton::new("ZoomReset", 24) - .tooltip("Reset Tilt and Zoom to 100%") - .tooltip_shortcut(action_keys!(NavigationMessageDiscriminant::CanvasTiltResetAndZoomTo100Percent)) + .tooltip_label("Reset Tilt and Zoom to 100%") + .tooltip_shortcut(action_shortcut!(NavigationMessageDiscriminant::CanvasTiltResetAndZoomTo100Percent)) .on_update(|_| NavigationMessage::CanvasTiltResetAndZoomTo100Percent.into()) .disabled(ptz.tilt().abs() < 1e-4 && (ptz.zoom() - 1.).abs() < 1e-4) - .widget_holder(), + .widget_instance(), ]; if ptz.flip && !node_graph { list.push( IconButton::new("Reverse", 24) - .tooltip("Flip the canvas back to its standard orientation") - .tooltip_shortcut(action_keys!(NavigationMessageDiscriminant::CanvasFlip)) + .tooltip_label("Unflip Canvas") + .tooltip_description("Flip the canvas back to its standard orientation.") + .tooltip_shortcut(action_shortcut!(NavigationMessageDiscriminant::CanvasFlip)) .on_update(|_| NavigationMessage::CanvasFlip.into()) - .widget_holder(), + .widget_instance(), ); } list.extend([ - Separator::new(SeparatorType::Related).widget_holder(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(navigation_handler.snapped_zoom(ptz.zoom()) * 100.)) .unit("%") .min(0.000001) .max(1000000.) - .tooltip(if node_graph { "Node Graph Zoom" } else { "Canvas Zoom" }) + .tooltip_label(if node_graph { "Node Graph Zoom" } else { "Canvas Zoom" }) .on_update(|number_input: &NumberInput| { NavigationMessage::CanvasZoomSet { zoom_factor: number_input.value.unwrap() / 100., @@ -3090,7 +3164,7 @@ pub fn navigation_controls(ptz: &PTZ, navigation_handler: &NavigationMessageHand .increment_behavior(NumberInputIncrementBehavior::Callback) .increment_callback_decrease(|_| NavigationMessage::CanvasZoomDecrease { center_on_mouse: false }.into()) .increment_callback_increase(|_| NavigationMessage::CanvasZoomIncrease { center_on_mouse: false }.into()) - .widget_holder(), + .widget_instance(), ]); list } diff --git a/editor/src/messages/portfolio/document/graph_operation/graph_operation_message.rs b/editor/src/messages/portfolio/document/graph_operation/graph_operation_message.rs index afd1c819b..8ebde695b 100644 --- a/editor/src/messages/portfolio/document/graph_operation/graph_operation_message.rs +++ b/editor/src/messages/portfolio/document/graph_operation/graph_operation_message.rs @@ -2,13 +2,13 @@ use super::utility_types::TransformIn; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::network_interface::NodeTemplate; use crate::messages::prelude::*; -use bezier_rs::Subpath; use glam::{DAffine2, IVec2}; use graph_craft::document::NodeId; use graphene_std::Artboard; use graphene_std::brush::brush_stroke::BrushStroke; use graphene_std::raster::BlendMode; use graphene_std::raster_types::{CPU, Raster}; +use graphene_std::subpath::Subpath; use graphene_std::table::Table; use graphene_std::text::{Font, TypesettingConfig}; use graphene_std::vector::PointId; diff --git a/editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs b/editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs index c6ecabaa4..67dc579b8 100644 --- a/editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs +++ b/editor/src/messages/portfolio/document/graph_operation/graph_operation_message_handler.rs @@ -7,10 +7,12 @@ use crate::messages::portfolio::document::utility_types::nodes::CollapsedLayers; use crate::messages::prelude::*; use crate::messages::tool::common_functionality::graph_modification_utils::get_clip_mode; use glam::{DAffine2, DVec2, IVec2}; +use graph_craft::document::value::TaggedValue; use graph_craft::document::{NodeId, NodeInput}; use graphene_std::Color; use graphene_std::renderer::Quad; use graphene_std::renderer::convert_usvg_path::convert_usvg_path; +use graphene_std::table::Table; use graphene_std::text::{Font, TypesettingConfig}; use graphene_std::vector::style::{Fill, Gradient, GradientStops, GradientType, PaintOrder, Stroke, StrokeAlign, StrokeCap, StrokeJoin}; @@ -108,6 +110,7 @@ impl MessageHandler> for GraphOperationMessage::NewArtboard { id, artboard } => { let mut modify_inputs = ModifyInputsContext::new(network_interface, responses); + let artboard_location = artboard.location; let artboard_layer = modify_inputs.create_artboard(id, artboard); network_interface.move_layer_to_stack(artboard_layer, LayerNodeIdentifier::ROOT_PARENT, 0, &[]); @@ -116,13 +119,41 @@ impl MessageHandler> for log::error!("Artboard not created"); return; }; + let document_metadata = network_interface.document_metadata(); + let primary_input = artboard.inputs.first().expect("Artboard should have a primary input").clone(); if let NodeInput::Node { node_id, .. } = &primary_input { - if network_interface.is_layer(node_id, &[]) && !network_interface.is_artboard(node_id, &[]) { - network_interface.move_layer_to_stack(LayerNodeIdentifier::new(*node_id, network_interface), artboard_layer, 0, &[]); + if network_interface.is_artboard(node_id, &[]) { + // Nothing to do here: we have a stack full of artboards! + } else if network_interface.is_layer(node_id, &[]) { + // We have a stack of non-layer artboards. + for (insert_index, layer) in LayerNodeIdentifier::ROOT_PARENT.children(document_metadata).filter(|&layer| layer != artboard_layer).enumerate() { + // Parent the layer to our new artboard (retaining ordering) + responses.add(NodeGraphMessage::MoveLayerToStack { + layer, + parent: artboard_layer, + insert_index, + }); + // Apply a translation to prevent the content from shifting + responses.add(GraphOperationMessage::TransformChange { + layer, + transform: DAffine2::from_translation(-artboard_location.as_dvec2()), + transform_in: TransformIn::Local, + skip_rerender: true, + }); + } + + // Set the bottom input of the artboard back to artboard + let bottom_input = NodeInput::value(TaggedValue::Artboard(Table::new()), true); + network_interface.set_input(&InputConnector::node(artboard_layer.to_node(), 0), bottom_input, &[]); } else { + // We have some non layers (e.g. just a rectangle node). We disconnect the bottom input and connect it to the left input. network_interface.disconnect_input(&InputConnector::node(artboard_layer.to_node(), 0), &[]); - network_interface.set_input(&InputConnector::node(id, 0), primary_input, &[]); + network_interface.set_input(&InputConnector::node(artboard_layer.to_node(), 1), primary_input, &[]); + + // Set the bottom input of the artboard back to artboard + let bottom_input = NodeInput::value(TaggedValue::Artboard(Table::new()), true); + network_interface.set_input(&InputConnector::node(artboard_layer.to_node(), 0), bottom_input, &[]); } } responses.add_front(NodeGraphMessage::SelectedNodesSet { nodes: vec![id] }); @@ -426,7 +457,6 @@ fn apply_usvg_fill(fill: &usvg::Fill, modify_inputs: &mut ModifyInputsContext, t Fill::Gradient(Gradient { start, end, - transform: DAffine2::IDENTITY, gradient_type: GradientType::Linear, stops, }) @@ -453,7 +483,6 @@ fn apply_usvg_fill(fill: &usvg::Fill, modify_inputs: &mut ModifyInputsContext, t Fill::Gradient(Gradient { start, end, - transform: DAffine2::IDENTITY, gradient_type: GradientType::Radial, stops, }) diff --git a/editor/src/messages/portfolio/document/graph_operation/transform_utils.rs b/editor/src/messages/portfolio/document/graph_operation/transform_utils.rs index 2b3639516..db4e110e7 100644 --- a/editor/src/messages/portfolio/document/graph_operation/transform_utils.rs +++ b/editor/src/messages/portfolio/document/graph_operation/transform_utils.rs @@ -1,8 +1,8 @@ use crate::messages::portfolio::document::utility_types::network_interface::{InputConnector, NodeNetworkInterface}; -use bezier_rs::Subpath; use glam::{DAffine2, DVec2}; use graph_craft::document::value::TaggedValue; use graph_craft::document::{NodeId, NodeInput}; +use graphene_std::subpath::Subpath; use graphene_std::vector::PointId; /// Convert an affine transform into the tuple `(scale, angle, translation, shear)` assuming `shear.y = 0`. @@ -32,10 +32,13 @@ pub fn compute_scale_angle_translation_shear(transform: DAffine2) -> (DVec2, f64 /// Update the inputs of the transform node to match a new transform pub fn update_transform(network_interface: &mut NodeNetworkInterface, node_id: &NodeId, transform: DAffine2) { - let (scale, angle, translation, shear) = compute_scale_angle_translation_shear(transform); + let (scale, rotation, translation, shear) = compute_scale_angle_translation_shear(transform); + + let rotation = rotation.to_degrees(); + let shear = DVec2::new(shear.x.atan().to_degrees(), shear.y.atan().to_degrees()); network_interface.set_input(&InputConnector::node(*node_id, 1), NodeInput::value(TaggedValue::DVec2(translation), false), &[]); - network_interface.set_input(&InputConnector::node(*node_id, 2), NodeInput::value(TaggedValue::F64(angle), false), &[]); + network_interface.set_input(&InputConnector::node(*node_id, 2), NodeInput::value(TaggedValue::F64(rotation), false), &[]); network_interface.set_input(&InputConnector::node(*node_id, 3), NodeInput::value(TaggedValue::DVec2(scale), false), &[]); network_interface.set_input(&InputConnector::node(*node_id, 4), NodeInput::value(TaggedValue::DVec2(shear), false), &[]); } @@ -76,14 +79,14 @@ pub fn get_current_transform(inputs: &[NodeInput]) -> DAffine2 { } else { DVec2::ZERO }; - - let angle = if let Some(&TaggedValue::F64(angle)) = inputs[2].as_value() { angle } else { 0. }; - + let rotation = if let Some(&TaggedValue::F64(rotation)) = inputs[2].as_value() { rotation } else { 0. }; let scale = if let Some(&TaggedValue::DVec2(scale)) = inputs[3].as_value() { scale } else { DVec2::ONE }; - let shear = if let Some(&TaggedValue::DVec2(shear)) = inputs[4].as_value() { shear } else { DVec2::ZERO }; - DAffine2::from_scale_angle_translation(scale, angle, translation) * DAffine2::from_cols_array(&[1., shear.y, shear.x, 1., 0., 0.]) + let rotation = rotation.to_radians(); + let shear = DVec2::new(shear.x.to_radians().tan(), shear.y.to_radians().tan()); + + DAffine2::from_scale_angle_translation(scale, rotation, translation) * DAffine2::from_cols_array(&[1., shear.y, shear.x, 1., 0., 0.]) } /// Extract the current normalized pivot from the layer @@ -91,6 +94,32 @@ pub fn get_current_normalized_pivot(inputs: &[NodeInput]) -> DVec2 { if let Some(&TaggedValue::DVec2(pivot)) = inputs[5].as_value() { pivot } else { DVec2::splat(0.5) } } +/// Expand a bounds to avoid div zero errors +fn clamp_bounds(bounds_min: DVec2, mut bounds_max: DVec2) -> [DVec2; 2] { + let bounds_size = bounds_max - bounds_min; + if bounds_size.x < 1e-10 { + bounds_max.x = bounds_min.x + 1.; + } + if bounds_size.y < 1e-10 { + bounds_max.y = bounds_min.y + 1.; + } + [bounds_min, bounds_max] +} +/// Returns corners of all subpaths +fn subpath_bounds(subpaths: &[Subpath]) -> [DVec2; 2] { + subpaths + .iter() + .filter_map(|subpath| subpath.bounding_box()) + .reduce(|b1, b2| [b1[0].min(b2[0]), b1[1].max(b2[1])]) + .unwrap_or_default() +} + +/// Returns corners of all subpaths (but expanded to avoid division-by-zero errors) +pub fn nonzero_subpath_bounds(subpaths: &[Subpath]) -> [DVec2; 2] { + let [bounds_min, bounds_max] = subpath_bounds(subpaths); + clamp_bounds(bounds_min, bounds_max) +} + #[cfg(test)] mod tests { use super::*; @@ -138,29 +167,3 @@ mod tests { } } } - -/// Expand a bounds to avoid div zero errors -fn clamp_bounds(bounds_min: DVec2, mut bounds_max: DVec2) -> [DVec2; 2] { - let bounds_size = bounds_max - bounds_min; - if bounds_size.x < 1e-10 { - bounds_max.x = bounds_min.x + 1.; - } - if bounds_size.y < 1e-10 { - bounds_max.y = bounds_min.y + 1.; - } - [bounds_min, bounds_max] -} -/// Returns corners of all subpaths -fn subpath_bounds(subpaths: &[Subpath]) -> [DVec2; 2] { - subpaths - .iter() - .filter_map(|subpath| subpath.bounding_box()) - .reduce(|b1, b2| [b1[0].min(b2[0]), b1[1].max(b2[1])]) - .unwrap_or_default() -} - -/// Returns corners of all subpaths (but expanded to avoid division-by-zero errors) -pub fn nonzero_subpath_bounds(subpaths: &[Subpath]) -> [DVec2; 2] { - let [bounds_min, bounds_max] = subpath_bounds(subpaths); - clamp_bounds(bounds_min, bounds_max) -} diff --git a/editor/src/messages/portfolio/document/graph_operation/utility_types.rs b/editor/src/messages/portfolio/document/graph_operation/utility_types.rs index a988c6f1f..8ecc08624 100644 --- a/editor/src/messages/portfolio/document/graph_operation/utility_types.rs +++ b/editor/src/messages/portfolio/document/graph_operation/utility_types.rs @@ -3,7 +3,6 @@ use crate::messages::portfolio::document::node_graph::document_node_definitions: use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::network_interface::{self, InputConnector, NodeNetworkInterface, OutputConnector}; use crate::messages::prelude::*; -use bezier_rs::Subpath; use glam::{DAffine2, IVec2}; use graph_craft::concrete; use graph_craft::document::value::TaggedValue; @@ -12,6 +11,7 @@ use graphene_std::Artboard; use graphene_std::brush::brush_stroke::BrushStroke; use graphene_std::raster::BlendMode; use graphene_std::raster_types::{CPU, Raster}; +use graphene_std::subpath::Subpath; use graphene_std::table::Table; use graphene_std::text::{Font, TypesettingConfig}; use graphene_std::vector::Vector; @@ -135,7 +135,7 @@ impl<'a> ModifyInputsContext<'a> { Some(NodeInput::value(TaggedValue::Graphic(Default::default()), true)), Some(NodeInput::value(TaggedValue::DVec2(artboard.location.into()), false)), Some(NodeInput::value(TaggedValue::DVec2(artboard.dimensions.into()), false)), - Some(NodeInput::value(TaggedValue::Color(artboard.background), false)), + Some(NodeInput::value(TaggedValue::Color(Table::new_from_element(artboard.background)), false)), Some(NodeInput::value(TaggedValue::Bool(artboard.clip), false)), ]); self.network_interface.insert_node(new_id, artboard_node_template, &[]); @@ -303,8 +303,8 @@ impl<'a> ModifyInputsContext<'a> { // If inserting a 'Path' node, insert a 'Flatten Path' node if the type is `Graphic`. // TODO: Allow the 'Path' node to operate on table data by utilizing the reference (index or ID?) for each row. if node_definition.identifier == "Path" { - let layer_input_type = self.network_interface.input_type(&InputConnector::node(output_layer.to_node(), 1), &[]).0.nested_type().clone(); - if layer_input_type == concrete!(Table) { + let layer_input_type = self.network_interface.input_type(&InputConnector::node(output_layer.to_node(), 1), &[]); + if layer_input_type.compiled_nested_type() == Some(&concrete!(Table)) { let Some(flatten_path_definition) = resolve_document_node_type("Flatten Path") else { log::error!("Flatten Path does not exist in ModifyInputsContext::existing_node_id"); return None; @@ -329,11 +329,11 @@ impl<'a> ModifyInputsContext<'a> { match &fill { Fill::None => { let input_connector = InputConnector::node(fill_node_id, backup_color_index); - self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::OptionalColor(None), false), true); + self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::Color(Table::new()), false), true); } Fill::Solid(color) => { let input_connector = InputConnector::node(fill_node_id, backup_color_index); - self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::OptionalColor(Some(*color)), false), true); + self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::Color(Table::new_from_element(*color)), false), true); } Fill::Gradient(gradient) => { let input_connector = InputConnector::node(fill_node_id, backup_gradient_index); @@ -372,8 +372,10 @@ impl<'a> ModifyInputsContext<'a> { pub fn stroke_set(&mut self, stroke: Stroke) { let Some(stroke_node_id) = self.existing_node_id("Stroke", true) else { return }; - let input_connector = InputConnector::node(stroke_node_id, graphene_std::vector::stroke::ColorInput::>::INDEX); - self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::OptionalColor(stroke.color), false), true); + let stroke_color = if let Some(color) = stroke.color { Table::new_from_element(color) } else { Table::new() }; + + let input_connector = InputConnector::node(stroke_node_id, graphene_std::vector::stroke::ColorInput::INDEX); + self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::Color(stroke_color), false), true); let input_connector = InputConnector::node(stroke_node_id, graphene_std::vector::stroke::WeightInput::INDEX); self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::F64(stroke.weight), false), true); let input_connector = InputConnector::node(stroke_node_id, graphene_std::vector::stroke::AlignInput::INDEX); @@ -386,7 +388,7 @@ impl<'a> ModifyInputsContext<'a> { self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::F64(stroke.join_miter_limit), false), false); let input_connector = InputConnector::node(stroke_node_id, graphene_std::vector::stroke::PaintOrderInput::INDEX); self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::PaintOrder(stroke.paint_order), false), false); - let input_connector = InputConnector::node(stroke_node_id, graphene_std::vector::stroke::DashLengthsInput::INDEX); + let input_connector = InputConnector::node(stroke_node_id, graphene_std::vector::stroke::DashLengthsInput::>::INDEX); self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::VecF64(stroke.dash_lengths), false), true); let input_connector = InputConnector::node(stroke_node_id, graphene_std::vector::stroke::DashOffsetInput::INDEX); self.set_input_with_refresh(input_connector, NodeInput::value(TaggedValue::F64(stroke.dash_offset), false), true); diff --git a/editor/src/messages/portfolio/document/mod.rs b/editor/src/messages/portfolio/document/mod.rs index 4099a584f..767126b24 100644 --- a/editor/src/messages/portfolio/document/mod.rs +++ b/editor/src/messages/portfolio/document/mod.rs @@ -1,6 +1,7 @@ mod document_message; mod document_message_handler; +pub mod data_panel; pub mod graph_operation; pub mod navigation; pub mod node_graph; diff --git a/editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs b/editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs index e01e1195e..00e280b51 100644 --- a/editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs +++ b/editor/src/messages/portfolio/document/navigation/navigation_message_handler.rs @@ -8,6 +8,7 @@ use crate::messages::input_mapper::utility_types::input_mouse::ViewportPosition; use crate::messages::portfolio::document::navigation::utility_types::NavigationOperation; use crate::messages::portfolio::document::utility_types::misc::PTZ; use crate::messages::portfolio::document::utility_types::network_interface::NodeNetworkInterface; +use crate::messages::portfolio::utility_types::KeyboardPlatformLayout; use crate::messages::prelude::*; use crate::messages::tool::utility_types::{HintData, HintGroup, HintInfo}; use glam::{DAffine2, DVec2}; @@ -21,6 +22,7 @@ pub struct NavigationMessageContext<'a> { pub document_ptz: &'a mut PTZ, pub graph_view_overlay_open: bool, pub preferences: &'a PreferencesMessageHandler, + pub viewport: &'a ViewportMessageHandler, } #[derive(Debug, Clone, PartialEq, Default, ExtractField)] @@ -41,6 +43,7 @@ impl MessageHandler> for Navigat document_ptz, graph_view_overlay_open, preferences, + viewport, } = context; fn get_ptz<'a>(document_ptz: &'a PTZ, network_interface: &'a NodeNetworkInterface, graph_view_overlay_open: bool, breadcrumb_network_path: &[NodeId]) -> Option<&'a PTZ> { @@ -74,9 +77,7 @@ impl MessageHandler> for Navigat NavigationMessage::BeginCanvasPan => { responses.add(FrontendMessage::UpdateMouseCursor { cursor: MouseCursorIcon::Grabbing }); - responses.add(FrontendMessage::UpdateInputHints { - hint_data: HintData(vec![HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()])]), - }); + HintData(vec![HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()])]).send_layout(responses); self.mouse_position = ipp.mouse.position; let Some(ptz) = get_ptz(document_ptz, network_interface, graph_view_overlay_open, breadcrumb_network_path) else { @@ -93,12 +94,11 @@ impl MessageHandler> for Navigat responses.add(NavigationMessage::BeginCanvasPan); } else { responses.add(FrontendMessage::UpdateMouseCursor { cursor: MouseCursorIcon::Default }); - responses.add(FrontendMessage::UpdateInputHints { - hint_data: HintData(vec![ - HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]), - HintGroup(vec![HintInfo::keys([Key::Shift], "15ยฐ Increments")]), - ]), - }); + HintData(vec![ + HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]), + HintGroup(vec![HintInfo::keys([Key::Shift], "15ยฐ Increments")]), + ]) + .send_layout(responses); self.navigation_operation = NavigationOperation::Tilt { tilt_original_for_abort: ptz.tilt(), @@ -116,12 +116,11 @@ impl MessageHandler> for Navigat }; responses.add(FrontendMessage::UpdateMouseCursor { cursor: MouseCursorIcon::ZoomIn }); - responses.add(FrontendMessage::UpdateInputHints { - hint_data: HintData(vec![ - HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]), - HintGroup(vec![HintInfo::keys([Key::Shift], "Increments")]), - ]), - }); + HintData(vec![ + HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]), + HintGroup(vec![HintInfo::keys([Key::Shift], "Increments")]), + ]) + .send_layout(responses); self.navigation_operation = NavigationOperation::Zoom { zoom_raw_not_snapped: ptz.zoom(), @@ -135,11 +134,11 @@ impl MessageHandler> for Navigat log::error!("Could not get PTZ in CanvasPan"); return; }; - let document_to_viewport = self.calculate_offset_transform(ipp.viewport_bounds.center(), ptz); + let document_to_viewport = self.calculate_offset_transform(viewport.center_in_viewport_space().into_dvec2(), ptz); let transformed_delta = document_to_viewport.inverse().transform_vector2(delta); ptz.pan += transformed_delta; - responses.add(BroadcastEvent::CanvasTransformed); + responses.add(EventMessage::CanvasTransformed); responses.add(DocumentMessage::PTZUpdate); } NavigationMessage::CanvasPanAbortPrepare { x_not_y_axis } => { @@ -169,16 +168,22 @@ impl MessageHandler> for Navigat log::error!("Could not get node graph PTZ in CanvasPanByViewportFraction"); return; }; - let document_to_viewport = self.calculate_offset_transform(ipp.viewport_bounds.center(), ptz); - let transformed_delta = document_to_viewport.inverse().transform_vector2(delta * ipp.viewport_bounds.size()); + let document_to_viewport = self.calculate_offset_transform(viewport.center_in_viewport_space().into_dvec2(), ptz); + let transformed_delta = document_to_viewport.inverse().transform_vector2(delta * viewport.size().into_dvec2()); ptz.pan += transformed_delta; responses.add(DocumentMessage::PTZUpdate); } NavigationMessage::CanvasPanMouseWheel { use_y_as_x } => { - let delta = if use_y_as_x { (-ipp.mouse.scroll_delta.y, 0.).into() } else { -ipp.mouse.scroll_delta.as_dvec2() } * VIEWPORT_SCROLL_RATE; + // On Mac, the OS already converts Shift+scroll into horizontal scrolling + let keyboard_platform = GLOBAL_PLATFORM.get().copied().unwrap_or_default().as_keyboard_platform_layout(); + + let delta = if use_y_as_x && keyboard_platform == KeyboardPlatformLayout::Standard { + (ipp.mouse.scroll_delta.y, 0.).into() + } else { + ipp.mouse.scroll_delta.as_dvec2() + } * -VIEWPORT_SCROLL_RATE; responses.add(NavigationMessage::CanvasPan { delta }); - responses.add(NodeGraphMessage::SetGridAlignedEdges); } NavigationMessage::CanvasTiltResetAndZoomTo100Percent => { let Some(ptz) = get_ptz_mut(document_ptz, network_interface, graph_view_overlay_open, breadcrumb_network_path) else { @@ -193,7 +198,6 @@ impl MessageHandler> for Navigat responses.add(PortfolioMessage::UpdateDocumentWidgets); } responses.add(DocumentMessage::PTZUpdate); - responses.add(NodeGraphMessage::SetGridAlignedEdges); } NavigationMessage::CanvasTiltSet { angle_radians } => { let Some(ptz) = get_ptz_mut(document_ptz, network_interface, graph_view_overlay_open, breadcrumb_network_path) else { @@ -214,7 +218,7 @@ impl MessageHandler> for Navigat let new_scale = *VIEWPORT_ZOOM_LEVELS.iter().rev().find(|scale| **scale < ptz.zoom()).unwrap_or(&ptz.zoom()); if center_on_mouse { - responses.add(self.center_zoom(ipp.viewport_bounds.size(), new_scale / ptz.zoom(), ipp.mouse.position)); + responses.add(self.center_zoom(viewport.size().into(), new_scale / ptz.zoom(), ipp.mouse.position)); } responses.add(NavigationMessage::CanvasZoomSet { zoom_factor: new_scale }); } @@ -225,7 +229,7 @@ impl MessageHandler> for Navigat let new_scale = *VIEWPORT_ZOOM_LEVELS.iter().find(|scale| **scale > ptz.zoom()).unwrap_or(&ptz.zoom()); if center_on_mouse { - responses.add(self.center_zoom(ipp.viewport_bounds.size(), new_scale / ptz.zoom(), ipp.mouse.position)); + responses.add(self.center_zoom(viewport.size().into(), new_scale / ptz.zoom(), ipp.mouse.position)); } responses.add(NavigationMessage::CanvasZoomSet { zoom_factor: new_scale }); } @@ -245,9 +249,9 @@ impl MessageHandler> for Navigat return; }; - zoom_factor *= Self::clamp_zoom(ptz.zoom() * zoom_factor, document_bounds, old_zoom, ipp); + zoom_factor *= Self::clamp_zoom(ptz.zoom() * zoom_factor, document_bounds, old_zoom, viewport); - responses.add(self.center_zoom(ipp.viewport_bounds.size(), zoom_factor, ipp.mouse.position)); + responses.add(self.center_zoom(viewport.size().into(), zoom_factor, ipp.mouse.position)); responses.add(NavigationMessage::CanvasZoomSet { zoom_factor: ptz.zoom() * zoom_factor, }); @@ -264,7 +268,7 @@ impl MessageHandler> for Navigat return; }; let zoom = zoom_factor.clamp(VIEWPORT_ZOOM_SCALE_MIN, VIEWPORT_ZOOM_SCALE_MAX); - let zoom = zoom * Self::clamp_zoom(zoom, document_bounds, old_zoom, ipp); + let zoom = zoom * Self::clamp_zoom(zoom, document_bounds, old_zoom, viewport); ptz.set_zoom(zoom); if graph_view_overlay_open { responses.add(NodeGraphMessage::UpdateGraphBarRight); @@ -272,7 +276,6 @@ impl MessageHandler> for Navigat responses.add(PortfolioMessage::UpdateDocumentWidgets); } responses.add(DocumentMessage::PTZUpdate); - responses.add(NodeGraphMessage::SetGridAlignedEdges); } NavigationMessage::CanvasFlip => { if graph_view_overlay_open { @@ -286,7 +289,7 @@ impl MessageHandler> for Navigat ptz.flip = !ptz.flip; responses.add(DocumentMessage::PTZUpdate); - responses.add(BroadcastEvent::CanvasTransformed); + responses.add(EventMessage::CanvasTransformed); responses.add(MenuBarMessage::SendLayout); responses.add(PortfolioMessage::UpdateDocumentWidgets); } @@ -320,12 +323,11 @@ impl MessageHandler> for Navigat } else { responses.add(PortfolioMessage::UpdateDocumentWidgets); } - responses.add(NodeGraphMessage::SetGridAlignedEdges); // Reset the navigation operation now that it's done self.navigation_operation = NavigationOperation::None; // Send the final messages to close out the operation - responses.add(BroadcastEvent::CanvasTransformed); + responses.add(EventMessage::CanvasTransformed); responses.add(ToolMessage::UpdateCursor); responses.add(ToolMessage::UpdateHints); responses.add(NavigateToolMessage::End); @@ -343,7 +345,7 @@ impl MessageHandler> for Navigat let (pos1, pos2) = (pos1.min(pos2), pos1.max(pos2)); let diagonal = pos2 - pos1; - if diagonal.length() < f64::EPSILON * 1000. || ipp.viewport_bounds.size() == DVec2::ZERO { + if diagonal.length() < f64::EPSILON * 1000. || viewport.size().into_dvec2() == DVec2::ZERO { warn!("Cannot center since the viewport size is 0"); return; } @@ -352,10 +354,10 @@ impl MessageHandler> for Navigat log::error!("Could not get node graph PTZ in CanvasPanByViewportFraction"); return; }; - let document_to_viewport = self.calculate_offset_transform(ipp.viewport_bounds.center(), ptz); + let document_to_viewport = self.calculate_offset_transform(viewport.center_in_viewport_space().into_dvec2(), ptz); let v1 = document_to_viewport.inverse().transform_point2(DVec2::ZERO); - let v2 = document_to_viewport.inverse().transform_point2(ipp.viewport_bounds.size()); + let v2 = document_to_viewport.inverse().transform_point2(viewport.size().into_dvec2()); let center = ((v2 + v1) - (pos2 + pos1)) / 2.; let size = (v2 - v1) / diagonal; @@ -382,7 +384,6 @@ impl MessageHandler> for Navigat responses.add(PortfolioMessage::UpdateDocumentWidgets); } responses.add(DocumentMessage::PTZUpdate); - responses.add(NodeGraphMessage::SetGridAlignedEdges); } // Fully zooms in on the selected NavigationMessage::FitViewportToSelection => { @@ -397,7 +398,8 @@ impl MessageHandler> for Navigat log::error!("Could not get node graph PTZ in FitViewportToSelection"); return; }; - let document_to_viewport = self.calculate_offset_transform(ipp.viewport_bounds.center(), ptz); + + let document_to_viewport = self.calculate_offset_transform(viewport.center_in_viewport_space().into_dvec2(), ptz); responses.add(NavigationMessage::FitViewportToBounds { bounds: [document_to_viewport.inverse().transform_point2(bounds[0]), document_to_viewport.inverse().transform_point2(bounds[1])], prevent_zoom_past_100: false, @@ -419,7 +421,7 @@ impl MessageHandler> for Navigat let tilt_raw_not_snapped = { // Compute the angle in document space to counter for the canvas being flipped let viewport_to_document = network_interface.document_metadata().document_to_viewport.inverse(); - let half_viewport = ipp.viewport_bounds.size() / 2.; + let half_viewport = viewport.center_in_viewport_space().into_dvec2(); let start_offset = viewport_to_document.transform_vector2(self.mouse_position - half_viewport); let end_offset = viewport_to_document.transform_vector2(ipp.mouse.position - half_viewport); let angle = start_offset.angle_to(end_offset); @@ -459,7 +461,7 @@ impl MessageHandler> for Navigat network_interface.graph_bounds_viewport_space(breadcrumb_network_path) }; - updated_zoom * Self::clamp_zoom(updated_zoom, document_bounds, old_zoom, ipp) + updated_zoom * Self::clamp_zoom(updated_zoom, document_bounds, old_zoom, viewport) }; let Some(ptz) = get_ptz_mut(document_ptz, network_interface, graph_view_overlay_open, breadcrumb_network_path) else { log::error!("Could not get mutable PTZ in Zoom"); @@ -476,7 +478,6 @@ impl MessageHandler> for Navigat }; responses.add(NavigationMessage::CanvasZoomSet { zoom_factor: ptz.zoom() }); - responses.add(NodeGraphMessage::SetGridAlignedEdges); } } @@ -563,9 +564,9 @@ impl NavigationMessageHandler { NavigationMessage::CanvasPan { delta }.into() } - pub fn clamp_zoom(zoom: f64, document_bounds: Option<[DVec2; 2]>, old_zoom: f64, ipp: &InputPreprocessorMessageHandler) -> f64 { + pub fn clamp_zoom(zoom: f64, document_bounds: Option<[DVec2; 2]>, old_zoom: f64, viewport: &ViewportMessageHandler) -> f64 { let document_size = (document_bounds.map(|[min, max]| max - min).unwrap_or_default() / old_zoom) * zoom; - let scale_factor = (document_size / ipp.viewport_bounds.size()).max_element(); + let scale_factor = (document_size / viewport.size().into_dvec2()).max_element(); if scale_factor <= f64::EPSILON * 100. || !scale_factor.is_finite() || scale_factor >= VIEWPORT_ZOOM_MIN_FRACTION_COVER { return 1.; diff --git a/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs b/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs index 1082f083a..16cf2983a 100644 --- a/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs +++ b/editor/src/messages/portfolio/document/node_graph/document_node_definitions.rs @@ -46,7 +46,7 @@ impl NodePropertiesContext<'_> { return None; }; widget_override_lambda(*node_id, index, self) - .map_err(|error| log::error!("Error in widget override lambda: {}", error)) + .map_err(|error| log::error!("Error in widget override lambda: {error}")) .ok() } else { None @@ -111,7 +111,7 @@ fn static_nodes() -> Vec { document_node: DocumentNode { implementation: DocumentNodeImplementation::ProtoNode(memo::monitor::IDENTIFIER), inputs: vec![NodeInput::value(TaggedValue::None, true)], - manual_composition: Some(generic!(T)), + call_argument: generic!(T), skip_deduplication: true, ..Default::default() }, @@ -137,7 +137,7 @@ fn static_nodes() -> Vec { ..Default::default() }, }, - description: Cow::Borrowed("A default node network you can use to create your own custom nodes."), + description: Cow::Borrowed("An empty node network you can use to create your own custom nodes."), properties: None, }, DocumentNodeDefinition { @@ -145,80 +145,22 @@ fn static_nodes() -> Vec { category: "General", node_template: NodeTemplate { document_node: DocumentNode { - implementation: DocumentNodeImplementation::Network(NodeNetwork { - exports: vec![NodeInput::node(NodeId(2), 0)], - nodes: [ - DocumentNode { - inputs: vec![NodeInput::network(generic!(T), 0)], - implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER), - manual_composition: Some(generic!(T)), - ..Default::default() - }, - DocumentNode { - inputs: vec![NodeInput::node(NodeId(0), 0)], - implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::freeze_real_time::IDENTIFIER), - manual_composition: Some(generic!(T)), - ..Default::default() - }, - DocumentNode { - inputs: vec![NodeInput::node(NodeId(1), 0)], - implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::boundless_footprint::IDENTIFIER), - manual_composition: Some(generic!(T)), - ..Default::default() - }, - ] - .into_iter() - .enumerate() - .map(|(id, node)| (NodeId(id as u64), node)) - .collect(), - ..Default::default() - }), inputs: vec![NodeInput::value(TaggedValue::None, true)], + implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER), + call_argument: generic!(T), ..Default::default() }, persistent_node_metadata: DocumentNodePersistentMetadata { - network_metadata: Some(NodeNetworkMetadata { - persistent_metadata: NodeNetworkPersistentMetadata { - node_metadata: [ - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Memoize".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)), - ..Default::default() - }, - ..Default::default() - }, - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Freeze Real Time".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)), - ..Default::default() - }, - ..Default::default() - }, - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Boundless Footprint".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)), - ..Default::default() - }, - ..Default::default() - }, - ] - .into_iter() - .enumerate() - .map(|(id, node)| (NodeId(id as u64), node)) - .collect(), - ..Default::default() - }, - ..Default::default() - }), input_metadata: vec![("Data", "TODO").into()], output_names: vec!["Data".to_string()], ..Default::default() }, }, - description: Cow::Borrowed("TODO"), + description: Cow::Borrowed( + "Improves rendering performance if used in rare circumstances where automatic caching is not yet advanced enough to handle the situation.\n\ + \n\ + Stores the last evaluated data that flowed through this node, and immediately returns that data on subsequent renders if the context has not changed.", + ), properties: None, }, DocumentNodeDefinition { @@ -231,35 +173,31 @@ fn static_nodes() -> Vec { nodes: [ // Primary (bottom) input type coercion DocumentNode { - inputs: vec![NodeInput::network(generic!(T), 0)], + inputs: vec![NodeInput::import(generic!(T), 0)], implementation: DocumentNodeImplementation::ProtoNode(graphic::to_graphic::IDENTIFIER), - manual_composition: Some(concrete!(Context)), ..Default::default() }, // Secondary (left) input type coercion DocumentNode { - inputs: vec![NodeInput::network(generic!(T), 1)], + inputs: vec![NodeInput::import(generic!(T), 1)], implementation: DocumentNodeImplementation::ProtoNode(graphic::wrap_graphic::IDENTIFIER), - manual_composition: Some(concrete!(Context)), ..Default::default() }, // Store the ID of the parent node (which encapsulates this sub-network) in each row we are extending the table with. DocumentNode { inputs: vec![NodeInput::node(NodeId(1), 0), NodeInput::Reflection(graph_craft::document::DocumentNodeMetadata::DocumentNodePath)], implementation: DocumentNodeImplementation::ProtoNode(graphic::source_node_id::IDENTIFIER), - manual_composition: Some(concrete!(Context)), ..Default::default() }, // The monitor node is used to display a thumbnail in the UI DocumentNode { inputs: vec![NodeInput::node(NodeId(2), 0)], implementation: DocumentNodeImplementation::ProtoNode(memo::monitor::IDENTIFIER), - manual_composition: Some(concrete!(Context)), skip_deduplication: true, ..Default::default() }, DocumentNode { - manual_composition: Some(generic!(T)), + call_argument: generic!(T), inputs: vec![NodeInput::node(NodeId(0), 0), NodeInput::node(NodeId(3), 0)], implementation: DocumentNodeImplementation::ProtoNode(graphic::extend::IDENTIFIER), ..Default::default() @@ -336,7 +274,7 @@ fn static_nodes() -> Vec { ..Default::default() }, }, - description: Cow::Borrowed("Merges new content as an entry into the graphic table that represents a layer compositing stack."), + description: Cow::Borrowed("Merges the provided content as a new element in the graphic table that represents a layer compositing stack."), properties: None, }, DocumentNodeDefinition { @@ -349,15 +287,15 @@ fn static_nodes() -> Vec { nodes: [ // Ensure this ID is kept in sync with the ID in set_alias so that the name input is kept in sync with the alias DocumentNode { - manual_composition: Some(generic!(T)), + call_argument: generic!(T), implementation: DocumentNodeImplementation::ProtoNode(artboard::create_artboard::IDENTIFIER), inputs: vec![ - NodeInput::network(concrete!(TaggedValue), 1), + NodeInput::import(concrete!(TaggedValue), 1), NodeInput::value(TaggedValue::String(String::from("Artboard")), false), - NodeInput::network(concrete!(TaggedValue), 2), - NodeInput::network(concrete!(TaggedValue), 3), - NodeInput::network(concrete!(TaggedValue), 4), - NodeInput::network(concrete!(TaggedValue), 5), + NodeInput::import(concrete!(TaggedValue), 2), + NodeInput::import(concrete!(TaggedValue), 3), + NodeInput::import(concrete!(TaggedValue), 4), + NodeInput::import(concrete!(TaggedValue), 5), ], ..Default::default() }, @@ -365,7 +303,6 @@ fn static_nodes() -> Vec { DocumentNode { inputs: vec![NodeInput::node(NodeId(0), 0), NodeInput::Reflection(graph_craft::document::DocumentNodeMetadata::DocumentNodePath)], implementation: DocumentNodeImplementation::ProtoNode(graphic::source_node_id::IDENTIFIER), - manual_composition: Some(concrete!(Context)), ..Default::default() }, // The monitor node is used to display a thumbnail in the UI. @@ -373,16 +310,14 @@ fn static_nodes() -> Vec { DocumentNode { inputs: vec![NodeInput::node(NodeId(1), 0)], implementation: DocumentNodeImplementation::ProtoNode(memo::monitor::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), skip_deduplication: true, ..Default::default() }, DocumentNode { - manual_composition: Some(concrete!(Context)), inputs: vec![ - NodeInput::network(graphene_std::Type::Fn(Box::new(concrete!(Context)), Box::new(concrete!(Table))), 0), + NodeInput::import(graphene_std::Type::Fn(Box::new(concrete!(Context)), Box::new(concrete!(Table))), 0), NodeInput::node(NodeId(2), 0), - NodeInput::Reflection(graph_craft::document::DocumentNodeMetadata::DocumentNodePath), ], implementation: DocumentNodeImplementation::ProtoNode(graphic::extend::IDENTIFIER), ..Default::default() @@ -399,7 +334,7 @@ fn static_nodes() -> Vec { NodeInput::value(TaggedValue::Graphic(Default::default()), true), NodeInput::value(TaggedValue::DVec2(DVec2::ZERO), false), NodeInput::value(TaggedValue::DVec2(DVec2::new(1920., 1080.)), false), - NodeInput::value(TaggedValue::Color(Color::WHITE), false), + NodeInput::value(TaggedValue::Color(Table::new_from_element(Color::WHITE)), false), NodeInput::value(TaggedValue::Bool(false), false), ], ..Default::default() @@ -485,6 +420,539 @@ fn static_nodes() -> Vec { description: Cow::Borrowed("Creates a new Artboard which can be used as a working surface."), properties: None, }, + DocumentNodeDefinition { + identifier: "Blend Shapes", + category: "Vector", + // [IMPORTS]2 -> 0[0:Floor] + // [0:Floor]0 -> 0[1:Subtract] + // "1: f64" -> 1[1:Subtract] + // "(): ()" -> 0[2:Instance Index] + // "0: u32" -> 1[2:Instance Index] + // [2:Instance Index]0 -> 0[3:Divide] + // [1:Subtract]0 -> 1[3:Divide] + // [IMPORTS]1 -> 0[4:Position on Path] + // [3:Divide]0 -> 1[4:Position on Path] + // "false: bool" -> 2[4:Position on Path] + // "false: bool" -> 3[4:Position on Path] + // "(): ()" -> 0[5:Instance Vector] + // [5:Instance Vector]0 -> 0[6:Reset Transform] + // "true: bool" -> 1[6:Reset Transform] + // "false: bool" -> 2[6:Reset Transform] + // "false: bool" -> 3[6:Reset Transform] + // [12:Flatten Vector]0 -> 0[7:Instance Map] + // [6:Reset Transform]0 -> 1[7:Instance Map] + // [7:Instance Map]0 -> 0[8:Morph] + // [15:Multiply]0 -> 1[8:Morph] + // [8:Morph]0 -> 0[9:Transform] + // [4:Position on Path]0 -> 1[9:Transform] + // "0: f64" -> 2[9:Transform] + // "(0, 0): DVec2" -> 3[9:Transform] + // "(0, 0): DVec2" -> 4[9:Transform] + // [IMPORTS]1 -> 0[10:Count Points] + // [10:Count Points]0 -> 0[11:Equals] + // [13:Count Elements]0 -> 1[11:Equals] + // [IMPORTS]0 -> 0[12:Flatten Vector] + // [12:Flatten Vector]0 -> 0[13:Count Elements] + // [13:Count Elements]0 -> 0[14:Subtract] + // "1: f64" -> 1[14:Subtract] + // [3:Divide]0 -> 0[15:Multiply] + // [14:Subtract]0 -> 1[15:Multiply] + // [12:Flatten Vector]0 -> 0[16:Morph] + // [15:Multiply]0 -> 1[16:Morph] + // [11:Equals]0 -> 0[17:Switch] + // [9:Transform]0 -> 1[17:Switch] + // [16:Morph]0 -> 2[17:Switch] + // [17:Switch]0 -> 0[18:Instance Repeat] + // [0:Floor]0 -> 1[18:Instance Repeat] + // [IMPORTS]3 -> 2[18:Instance Repeat] + // [18:Instance Repeat]0 -> 0[EXPORTS] + node_template: NodeTemplate { + document_node: DocumentNode { + implementation: DocumentNodeImplementation::Network(NodeNetwork { + exports: vec![NodeInput::node(NodeId(18), 0)], + nodes: [ + // 0: Floor + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(math_nodes::floor::IDENTIFIER), + inputs: vec![NodeInput::import(concrete!(f64), 2)], + ..Default::default() + }, + // 1: Subtract + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(math_nodes::subtract::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(0), 0), NodeInput::value(TaggedValue::F64(1.), false)], + ..Default::default() + }, + // 2: Instance Index + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector_nodes::instance_index::IDENTIFIER), + inputs: vec![NodeInput::value(TaggedValue::None, false), NodeInput::value(TaggedValue::U32(0), false)], + ..Default::default() + }, + // 3: Divide + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(math_nodes::divide::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(2), 0), NodeInput::node(NodeId(1), 0)], + ..Default::default() + }, + // 4: Position on Path + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector_nodes::position_on_path::IDENTIFIER), + inputs: vec![ + NodeInput::import(generic!(T), 1), + NodeInput::node(NodeId(3), 0), + NodeInput::value(TaggedValue::Bool(false), false), + NodeInput::value(TaggedValue::Bool(false), false), + ], + ..Default::default() + }, + // 5: Instance Vector + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector_nodes::instance_vector::IDENTIFIER), + inputs: vec![NodeInput::value(TaggedValue::None, false)], + ..Default::default() + }, + // 6: Reset Transform + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::reset_transform::IDENTIFIER), + inputs: vec![ + NodeInput::node(NodeId(5), 0), + NodeInput::value(TaggedValue::Bool(true), false), + NodeInput::value(TaggedValue::Bool(false), false), + NodeInput::value(TaggedValue::Bool(false), false), + ], + ..Default::default() + }, + // 7: Instance Map + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector_nodes::instance_map::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(12), 0), NodeInput::node(NodeId(6), 0)], + ..Default::default() + }, + // 8: Morph + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector::morph::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(7), 0), NodeInput::node(NodeId(15), 0)], + ..Default::default() + }, + // 9: Transform + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::transform::IDENTIFIER), + inputs: vec![ + NodeInput::node(NodeId(8), 0), + NodeInput::node(NodeId(4), 0), + NodeInput::value(TaggedValue::F64(0.), false), + NodeInput::value(TaggedValue::DVec2(DVec2::ONE), false), + NodeInput::value(TaggedValue::DVec2(DVec2::ZERO), false), + ], + ..Default::default() + }, + // 10: Count Points + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector_nodes::count_points::IDENTIFIER), + inputs: vec![NodeInput::import(generic!(T), 1)], + ..Default::default() + }, + // 11: Equals + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(math_nodes::equals::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(10), 0), NodeInput::node(NodeId(13), 0)], + ..Default::default() + }, + // 12: Flatten Vector + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(graphic_nodes::graphic::flatten_vector::IDENTIFIER), + inputs: vec![NodeInput::import(generic!(T), 0)], + ..Default::default() + }, + // 13: Count Elements + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector::count_elements::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(12), 0)], + ..Default::default() + }, + // 14: Subtract + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(math_nodes::subtract::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(13), 0), NodeInput::value(TaggedValue::F64(1.), false)], + ..Default::default() + }, + // 15: Multiply + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(math_nodes::multiply::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(3), 0), NodeInput::node(NodeId(14), 0)], + ..Default::default() + }, + // 16: Morph + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector::morph::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(12), 0), NodeInput::node(NodeId(15), 0)], + ..Default::default() + }, + // 17: Switch + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(logic::switch::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(11), 0), NodeInput::node(NodeId(9), 0), NodeInput::node(NodeId(16), 0)], + ..Default::default() + }, + // 18: Instance Repeat + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector_nodes::instance_repeat::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(17), 0), NodeInput::node(NodeId(0), 0), NodeInput::import(generic!(T), 3)], + ..Default::default() + }, + ] + .into_iter() + .enumerate() + .map(|(id, node)| (NodeId(id as u64), node)) + .collect(), + ..Default::default() + }), + inputs: vec![ + NodeInput::value(TaggedValue::Vector(Default::default()), true), + NodeInput::value(TaggedValue::Vector(Default::default()), true), + NodeInput::value(TaggedValue::F64(10.), false), + NodeInput::value(TaggedValue::Bool(Default::default()), false), + ], + ..Default::default() + }, + persistent_node_metadata: DocumentNodePersistentMetadata { + input_metadata: vec![("Content", "TODO").into(), ("Path", "TODO").into(), ("Count", "TODO").into(), ("Reverse", "TODO").into()], + output_names: vec!["Out".to_string()], + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)), + network_metadata: Some(NodeNetworkMetadata { + persistent_metadata: NodeNetworkPersistentMetadata { + node_metadata: [ + // 0: Floor + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)), + ..Default::default() + }, + ..Default::default() + }, + // 1: Subtract + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, -1)), + ..Default::default() + }, + ..Default::default() + }, + // 2: Instance Index + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, -2)), + ..Default::default() + }, + ..Default::default() + }, + // 3: Divide + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, -2)), + ..Default::default() + }, + ..Default::default() + }, + // 4: Position on Path + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(28, -3)), + ..Default::default() + }, + ..Default::default() + }, + // 5: Instance Vector + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 2)), + ..Default::default() + }, + ..Default::default() + }, + // 6: Reset Transform + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 2)), + ..Default::default() + }, + ..Default::default() + }, + // 7: Instance Map + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(21, 1)), + ..Default::default() + }, + ..Default::default() + }, + // 8: Morph + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(28, 1)), + ..Default::default() + }, + ..Default::default() + }, + // 9: Transform + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(35, 1)), + ..Default::default() + }, + ..Default::default() + }, + // 10: Count Points + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 4)), + ..Default::default() + }, + ..Default::default() + }, + // 11: Equals + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 4)), + ..Default::default() + }, + ..Default::default() + }, + // 12: Flatten Vector + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 6)), + ..Default::default() + }, + ..Default::default() + }, + // 13: Count Elements + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 8)), + ..Default::default() + }, + ..Default::default() + }, + // 14: Subtract + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 8)), + ..Default::default() + }, + ..Default::default() + }, + // 15: Multiply + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(21, 7)), + ..Default::default() + }, + ..Default::default() + }, + // 16: Morph + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(28, 6)), + ..Default::default() + }, + ..Default::default() + }, + // 17: Switch + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(42, 4)), + ..Default::default() + }, + ..Default::default() + }, + // 18: Instance Repeat + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(49, -1)), + ..Default::default() + }, + ..Default::default() + }, + ] + .into_iter() + .enumerate() + .map(|(id, node)| (NodeId(id as u64), node)) + .collect(), + ..Default::default() + }, + ..Default::default() + }), + ..Default::default() + }, + }, + description: Cow::Borrowed("TODO"), + properties: None, + }, + DocumentNodeDefinition { + identifier: "Origins to Polyline", + category: "Vector", + // "(): ()" -> 0[0:Instance Vector] + // [0:Instance Vector]0 -> 0[1:Extract Transform] + // [1:Extract Transform]0 -> 0[2:Decompose Translation] + // [2:Decompose Translation]0 -> 0[3:Vec2 to Point] + // [IMPORTS]0 -> 0[4:Flatten Vector] + // [4:Flatten Vector]0 -> 0[5:Instance Map] + // [3:Vec2 to Point]0 -> 1[5:Instance Map] + // [5:Instance Map]0 -> 0[6: Flatten Path] + // [6:Flatten Path]0 -> 0[7:Points to Polyline] + // "false: bool" -> 1[7:Points to Polyline] + // [7:Points to Polyline]0 -> 0[EXPORTS] + node_template: NodeTemplate { + document_node: DocumentNode { + implementation: DocumentNodeImplementation::Network(NodeNetwork { + exports: vec![NodeInput::node(NodeId(7), 0)], + nodes: [ + // 0: Instance Vector + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector_nodes::instance_vector::IDENTIFIER), + inputs: vec![NodeInput::value(TaggedValue::None, false)], + ..Default::default() + }, + // 1: Extract Transform + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::extract_transform::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(0), 0)], + ..Default::default() + }, + // 2: Decompose Translation + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::decompose_translation::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(1), 0)], + ..Default::default() + }, + // 3: Vec2 to Point + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector_nodes::vec_2_to_point::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(2), 0)], + ..Default::default() + }, + // 4: Flatten Vector + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(graphic_nodes::graphic::flatten_vector::IDENTIFIER), + inputs: vec![NodeInput::import(generic!(T), 0)], + ..Default::default() + }, + // 5: Instance Map + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector_nodes::instance_map::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(4), 0), NodeInput::node(NodeId(3), 0)], + ..Default::default() + }, + // 6: Flatten Path + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector::flatten_path::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(5), 0)], + ..Default::default() + }, + // 7: Points to Polyline + DocumentNode { + implementation: DocumentNodeImplementation::ProtoNode(vector::points_to_polyline::IDENTIFIER), + inputs: vec![NodeInput::node(NodeId(6), 0), NodeInput::value(TaggedValue::Bool(false), false)], + ..Default::default() + }, + ] + .into_iter() + .enumerate() + .map(|(id, node)| (NodeId(id as u64), node)) + .collect(), + ..Default::default() + }), + inputs: vec![NodeInput::value(TaggedValue::Vector(Default::default()), true)], + ..Default::default() + }, + persistent_node_metadata: DocumentNodePersistentMetadata { + input_metadata: vec![("Vector", "TODO").into()], + output_names: vec!["Vector".to_string()], + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)), + network_metadata: Some(NodeNetworkMetadata { + persistent_metadata: NodeNetworkPersistentMetadata { + node_metadata: [ + // 0: Instance Vector + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 1)), + ..Default::default() + }, + ..Default::default() + }, + // 1: Extract Transform + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 1)), + ..Default::default() + }, + ..Default::default() + }, + // 2: Decompose Transform + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 1)), + ..Default::default() + }, + ..Default::default() + }, + // 3: Vec2 to Point + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(21, 1)), + ..Default::default() + }, + ..Default::default() + }, + // 4: Flatten Vector + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(21, 0)), + ..Default::default() + }, + ..Default::default() + }, + // 5: Instance Map + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(28, 0)), + ..Default::default() + }, + ..Default::default() + }, + // 6: Flatten Path + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(35, 0)), + ..Default::default() + }, + ..Default::default() + }, + // 7: Points to Polyline + DocumentNodeMetadata { + persistent_metadata: DocumentNodePersistentMetadata { + node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(42, 0)), + ..Default::default() + }, + ..Default::default() + }, + ] + .into_iter() + .enumerate() + .map(|(id, node)| (NodeId(id as u64), node)) + .collect(), + ..Default::default() + }, + ..Default::default() + }), + ..Default::default() + }, + }, + description: Cow::Borrowed("TODO"), + properties: None, + }, DocumentNodeDefinition { identifier: "Load Image", category: "Web Request", @@ -494,14 +962,12 @@ fn static_nodes() -> Vec { exports: vec![NodeInput::node(NodeId(1), 0)], nodes: [ DocumentNode { - inputs: vec![NodeInput::value(TaggedValue::None, false), NodeInput::scope("editor-api"), NodeInput::network(concrete!(String), 1)], - manual_composition: Some(concrete!(Context)), + inputs: vec![NodeInput::value(TaggedValue::None, false), NodeInput::scope("editor-api"), NodeInput::import(concrete!(String), 1)], implementation: DocumentNodeImplementation::ProtoNode(wasm_application_io::load_resource::IDENTIFIER), ..Default::default() }, DocumentNode { inputs: vec![NodeInput::node(NodeId(0), 0)], - manual_composition: Some(concrete!(Context)), implementation: DocumentNodeImplementation::ProtoNode(wasm_application_io::decode_image::IDENTIFIER), ..Default::default() }, @@ -549,73 +1015,7 @@ fn static_nodes() -> Vec { ..Default::default() }, }, - description: Cow::Borrowed("Loads an image from a given URL"), - properties: None, - }, - #[cfg(feature = "gpu")] - DocumentNodeDefinition { - identifier: "Create Canvas", - category: "Debug: GPU", - node_template: NodeTemplate { - document_node: DocumentNode { - implementation: DocumentNodeImplementation::Network(NodeNetwork { - exports: vec![NodeInput::node(NodeId(1), 0)], - nodes: [ - DocumentNode { - inputs: vec![NodeInput::scope("editor-api")], - implementation: DocumentNodeImplementation::ProtoNode(wasm_application_io::create_surface::IDENTIFIER), - skip_deduplication: true, - ..Default::default() - }, - DocumentNode { - manual_composition: Some(concrete!(Context)), - inputs: vec![NodeInput::node(NodeId(0), 0)], - implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER), - ..Default::default() - }, - ] - .into_iter() - .enumerate() - .map(|(id, node)| (NodeId(id as u64), node)) - .collect(), - ..Default::default() - }), - ..Default::default() - }, - persistent_node_metadata: DocumentNodePersistentMetadata { - output_names: vec!["Image".to_string()], - network_metadata: Some(NodeNetworkMetadata { - persistent_metadata: NodeNetworkPersistentMetadata { - node_metadata: [ - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Create Canvas".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)), - ..Default::default() - }, - ..Default::default() - }, - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Cache".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)), - ..Default::default() - }, - ..Default::default() - }, - ] - .into_iter() - .enumerate() - .map(|(id, node)| (NodeId(id as u64), node)) - .collect(), - ..Default::default() - }, - ..Default::default() - }), - ..Default::default() - }, - }, - description: Cow::Borrowed("Creates a new canvas object."), + description: Cow::Borrowed("Loads an image from a given URL."), properties: None, }, #[cfg(all(feature = "gpu", target_family = "wasm"))] @@ -630,20 +1030,17 @@ fn static_nodes() -> Vec { DocumentNode { inputs: vec![NodeInput::scope("editor-api")], implementation: DocumentNodeImplementation::ProtoNode(wasm_application_io::create_surface::IDENTIFIER), - manual_composition: Some(concrete!(Context)), skip_deduplication: true, ..Default::default() }, DocumentNode { inputs: vec![NodeInput::node(NodeId(0), 0)], implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER), - manual_composition: Some(concrete!(Context)), ..Default::default() }, DocumentNode { - inputs: vec![NodeInput::network(generic!(T), 0), NodeInput::network(concrete!(Footprint), 1), NodeInput::node(NodeId(1), 0)], + inputs: vec![NodeInput::import(generic!(T), 0), NodeInput::import(concrete!(Footprint), 1), NodeInput::node(NodeId(1), 0)], implementation: DocumentNodeImplementation::ProtoNode(wasm_application_io::rasterize::IDENTIFIER), - manual_composition: Some(concrete!(Context)), ..Default::default() }, ] @@ -716,7 +1113,6 @@ fn static_nodes() -> Vec { category: "Raster: Pattern", node_template: NodeTemplate { document_node: DocumentNode { - manual_composition: Some(concrete!(Context)), implementation: DocumentNodeImplementation::ProtoNode(raster_nodes::std_nodes::noise_pattern::IDENTIFIER), inputs: vec![ NodeInput::value(TaggedValue::None, false), @@ -761,7 +1157,7 @@ fn static_nodes() -> Vec { ..Default::default() }, }, - description: Cow::Borrowed("Generates different noise patterns."), + description: Cow::Borrowed("Generates customizable procedural noise patterns."), properties: None, }, DocumentNodeDefinition { @@ -771,6 +1167,7 @@ fn static_nodes() -> Vec { document_node: DocumentNode { implementation: DocumentNodeImplementation::Network(NodeNetwork { exports: vec![ + NodeInput::value(TaggedValue::None, false), NodeInput::node(NodeId(0), 0), NodeInput::node(NodeId(1), 0), NodeInput::node(NodeId(2), 0), @@ -779,38 +1176,38 @@ fn static_nodes() -> Vec { nodes: [ DocumentNode { inputs: vec![ - NodeInput::network(concrete!(Table>), 0), + NodeInput::import(concrete!(Table>), 0), NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Red), false), ], implementation: DocumentNodeImplementation::ProtoNode(raster_nodes::adjustments::extract_channel::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, DocumentNode { inputs: vec![ - NodeInput::network(concrete!(Table>), 0), + NodeInput::import(concrete!(Table>), 0), NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Green), false), ], implementation: DocumentNodeImplementation::ProtoNode(raster_nodes::adjustments::extract_channel::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, DocumentNode { inputs: vec![ - NodeInput::network(concrete!(Table>), 0), + NodeInput::import(concrete!(Table>), 0), NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Blue), false), ], implementation: DocumentNodeImplementation::ProtoNode(raster_nodes::adjustments::extract_channel::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, DocumentNode { inputs: vec![ - NodeInput::network(concrete!(Table>), 0), + NodeInput::import(concrete!(Table>), 0), NodeInput::value(TaggedValue::RedGreenBlueAlpha(RedGreenBlueAlpha::Alpha), false), ], implementation: DocumentNodeImplementation::ProtoNode(raster_nodes::adjustments::extract_channel::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, ] @@ -825,8 +1222,7 @@ fn static_nodes() -> Vec { }, persistent_node_metadata: DocumentNodePersistentMetadata { input_metadata: vec![("Image", "TODO").into()], - output_names: vec!["Red".to_string(), "Green".to_string(), "Blue".to_string(), "Alpha".to_string()], - has_primary_output: false, + output_names: vec!["".to_string(), "Red".to_string(), "Green".to_string(), "Blue".to_string(), "Alpha".to_string()], network_metadata: Some(NodeNetworkMetadata { persistent_metadata: NodeNetworkPersistentMetadata { node_metadata: [ @@ -883,18 +1279,18 @@ fn static_nodes() -> Vec { node_template: NodeTemplate { document_node: DocumentNode { implementation: DocumentNodeImplementation::Network(NodeNetwork { - exports: vec![NodeInput::node(NodeId(0), 0), NodeInput::node(NodeId(1), 0)], + exports: vec![NodeInput::value(TaggedValue::None, false), NodeInput::node(NodeId(0), 0), NodeInput::node(NodeId(1), 0)], nodes: [ DocumentNode { - inputs: vec![NodeInput::network(concrete!(Table>), 0), NodeInput::value(TaggedValue::XY(XY::X), false)], + inputs: vec![NodeInput::import(concrete!(DVec2), 0), NodeInput::value(TaggedValue::XY(XY::X), false)], implementation: DocumentNodeImplementation::ProtoNode(extract_xy::extract_xy::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, DocumentNode { - inputs: vec![NodeInput::network(concrete!(Table>), 0), NodeInput::value(TaggedValue::XY(XY::Y), false)], + inputs: vec![NodeInput::import(concrete!(DVec2), 0), NodeInput::value(TaggedValue::XY(XY::Y), false)], implementation: DocumentNodeImplementation::ProtoNode(extract_xy::extract_xy::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, ] @@ -905,13 +1301,12 @@ fn static_nodes() -> Vec { ..Default::default() }), - inputs: vec![NodeInput::value(TaggedValue::Raster(Default::default()), true)], + inputs: vec![NodeInput::value(TaggedValue::DVec2(DVec2::ZERO), true)], ..Default::default() }, persistent_node_metadata: DocumentNodePersistentMetadata { input_metadata: vec![("Vec2", "TODO").into()], - output_names: vec!["X".to_string(), "Y".to_string()], - has_primary_output: false, + output_names: vec!["".to_string(), "X".to_string(), "Y".to_string()], network_metadata: Some(NodeNetworkMetadata { persistent_metadata: NodeNetworkPersistentMetadata { node_metadata: [ @@ -944,7 +1339,9 @@ fn static_nodes() -> Vec { }, }, description: Cow::Borrowed( - "Decomposes the X and Y components of a vec2.\n\nThe inverse of this node is \"Vec2 Value\", which can have either or both its X and Y parameters exposed as graph inputs.", + "Decomposes the X and Y components of a vec2.\n\ + \n\ + The inverse of this node is \"Vec2 Value\", which can have either or both its X and Y parameters exposed as graph inputs.", ), properties: None, }, @@ -958,11 +1355,10 @@ fn static_nodes() -> Vec { exports: vec![NodeInput::node(NodeId(0), 0)], nodes: vec![DocumentNode { inputs: vec![ - NodeInput::network(concrete!(Table>), 0), - NodeInput::network(concrete!(Vec), 1), - NodeInput::network(concrete!(BrushCache), 2), + NodeInput::import(concrete!(Table>), 0), + NodeInput::import(concrete!(Vec), 1), + NodeInput::import(concrete!(BrushCache), 2), ], - manual_composition: Some(concrete!(Context)), implementation: DocumentNodeImplementation::ProtoNode(brush::brush::brush::IDENTIFIER), ..Default::default() }] @@ -1013,7 +1409,6 @@ fn static_nodes() -> Vec { document_node: DocumentNode { implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER), inputs: vec![NodeInput::value(TaggedValue::Raster(Default::default()), true)], - manual_composition: Some(concrete!(Context)), ..Default::default() }, persistent_node_metadata: DocumentNodePersistentMetadata { @@ -1025,91 +1420,6 @@ fn static_nodes() -> Vec { description: Cow::Borrowed("TODO"), properties: None, }, - DocumentNodeDefinition { - identifier: "Memoize Impure", - category: "Debug", - node_template: NodeTemplate { - document_node: DocumentNode { - implementation: DocumentNodeImplementation::ProtoNode(memo::impure_memo::IDENTIFIER), - inputs: vec![NodeInput::value(TaggedValue::Raster(Default::default()), true)], - manual_composition: Some(concrete!(Context)), - ..Default::default() - }, - persistent_node_metadata: DocumentNodePersistentMetadata { - input_metadata: vec![("Image", "TODO").into()], - output_names: vec!["Image".to_string()], - ..Default::default() - }, - }, - description: Cow::Borrowed("TODO"), - properties: None, - }, - #[cfg(feature = "gpu")] - DocumentNodeDefinition { - identifier: "Create GPU Surface", - category: "Debug: GPU", - node_template: NodeTemplate { - document_node: DocumentNode { - implementation: DocumentNodeImplementation::Network(NodeNetwork { - exports: vec![NodeInput::node(NodeId(1), 0)], - nodes: [ - DocumentNode { - manual_composition: Some(concrete!(Context)), - inputs: vec![NodeInput::scope("editor-api")], - implementation: DocumentNodeImplementation::ProtoNode(wgpu_executor::create_gpu_surface::IDENTIFIER), - ..Default::default() - }, - DocumentNode { - manual_composition: Some(concrete!(Context)), - inputs: vec![NodeInput::node(NodeId(0), 0)], - implementation: DocumentNodeImplementation::ProtoNode(memo::impure_memo::IDENTIFIER), - ..Default::default() - }, - ] - .into_iter() - .enumerate() - .map(|(id, node)| (NodeId(id as u64), node)) - .collect(), - ..Default::default() - }), - ..Default::default() - }, - persistent_node_metadata: DocumentNodePersistentMetadata { - output_names: vec!["GPU Surface".to_string()], - network_metadata: Some(NodeNetworkMetadata { - persistent_metadata: NodeNetworkPersistentMetadata { - node_metadata: [ - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Create GPU Surface".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(0, 0)), - ..Default::default() - }, - ..Default::default() - }, - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Cache".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)), - ..Default::default() - }, - ..Default::default() - }, - ] - .into_iter() - .enumerate() - .map(|(id, node)| (NodeId(id as u64), node)) - .collect(), - ..Default::default() - }, - ..Default::default() - }), - ..Default::default() - }, - }, - description: Cow::Borrowed("TODO"), - properties: None, - }, #[cfg(feature = "gpu")] DocumentNodeDefinition { identifier: "Upload Texture", @@ -1125,15 +1435,15 @@ fn static_nodes() -> Vec { ..Default::default() }, DocumentNode { - inputs: vec![NodeInput::network(concrete!(Table>), 0), NodeInput::node(NodeId(0), 0)], - manual_composition: Some(generic!(T)), - implementation: DocumentNodeImplementation::ProtoNode(wgpu_executor::texture_upload::upload_texture::IDENTIFIER), + inputs: vec![NodeInput::import(concrete!(Table>), 0), NodeInput::node(NodeId(0), 0)], + call_argument: generic!(T), + implementation: DocumentNodeImplementation::ProtoNode(wgpu_executor::texture_conversion::upload_texture::IDENTIFIER), ..Default::default() }, DocumentNode { - manual_composition: Some(generic!(T)), + call_argument: generic!(T), inputs: vec![NodeInput::node(NodeId(1), 0)], - implementation: DocumentNodeImplementation::ProtoNode(memo::impure_memo::IDENTIFIER), + implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER), ..Default::default() }, ] @@ -1220,7 +1530,7 @@ fn static_nodes() -> Vec { // category: "Raster: Adjustment", // node_template: NodeTemplate { // document_node: DocumentNode { - // implementation: DocumentNodeImplementation::proto("graphene_core::raster::CurvesNode"), + // implementation: DocumentNodeImplementation::proto("core_types::raster::CurvesNode"), // inputs: vec![ // NodeInput::value(TaggedValue::Raster(Default::default()), true), // NodeInput::value(TaggedValue::Curve(Default::default()), false), @@ -1245,19 +1555,19 @@ fn static_nodes() -> Vec { exports: vec![NodeInput::node(NodeId(1), 0)], nodes: vec![ DocumentNode { - inputs: vec![NodeInput::network(concrete!(Table), 0)], + inputs: vec![NodeInput::import(concrete!(Table), 0)], implementation: DocumentNodeImplementation::ProtoNode(memo::monitor::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), skip_deduplication: true, ..Default::default() }, DocumentNode { inputs: vec![ NodeInput::node(NodeId(0), 0), - NodeInput::network(concrete!(graphene_std::vector::VectorModification), 1), + NodeInput::import(concrete!(graphene_std::vector::VectorModification), 1), NodeInput::Reflection(graph_craft::document::DocumentNodeMetadata::DocumentNodePath), ], - manual_composition: Some(generic!(T)), + call_argument: generic!(T), implementation: DocumentNodeImplementation::ProtoNode(vector::path_modify::IDENTIFIER), ..Default::default() }, @@ -1317,7 +1627,6 @@ fn static_nodes() -> Vec { node_template: NodeTemplate { document_node: DocumentNode { implementation: DocumentNodeImplementation::ProtoNode(text::text::IDENTIFIER), - manual_composition: Some(concrete!(Context)), inputs: vec![ NodeInput::scope("editor-api"), NodeInput::value(TaggedValue::String("Lorem ipsum".to_string()), false), @@ -1415,31 +1724,52 @@ fn static_nodes() -> Vec { node_template: NodeTemplate { document_node: DocumentNode { inputs: vec![ + // Value NodeInput::value(TaggedValue::DAffine2(DAffine2::default()), true), + // Translation NodeInput::value(TaggedValue::DVec2(DVec2::ZERO), false), + // Rotation NodeInput::value(TaggedValue::F64(0.), false), + // Scale NodeInput::value(TaggedValue::DVec2(DVec2::ONE), false), + // Skew NodeInput::value(TaggedValue::DVec2(DVec2::ZERO), false), + // Origin Offset + NodeInput::value(TaggedValue::DVec2(DVec2::ZERO), false), + // Scale Appearance + NodeInput::value(TaggedValue::Bool(true), false), ], implementation: DocumentNodeImplementation::Network(NodeNetwork { - exports: vec![NodeInput::node(NodeId(1), 0)], + exports: vec![ + // From the Transform node + NodeInput::node(NodeId(1), 0), + ], nodes: [ + // Monitor node DocumentNode { - inputs: vec![NodeInput::network(generic!(T), 0)], + inputs: vec![ + // From the Value import + NodeInput::import(generic!(T), 0), + ], implementation: DocumentNodeImplementation::ProtoNode(memo::monitor::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), skip_deduplication: true, ..Default::default() }, + // Transform node DocumentNode { inputs: vec![ + // From the Monitor node NodeInput::node(NodeId(0), 0), - NodeInput::network(concrete!(DVec2), 1), - NodeInput::network(concrete!(f64), 2), - NodeInput::network(concrete!(DVec2), 3), - NodeInput::network(concrete!(DVec2), 4), + // From the Translation import + NodeInput::import(concrete!(DVec2), 1), + // From the Rotation import + NodeInput::import(concrete!(f64), 2), + // From the Scale import + NodeInput::import(concrete!(DVec2), 3), + // From the Skew import + NodeInput::import(concrete!(DVec2), 4), ], - manual_composition: Some(concrete!(Context)), implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::transform::IDENTIFIER), ..Default::default() }, @@ -1468,6 +1798,13 @@ fn static_nodes() -> Vec { persistent_metadata: DocumentNodePersistentMetadata { display_name: "Transform".to_string(), node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(7, 0)), + input_metadata: vec![ + ("Value", "TODO").into(), + ("Translation", "TODO").into(), + ("Rotation", "TODO").into(), + ("Scale", "TODO").into(), + ("Skew", "TODO").into(), + ], ..Default::default() }, ..Default::default() @@ -1505,6 +1842,8 @@ fn static_nodes() -> Vec { }), ), InputMetadata::with_name_description_override("Skew", "TODO", WidgetOverride::Custom("transform_skew".to_string())), + InputMetadata::with_name_description_override("Origin Offset", "TODO", WidgetOverride::Custom("hidden".to_string())), + InputMetadata::with_name_description_override("Scale Appearance", "TODO", WidgetOverride::Custom("hidden".to_string())), ], output_names: vec!["Data".to_string()], ..Default::default() @@ -1519,30 +1858,18 @@ fn static_nodes() -> Vec { node_template: NodeTemplate { document_node: DocumentNode { implementation: DocumentNodeImplementation::Network(NodeNetwork { - exports: vec![NodeInput::node(NodeId(3), 0)], + exports: vec![NodeInput::node(NodeId(1), 0)], nodes: vec![ DocumentNode { - inputs: vec![NodeInput::network(concrete!(Table), 0), NodeInput::network(concrete!(vector::style::Fill), 1)], + inputs: vec![NodeInput::import(concrete!(Table), 0), NodeInput::import(concrete!(vector::style::Fill), 1)], implementation: DocumentNodeImplementation::ProtoNode(path_bool::boolean_operation::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, DocumentNode { inputs: vec![NodeInput::node(NodeId(0), 0)], implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER), - manual_composition: Some(generic!(T)), - ..Default::default() - }, - DocumentNode { - inputs: vec![NodeInput::node(NodeId(1), 0)], - implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::freeze_real_time::IDENTIFIER), - manual_composition: Some(generic!(T)), - ..Default::default() - }, - DocumentNode { - inputs: vec![NodeInput::node(NodeId(2), 0)], - implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::boundless_footprint::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, ] @@ -1578,22 +1905,6 @@ fn static_nodes() -> Vec { }, ..Default::default() }, - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Freeze Real Time".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)), - ..Default::default() - }, - ..Default::default() - }, - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Boundless Footprint".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(21, 0)), - ..Default::default() - }, - ..Default::default() - }, ] .into_iter() .enumerate() @@ -1617,45 +1928,33 @@ fn static_nodes() -> Vec { node_template: NodeTemplate { document_node: DocumentNode { implementation: DocumentNodeImplementation::Network(NodeNetwork { - exports: vec![NodeInput::node(NodeId(4), 0)], + exports: vec![NodeInput::node(NodeId(2), 0)], nodes: [ DocumentNode { - inputs: vec![NodeInput::network(concrete!(Table), 0)], + inputs: vec![NodeInput::import(concrete!(Table), 0)], implementation: DocumentNodeImplementation::ProtoNode(vector::subpath_segment_lengths::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, DocumentNode { inputs: vec![ - NodeInput::network(concrete!(Table), 0), - NodeInput::network(concrete!(vector::misc::PointSpacingType), 1), - NodeInput::network(concrete!(f64), 2), - NodeInput::network(concrete!(u32), 3), - NodeInput::network(concrete!(f64), 4), - NodeInput::network(concrete!(f64), 5), - NodeInput::network(concrete!(bool), 6), + NodeInput::import(concrete!(Table), 0), + NodeInput::import(concrete!(vector::misc::PointSpacingType), 1), + NodeInput::import(concrete!(f64), 2), + NodeInput::import(concrete!(u32), 3), + NodeInput::import(concrete!(f64), 4), + NodeInput::import(concrete!(f64), 5), + NodeInput::import(concrete!(bool), 6), NodeInput::node(NodeId(0), 0), ], implementation: DocumentNodeImplementation::ProtoNode(vector::sample_polyline::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, DocumentNode { inputs: vec![NodeInput::node(NodeId(1), 0)], implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER), - manual_composition: Some(generic!(T)), - ..Default::default() - }, - DocumentNode { - inputs: vec![NodeInput::node(NodeId(2), 0)], - implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::freeze_real_time::IDENTIFIER), - manual_composition: Some(generic!(T)), - ..Default::default() - }, - DocumentNode { - inputs: vec![NodeInput::node(NodeId(3), 0)], - implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::boundless_footprint::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, ] @@ -1704,22 +2003,6 @@ fn static_nodes() -> Vec { }, ..Default::default() }, - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Freeze Real Time".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(21, 0)), - ..Default::default() - }, - ..Default::default() - }, - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Boundless Footprint".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(28, 0)), - ..Default::default() - }, - ..Default::default() - }, ] .into_iter() .enumerate() @@ -1731,10 +2014,10 @@ fn static_nodes() -> Vec { }), input_metadata: vec![ ("Content", "The shape to be resampled and converted into a polyline.").into(), - ("Spacing", node_properties::SAMPLE_POLYLINE_TOOLTIP_SPACING).into(), + ("Spacing", node_properties::SAMPLE_POLYLINE_DESCRIPTION_SPACING).into(), InputMetadata::with_name_description_override( "Separation", - node_properties::SAMPLE_POLYLINE_TOOLTIP_SEPARATION, + node_properties::SAMPLE_POLYLINE_DESCRIPTION_SEPARATION, WidgetOverride::Number(NumberInputSettings { min: Some(0.), unit: Some(" px".to_string()), @@ -1743,7 +2026,7 @@ fn static_nodes() -> Vec { ), InputMetadata::with_name_description_override( "Quantity", - node_properties::SAMPLE_POLYLINE_TOOLTIP_QUANTITY, + node_properties::SAMPLE_POLYLINE_DESCRIPTION_QUANTITY, WidgetOverride::Number(NumberInputSettings { min: Some(2.), is_integer: true, @@ -1752,7 +2035,7 @@ fn static_nodes() -> Vec { ), InputMetadata::with_name_description_override( "Start Offset", - node_properties::SAMPLE_POLYLINE_TOOLTIP_START_OFFSET, + node_properties::SAMPLE_POLYLINE_DESCRIPTION_START_OFFSET, WidgetOverride::Number(NumberInputSettings { min: Some(0.), unit: Some(" px".to_string()), @@ -1761,14 +2044,14 @@ fn static_nodes() -> Vec { ), InputMetadata::with_name_description_override( "Stop Offset", - node_properties::SAMPLE_POLYLINE_TOOLTIP_STOP_OFFSET, + node_properties::SAMPLE_POLYLINE_DESCRIPTION_STOP_OFFSET, WidgetOverride::Number(NumberInputSettings { min: Some(0.), unit: Some(" px".to_string()), ..Default::default() }), ), - ("Adaptive Spacing", node_properties::SAMPLE_POLYLINE_TOOLTIP_ADAPTIVE_SPACING).into(), + ("Adaptive Spacing", node_properties::SAMPLE_POLYLINE_DESCRIPTION_ADAPTIVE_SPACING).into(), ], output_names: vec!["Vector".to_string()], ..Default::default() @@ -1783,34 +2066,22 @@ fn static_nodes() -> Vec { node_template: NodeTemplate { document_node: DocumentNode { implementation: DocumentNodeImplementation::Network(NodeNetwork { - exports: vec![NodeInput::node(NodeId(3), 0)], + exports: vec![NodeInput::node(NodeId(1), 0)], nodes: [ DocumentNode { inputs: vec![ - NodeInput::network(concrete!(Table), 0), - NodeInput::network(concrete!(f64), 1), - NodeInput::network(concrete!(u32), 2), + NodeInput::import(concrete!(Table), 0), + NodeInput::import(concrete!(f64), 1), + NodeInput::import(concrete!(u32), 2), ], - manual_composition: Some(generic!(T)), + call_argument: generic!(T), implementation: DocumentNodeImplementation::ProtoNode(vector::poisson_disk_points::IDENTIFIER), ..Default::default() }, DocumentNode { inputs: vec![NodeInput::node(NodeId(0), 0)], implementation: DocumentNodeImplementation::ProtoNode(memo::memo::IDENTIFIER), - manual_composition: Some(generic!(T)), - ..Default::default() - }, - DocumentNode { - inputs: vec![NodeInput::node(NodeId(1), 0)], - implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::freeze_real_time::IDENTIFIER), - manual_composition: Some(generic!(T)), - ..Default::default() - }, - DocumentNode { - inputs: vec![NodeInput::node(NodeId(2), 0)], - implementation: DocumentNodeImplementation::ProtoNode(transform_nodes::boundless_footprint::IDENTIFIER), - manual_composition: Some(generic!(T)), + call_argument: generic!(T), ..Default::default() }, ] @@ -1847,22 +2118,6 @@ fn static_nodes() -> Vec { }, ..Default::default() }, - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Freeze Real Time".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(14, 0)), - ..Default::default() - }, - ..Default::default() - }, - DocumentNodeMetadata { - persistent_metadata: DocumentNodePersistentMetadata { - display_name: "Boundless Footprint".to_string(), - node_type_metadata: NodeTypePersistentMetadata::node(IVec2::new(21, 0)), - ..Default::default() - }, - ..Default::default() - }, ] .into_iter() .enumerate() @@ -1924,6 +2179,7 @@ fn static_node_properties() -> NodeProperties { map.insert("math_properties".to_string(), Box::new(node_properties::math_properties)); map.insert("rectangle_properties".to_string(), Box::new(node_properties::rectangle_properties)); map.insert("grid_properties".to_string(), Box::new(node_properties::grid_properties)); + map.insert("spiral_properties".to_string(), Box::new(node_properties::spiral_properties)); map.insert("sample_polyline_properties".to_string(), Box::new(node_properties::sample_polyline_properties)); map.insert( "monitor_properties".to_string(), @@ -1944,10 +2200,10 @@ fn static_input_properties() -> InputProperties { "string".to_string(), Box::new(|node_id, index, context| { let Some(value) = context.network_interface.input_data(&node_id, index, "string_properties", context.selection_network_path) else { - return Err(format!("Could not get string properties for node {}", node_id)); + return Err(format!("Could not get string properties for node {node_id}")); }; let Some(string) = value.as_str() else { - return Err(format!("Could not downcast string properties for node {}", node_id)); + return Err(format!("Could not downcast string properties for node {node_id}")); }; Ok(node_properties::string_properties(string)) }), @@ -2240,47 +2496,6 @@ fn static_input_properties() -> InputProperties { Ok(vec![cellular_jitter.into()]) }), ); - map.insert( - "brightness".to_string(), - Box::new(|node_id, index, context| { - let document_node = node_properties::get_document_node(node_id, context)?; - let is_use_classic = document_node - .inputs - .iter() - .find_map(|input| match input.as_value() { - Some(&TaggedValue::Bool(use_classic)) => Some(use_classic), - _ => None, - }) - .unwrap_or(false); - let (b_min, b_max) = if is_use_classic { (-100., 100.) } else { (-100., 150.) }; - let brightness = node_properties::number_widget( - ParameterWidgetsInfo::new(node_id, index, true, context), - NumberInput::default().mode_range().range_min(Some(b_min)).range_max(Some(b_max)).unit("%").display_decimal_places(2), - ); - Ok(vec![brightness.into()]) - }), - ); - map.insert( - "contrast".to_string(), - Box::new(|node_id, index, context| { - let document_node = node_properties::get_document_node(node_id, context)?; - - let is_use_classic = document_node - .inputs - .iter() - .find_map(|input| match input.as_value() { - Some(&TaggedValue::Bool(use_classic)) => Some(use_classic), - _ => None, - }) - .unwrap_or(false); - let (c_min, c_max) = if is_use_classic { (-100., 100.) } else { (-50., 100.) }; - let contrast = node_properties::number_widget( - ParameterWidgetsInfo::new(node_id, index, true, context), - NumberInput::default().mode_range().range_min(Some(c_min)).range_max(Some(c_max)).unit("%").display_decimal_places(2), - ); - Ok(vec![contrast.into()]) - }), - ); map.insert( "assign_colors_gradient".to_string(), Box::new(|node_id, index, context| { @@ -2310,21 +2525,6 @@ fn static_input_properties() -> InputProperties { Ok(vec![repeat_every_row.into()]) }), ); - map.insert( - "mask_stencil".to_string(), - Box::new(|node_id, index, context| { - let mask = node_properties::color_widget(ParameterWidgetsInfo::new(node_id, index, true, context), ColorInput::default()); - Ok(vec![mask]) - }), - ); - map.insert( - "spline_input".to_string(), - Box::new(|node_id, index, context| { - Ok(vec![LayoutGroup::Row { - widgets: node_properties::array_of_vec2_widget(ParameterWidgetsInfo::new(node_id, index, true, context), TextInput::default().centered(true)), - }]) - }), - ); map.insert( "transform_rotation".to_string(), Box::new(|node_id, index, context| { @@ -2336,19 +2536,19 @@ fn static_input_properties() -> InputProperties { }; if let Some(&TaggedValue::F64(val)) = input.as_non_exposed_value() { widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), - NumberInput::new(Some(val.to_degrees())) + Separator::new(SeparatorType::Unrelated).widget_instance(), + NumberInput::new(Some(val)) .unit("ยฐ") .mode(NumberInputMode::Range) .range_min(Some(-180.)) .range_max(Some(180.)) .on_update(node_properties::update_value( - |number_input: &NumberInput| TaggedValue::F64(number_input.value.unwrap().to_radians()), + |number_input: &NumberInput| TaggedValue::F64(number_input.value.unwrap()), node_id, index, )) .on_commit(node_properties::commit_value) - .widget_holder(), + .widget_instance(), ]); } @@ -2366,34 +2566,33 @@ fn static_input_properties() -> InputProperties { return Err("Input not found in transform skew input override".to_string()); }; if let Some(&TaggedValue::DVec2(val)) = input.as_non_exposed_value() { - let to_skew = |input: &NumberInput| input.value.unwrap().to_radians().tan(); widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), - NumberInput::new(Some(val.x.atan().to_degrees())) + Separator::new(SeparatorType::Unrelated).widget_instance(), + NumberInput::new(Some(val.x)) .label("X") .unit("ยฐ") .min(-89.9) .max(89.9) .on_update(node_properties::update_value( - move |input: &NumberInput| TaggedValue::DVec2(DVec2::new(to_skew(input), val.y)), + move |input: &NumberInput| TaggedValue::DVec2(DVec2::new(input.value.unwrap(), val.y)), node_id, index, )) .on_commit(node_properties::commit_value) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), - NumberInput::new(Some(val.y.atan().to_degrees())) + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), + NumberInput::new(Some(val.y)) .label("Y") .unit("ยฐ") .min(-89.9) .max(89.9) .on_update(node_properties::update_value( - move |input: &NumberInput| TaggedValue::DVec2(DVec2::new(val.x, to_skew(input))), + move |input: &NumberInput| TaggedValue::DVec2(DVec2::new(val.x, input.value.unwrap())), node_id, index, )) .on_commit(node_properties::commit_value) - .widget_holder(), + .widget_instance(), ]); } @@ -2542,6 +2741,7 @@ impl DocumentNodeDefinition { /// `input_override` does not have to be the correct length. pub fn node_template_input_override(&self, input_override: impl IntoIterator>) -> NodeTemplate { let mut template = self.node_template.clone(); + // TODO: Replace the .enumerate() with changing the iterator to take a tuple of (index, input) so the user is forced to provide the correct index input_override.into_iter().enumerate().for_each(|(index, input_override)| { if let Some(input_override) = input_override { // Only value inputs can be overridden, since node inputs change graph structure and must be handled by the network interface diff --git a/editor/src/messages/portfolio/document/node_graph/document_node_definitions/document_node_derive.rs b/editor/src/messages/portfolio/document/node_graph/document_node_definitions/document_node_derive.rs index 85ce4b516..6d5154ca5 100644 --- a/editor/src/messages/portfolio/document/node_graph/document_node_definitions/document_node_derive.rs +++ b/editor/src/messages/portfolio/document/node_graph/document_node_definitions/document_node_derive.rs @@ -6,7 +6,37 @@ use graphene_std::registry::*; use graphene_std::*; use std::collections::HashSet; +/// Traverses a document node template and metadata in parallel to link the protonodes to their reference +fn traverse_node(node: &DocumentNode, node_metadata: &mut DocumentNodePersistentMetadata) { + match &node.implementation { + DocumentNodeImplementation::Network(node_network) => { + for (nested_node_id, nested_node) in node_network.nodes.iter() { + let nested_metadata = node_metadata + .network_metadata + .as_mut() + .expect("Network node must have network metadata") + .persistent_metadata + .node_metadata + .get_mut(nested_node_id) + .expect("Network metadata must have corresponding node id"); + traverse_node(nested_node, &mut nested_metadata.persistent_metadata); + } + } + DocumentNodeImplementation::ProtoNode(proto_node_identifier) => { + if let Some(metadata) = NODE_METADATA.lock().unwrap().get(proto_node_identifier) { + node_metadata.reference = Some(metadata.display_name.to_string()); + } + } + DocumentNodeImplementation::Extract => {} + } +} + pub(super) fn post_process_nodes(mut custom: Vec) -> Vec { + // Link the protonodes with custom networks to their reference + for node in custom.iter_mut() { + traverse_node(&node.node_template.document_node, &mut node.node_template.persistent_node_metadata); + } + // Remove struct generics for DocumentNodeDefinition { node_template, .. } in custom.iter_mut() { let NodeTemplate { @@ -14,10 +44,10 @@ pub(super) fn post_process_nodes(mut custom: Vec) -> Vec .. } = node_template; - if let DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier { name }) = implementation { - if let Some((new_name, _suffix)) = name.rsplit_once("<") { - *name = Cow::Owned(new_name.to_string()) - } + if let DocumentNodeImplementation::ProtoNode(ProtoNodeIdentifier { name }) = implementation + && let Some((new_name, _suffix)) = name.rsplit_once("<") + { + *name = Cow::Owned(new_name.to_string()) }; } @@ -43,6 +73,7 @@ pub(super) fn post_process_nodes(mut custom: Vec) -> Vec fields, description, properties, + context_features, } = metadata; let Some(implementations) = &node_registry.get(id) else { continue }; @@ -59,10 +90,11 @@ pub(super) fn post_process_nodes(mut custom: Vec) -> Vec node_template: NodeTemplate { document_node: DocumentNode { inputs, - manual_composition: Some(input_type.clone()), - implementation: DocumentNodeImplementation::ProtoNode(id.clone().into()), + call_argument: input_type.clone(), + implementation: DocumentNodeImplementation::ProtoNode(id.clone()), visible: true, skip_deduplication: false, + context_features: ContextDependencies::from(context_features.as_slice()), ..Default::default() }, persistent_node_metadata: DocumentNodePersistentMetadata { @@ -77,7 +109,6 @@ pub(super) fn post_process_nodes(mut custom: Vec) -> Vec }) .collect(), output_names: vec![output_type.to_string()], - has_primary_output: true, locked: false, ..Default::default() }, diff --git a/editor/src/messages/portfolio/document/node_graph/node_graph_message.rs b/editor/src/messages/portfolio/document/node_graph/node_graph_message.rs index bd6c77d46..330d123ef 100644 --- a/editor/src/messages/portfolio/document/node_graph/node_graph_message.rs +++ b/editor/src/messages/portfolio/document/node_graph/node_graph_message.rs @@ -18,7 +18,11 @@ pub enum NodeGraphMessage { }, AddPathNode, AddImport, + AddPrimaryImport, + AddSecondaryImport, AddExport, + AddPrimaryExport, + AddSecondaryExport, Init, SelectedNodesUpdated, Copy, @@ -63,9 +67,16 @@ pub enum NodeGraphMessage { set_to_exposed: bool, start_transaction: bool, }, + ExposeEncapsulatingPrimaryInput { + exposed: bool, + }, + ExposePrimaryExport { + exposed: bool, + }, InsertNode { node_id: NodeId, - node_template: NodeTemplate, + // Boxed to reduce size of enum (1120 bytes to 8 bytes) + node_template: Box, }, InsertNodeBetween { node_id: NodeId, @@ -102,6 +113,7 @@ pub enum NodeGraphMessage { shift: Key, }, ShakeNode, + UpdateNodeGraphWidth, RemoveImport { import_index: usize, }, @@ -133,7 +145,6 @@ pub enum NodeGraphMessage { SendWires, UpdateVisibleNodes, SendGraph, - SetGridAlignedEdges, SetInputValue { node_id: NodeId, input_index: usize, diff --git a/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs b/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs index 234f04c36..699e898de 100644 --- a/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs +++ b/editor/src/messages/portfolio/document/node_graph/node_graph_message_handler.rs @@ -1,28 +1,29 @@ -use super::utility_types::{BoxSelection, ContextMenuInformation, DragStart, FrontendGraphInput, FrontendGraphOutput, FrontendNode}; +use super::utility_types::{BoxSelection, ContextMenuInformation, DragStart, FrontendNode}; use super::{document_node_definitions, node_properties}; use crate::consts::GRID_SIZE; -use crate::messages::input_mapper::utility_types::macros::action_keys; +use crate::messages::clipboard::utility_types::ClipboardContent; +use crate::messages::input_mapper::utility_types::macros::{action_shortcut, action_shortcut_manual}; use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::portfolio::document::document_message_handler::navigation_controls; use crate::messages::portfolio::document::graph_operation::utility_types::ModifyInputsContext; use crate::messages::portfolio::document::node_graph::document_node_definitions::NodePropertiesContext; -use crate::messages::portfolio::document::node_graph::utility_types::{ContextMenuData, Direction, FrontendGraphDataType}; +use crate::messages::portfolio::document::node_graph::utility_types::{ContextMenuData, Direction, FrontendGraphDataType, NodeGraphErrorDiagnostic}; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::misc::GroupFolderType; use crate::messages::portfolio::document::utility_types::network_interface::{ - self, FlowType, InputConnector, NodeNetworkInterface, NodeTemplate, NodeTypePersistentMetadata, OutputConnector, Previewing, TypeSource, + self, FlowType, InputConnector, NodeNetworkInterface, NodeTemplate, NodeTypePersistentMetadata, OutputConnector, Previewing, }; use crate::messages::portfolio::document::utility_types::nodes::{CollapsedLayers, LayerPanelEntry}; use crate::messages::portfolio::document::utility_types::wires::{GraphWireStyle, WirePath, WirePathUpdate, build_vector_wire}; use crate::messages::prelude::*; use crate::messages::tool::common_functionality::auto_panning::AutoPanning; -use crate::messages::tool::common_functionality::graph_modification_utils::{self, get_clip_mode}; +use crate::messages::tool::common_functionality::graph_modification_utils::get_clip_mode; use crate::messages::tool::common_functionality::utility_functions::make_path_editable_is_allowed; use crate::messages::tool::tool_messages::tool_prelude::{Key, MouseMotion}; use crate::messages::tool::utility_types::{HintData, HintGroup, HintInfo}; +use crate::messages::viewport::Position; use glam::{DAffine2, DVec2, IVec2}; use graph_craft::document::{DocumentNodeImplementation, NodeId, NodeInput}; -use graph_craft::proto::GraphErrors; use graphene_std::math::math_ext::QuadExt; use graphene_std::vector::algorithms::bezpath_algorithms::bezpath_is_inside_bezpath; use graphene_std::*; @@ -42,13 +43,14 @@ pub struct NodeGraphMessageContext<'a> { pub graph_fade_artwork_percentage: f64, pub navigation_handler: &'a NavigationMessageHandler, pub preferences: &'a PreferencesMessageHandler, + pub layers_panel_open: bool, + pub viewport: &'a ViewportMessageHandler, } #[derive(Debug, Clone, ExtractField)] pub struct NodeGraphMessageHandler { // TODO: Remove network and move to NodeNetworkInterface pub network: Vec, - pub node_graph_errors: GraphErrors, has_selection: bool, widgets: [LayoutGroup; 2], /// Used to add a transaction for the first node move when dragging. @@ -62,20 +64,21 @@ pub struct NodeGraphMessageHandler { pub drag_start_chain_nodes: Vec, /// If dragging the background to create a box selection, this stores its starting point in node graph coordinates, /// plus a flag indicating if it has been dragged since the mousedown began. - box_selection_start: Option<(DVec2, bool)>, + pub box_selection_start: Option<(DVec2, bool)>, /// Restore the selection before box selection if it is aborted - selection_before_pointer_down: Vec, + pub selection_before_pointer_down: Vec, /// If the grip icon is held during a drag, then shift without pushing other nodes shift_without_push: bool, disconnecting: Option, initial_disconnecting: bool, /// Node to select on pointer up if multiple nodes are selected and they were not dragged. select_if_not_dragged: Option, - /// The start of the dragged line (cannot be moved), stored in node graph coordinates + /// The start of the dragged line (cannot be moved), stored in node graph coordinates. pub wire_in_progress_from_connector: Option, - wire_in_progress_type: FrontendGraphDataType, - /// The end point of the dragged line (cannot be moved), stored in node graph coordinates + /// The end point of the dragged line (cannot be moved), stored in node graph coordinates. pub wire_in_progress_to_connector: Option, + /// The data type determining the color of the wire being dragged. + pub wire_in_progress_type: FrontendGraphDataType, /// State for the context menu popups. pub context_menu: Option, /// Index of selected node to be deselected on pointer up when shift clicking an already selected node @@ -88,7 +91,7 @@ pub struct NodeGraphMessageHandler { reordering_import: Option, /// The index of the export that is being moved reordering_export: Option, - /// The end index of the moved port + /// The end index of the moved connector end_index: Option, /// Used to keep track of what nodes are sent to the front end so that only visible ones are sent to the frontend frontend_nodes: Vec, @@ -111,6 +114,8 @@ impl<'a> MessageHandler> for NodeG graph_fade_artwork_percentage, navigation_handler, preferences, + layers_panel_open, + viewport, } = context; match message { @@ -125,22 +130,56 @@ impl<'a> MessageHandler> for NodeG responses.add(NodeGraphMessage::SelectedNodesSet { nodes: vec![new_layer_id] }); } NodeGraphMessage::AddPathNode => { - if let Some(layer) = make_path_editable_is_allowed(network_interface, network_interface.document_metadata()) { + if let Some(layer) = make_path_editable_is_allowed(network_interface) { responses.add(NodeGraphMessage::CreateNodeInLayerWithTransaction { node_type: "Path".to_string(), layer }); - responses.add(BroadcastEvent::SelectionChanged); + responses.add(EventMessage::SelectionChanged); } } NodeGraphMessage::AddImport => { network_interface.add_import(graph_craft::document::value::TaggedValue::None, true, -1, "", "", breadcrumb_network_path); responses.add(NodeGraphMessage::SendGraph); } + NodeGraphMessage::AddPrimaryImport => { + if network_interface.number_of_imports(breadcrumb_network_path) == 0 { + responses.add(NodeGraphMessage::AddImport); + } else { + responses.add(NodeGraphMessage::ExposeEncapsulatingPrimaryInput { exposed: true }); + } + } + NodeGraphMessage::AddSecondaryImport => { + // If necessary, add a hidden primary import before the secondary import + if network_interface.number_of_imports(breadcrumb_network_path) == 0 { + responses.add(NodeGraphMessage::AddImport); + responses.add(NodeGraphMessage::ExposeEncapsulatingPrimaryInput { exposed: false }); + } + + // Add the secondary import + responses.add(NodeGraphMessage::AddImport); + } NodeGraphMessage::AddExport => { network_interface.add_export(graph_craft::document::value::TaggedValue::None, -1, "", breadcrumb_network_path); responses.add(NodeGraphMessage::SendGraph); } + NodeGraphMessage::AddPrimaryExport => { + if network_interface.number_of_exports(breadcrumb_network_path) == 0 { + responses.add(NodeGraphMessage::AddExport); + } else { + responses.add(NodeGraphMessage::ExposePrimaryExport { exposed: true }); + } + } + NodeGraphMessage::AddSecondaryExport => { + // If necessary, add a hidden primary import before the secondary import + if network_interface.number_of_exports(breadcrumb_network_path) == 0 { + responses.add(NodeGraphMessage::AddExport); + responses.add(NodeGraphMessage::ExposePrimaryExport { exposed: false }); + } + + // Add the secondary export + responses.add(NodeGraphMessage::AddExport); + } NodeGraphMessage::Init => { responses.add(BroadcastMessage::SubscribeEvent { - on: BroadcastEvent::SelectionChanged, + on: EventMessage::SelectionChanged, send: Box::new(NodeGraphMessage::SelectedNodesUpdated.into()), }); network_interface.load_structure(); @@ -155,16 +194,40 @@ impl<'a> MessageHandler> for NodeG } responses.add(MenuBarMessage::SendLayout); responses.add(NodeGraphMessage::UpdateLayerPanel); + responses.add(PropertiesPanelMessage::Refresh); responses.add(NodeGraphMessage::SendSelectedNodes); responses.add(ArtboardToolMessage::UpdateSelectedArtboard); responses.add(DocumentMessage::DocumentStructureChanged); responses.add(OverlaysMessage::Draw); responses.add(NodeGraphMessage::SendGraph); + responses.add(PortfolioMessage::SubmitActiveGraphRender); } NodeGraphMessage::CreateWire { output_connector, input_connector } => { - // TODO: Add support for flattening NodeInput::Network exports in flatten_with_fns https://github.com/GraphiteEditor/Graphite/issues/1762 - if matches!(input_connector, InputConnector::Export(_)) && matches!(output_connector, OutputConnector::Import { .. }) { - responses.add(DialogMessage::RequestComingSoonDialog { issue: Some(1762) }); + // TODO: Add support for flattening NodeInput::Import exports in flatten_with_fns https://github.com/GraphiteEditor/Graphite/issues/1762 + if let (InputConnector::Export(_), OutputConnector::Import(_)) = (input_connector, output_connector) { + let mid_point = (network_interface.get_output_center(&output_connector, breadcrumb_network_path).unwrap() + + network_interface.get_input_center(&input_connector, breadcrumb_network_path).unwrap()) + / 2.; + let node_template = Box::new(document_node_definitions::resolve_document_node_type("Passthrough").unwrap().default_node_template()); + + let node_id = NodeId::new(); + responses.add(NodeGraphMessage::InsertNode { node_id, node_template }); + responses.add(NodeGraphMessage::ShiftNodePosition { + node_id, + x: (mid_point.x / 24.) as i32, + y: (mid_point.y / 24.) as i32, + }); + let node_input_connector = InputConnector::node(node_id, 0); + let node_output_connector = OutputConnector::node(node_id, 0); + responses.add(NodeGraphMessage::CreateWire { + output_connector, + input_connector: node_input_connector, + }); + responses.add(NodeGraphMessage::CreateWire { + output_connector: node_output_connector, + input_connector, + }); + return; } network_interface.create_wire(&output_connector, &input_connector, selection_network_path); @@ -175,11 +238,13 @@ impl<'a> MessageHandler> for NodeG let new_ids = &all_selected_nodes.iter().enumerate().map(|(new, old)| (*old, NodeId(new as u64))).collect(); let copied_nodes = network_interface.copy_nodes(new_ids, selection_network_path).collect::>(); - // Prefix to show that these are nodes - let mut copy_text = String::from("graphite/nodes: "); - copy_text += &serde_json::to_string(&copied_nodes).expect("Could not serialize copy"); - - responses.add(FrontendMessage::TriggerTextCopy { copy_text }); + let Ok(data) = serde_json::to_string(&copied_nodes) else { + log::error!("Failed to serialize nodes for clipboard"); + return; + }; + responses.add(ClipboardMessage::Write { + content: ClipboardContent::Nodes(data), + }); } NodeGraphMessage::CreateNodeInLayerNoTransaction { node_type, layer } => { let Some(mut modify_inputs) = ModifyInputsContext::new_with_layer(layer, network_interface, responses) else { @@ -226,7 +291,7 @@ impl<'a> MessageHandler> for NodeG responses.add(NodeGraphMessage::InsertNode { node_id, - node_template: node_template.clone(), + node_template: Box::new(node_template.clone()), }); responses.add(NodeGraphMessage::ShiftNodePosition { node_id, x, y }); // Only auto connect to the dragged wire if the node is being added to the currently opened network @@ -256,8 +321,8 @@ impl<'a> MessageHandler> for NodeG } self.wire_in_progress_from_connector = None; - self.wire_in_progress_type = FrontendGraphDataType::General; self.wire_in_progress_to_connector = None; + self.wire_in_progress_type = FrontendGraphDataType::General; } responses.add(FrontendMessage::UpdateWirePathInProgress { wire_path: None }); responses.add(FrontendMessage::UpdateContextMenuInformation { @@ -397,8 +462,79 @@ impl<'a> MessageHandler> for NodeG responses.add(DocumentMessage::ZoomCanvasTo100Percent); } } + NodeGraphMessage::ExposeEncapsulatingPrimaryInput { exposed } => { + let Some((node_id, network_path)) = breadcrumb_network_path.split_last() else { + return; + }; + + let encapsulating_connector = InputConnector::node(*node_id, 0); + if !exposed { + network_interface.disconnect_input(&encapsulating_connector, network_path); + } + + let Some(mut input) = network_interface.input_from_connector(&encapsulating_connector, network_path).cloned() else { + return; + }; + + if let NodeInput::Value { exposed: old_exposed, .. } = &mut input { + *old_exposed = exposed; + } + + network_interface.set_input(&encapsulating_connector, input, network_path); + + let Some(outward_wires) = network_interface.outward_wires(breadcrumb_network_path) else { + log::error!("Could not get outward wires in remove_import"); + return; + }; + let Some(downstream_connections) = outward_wires.get(&OutputConnector::Import(0)).cloned() else { + log::error!("Could not get outward wires for import in remove_import"); + return; + }; + + // Disconnect all connections in the encapsulating network + for downstream_connection in &downstream_connections { + network_interface.disconnect_input(downstream_connection, breadcrumb_network_path); + } + + responses.add(NodeGraphMessage::UpdateImportsExports); + responses.add(NodeGraphMessage::SendWires); + } + NodeGraphMessage::ExposePrimaryExport { exposed } => { + let export_connector: InputConnector = InputConnector::Export(0); + if !exposed { + network_interface.disconnect_input(&export_connector, breadcrumb_network_path); + } + + let Some(mut input) = network_interface.input_from_connector(&export_connector, breadcrumb_network_path).cloned() else { + return; + }; + + if let NodeInput::Value { exposed: old_exposed, .. } = &mut input { + *old_exposed = exposed; + } + + network_interface.set_input(&export_connector, input, breadcrumb_network_path); + + // Disconnect all connections in the encapsulating network + if let Some((encapsulating_node, encapsulating_path)) = breadcrumb_network_path.split_last() { + let Some(outward_wires) = network_interface.outward_wires(encapsulating_path) else { + log::error!("Could not get outward wires in remove_import"); + return; + }; + let Some(downstream_connections) = outward_wires.get(&OutputConnector::node(*encapsulating_node, 0)).cloned() else { + log::error!("Could not get outward wires for import in remove_import"); + return; + }; + + for downstream_connection in &downstream_connections { + network_interface.disconnect_input(downstream_connection, encapsulating_path); + } + } + + responses.add(NodeGraphMessage::UpdateImportsExports); + } NodeGraphMessage::InsertNode { node_id, node_template } => { - network_interface.insert_node(node_id, node_template, selection_network_path); + network_interface.insert_node(node_id, *node_template, selection_network_path); } NodeGraphMessage::InsertNodeBetween { node_id, @@ -515,7 +651,7 @@ impl<'a> MessageHandler> for NodeG responses.add(DocumentMessage::AddTransaction); responses.add(NodeGraphMessage::InsertNode { node_id: encapsulating_node_id, - node_template: default_node_template, + node_template: Box::new(default_node_template), }); responses.add(NodeGraphMessage::SetDisplayNameImpl { node_id: encapsulating_node_id, @@ -634,7 +770,6 @@ impl<'a> MessageHandler> for NodeG let clicked_input = network_interface.input_connector_from_click(click, selection_network_path); let clicked_output = network_interface.output_connector_from_click(click, selection_network_path); let network_metadata = network_interface.network_metadata(selection_network_path).unwrap(); - // Create the add node popup on right click, then exit if right_click { // Abort dragging a node @@ -658,35 +793,39 @@ impl<'a> MessageHandler> for NodeG // Abort dragging a wire if self.wire_in_progress_from_connector.is_some() { self.wire_in_progress_from_connector = None; - self.wire_in_progress_type = FrontendGraphDataType::General; self.wire_in_progress_to_connector = None; + self.wire_in_progress_type = FrontendGraphDataType::General; + responses.add(DocumentMessage::AbortTransaction); responses.add(FrontendMessage::UpdateWirePathInProgress { wire_path: None }); return; } let context_menu_data = if let Some(node_id) = clicked_id { - let currently_is_node = !network_interface.is_layer(&node_id, selection_network_path); - ContextMenuData::ToggleLayer { node_id, currently_is_node } + let currently_is_node = !network_interface.is_layer(&node_id, breadcrumb_network_path); + let can_be_layer = network_interface.is_eligible_to_be_layer(&node_id, breadcrumb_network_path); + ContextMenuData::ModifyNode { + can_be_layer, + currently_is_node, + node_id, + } } else { ContextMenuData::CreateNode { compatible_type: None } }; // TODO: Create function let node_graph_shift = if matches!(context_menu_data, ContextMenuData::CreateNode { compatible_type: None }) { - let appear_right_of_mouse = if click.x > ipp.viewport_bounds.size().x - 180. { -180. } else { 0. }; - let appear_above_mouse = if click.y > ipp.viewport_bounds.size().y - 200. { -200. } else { 0. }; + let appear_right_of_mouse = if click.x > viewport.size().x() - 180. { -180. } else { 0. }; + let appear_above_mouse = if click.y > viewport.size().y() - 200. { -200. } else { 0. }; DVec2::new(appear_right_of_mouse, appear_above_mouse) / network_metadata.persistent_metadata.navigation_metadata.node_graph_to_viewport.matrix2.x_axis.x } else { - let appear_right_of_mouse = if click.x > ipp.viewport_bounds.size().x - 173. { -173. } else { 0. }; - let appear_above_mouse = if click.y > ipp.viewport_bounds.size().y - 34. { -34. } else { 0. }; + let appear_right_of_mouse = if click.x > viewport.size().x() - 173. { -173. } else { 0. }; + let appear_above_mouse = if click.y > viewport.size().y() - 34. { -34. } else { 0. }; DVec2::new(appear_right_of_mouse, appear_above_mouse) / network_metadata.persistent_metadata.navigation_metadata.node_graph_to_viewport.matrix2.x_axis.x }; - let context_menu_coordinates = ((node_graph_point.x + node_graph_shift.x) as i32, (node_graph_point.y + node_graph_shift.y) as i32); - self.context_menu = Some(ContextMenuInformation { - context_menu_coordinates, + context_menu_coordinates: (node_graph_point + node_graph_shift).into(), context_menu_data, }); @@ -702,21 +841,21 @@ impl<'a> MessageHandler> for NodeG return; }; - if modify_import_export.add_import_export.clicked_input_port_from_point(node_graph_point).is_some() { + if let Some(remove_import_index) = modify_import_export.remove_imports_exports.clicked_output_port_from_point(node_graph_point) { responses.add(DocumentMessage::AddTransaction); - responses.add(NodeGraphMessage::AddExport); - return; - } else if modify_import_export.add_import_export.clicked_output_port_from_point(node_graph_point).is_some() { - responses.add(DocumentMessage::AddTransaction); - responses.add(NodeGraphMessage::AddImport); - return; - } else if let Some(remove_import_index) = modify_import_export.remove_imports_exports.clicked_output_port_from_point(node_graph_point) { - responses.add(DocumentMessage::AddTransaction); - responses.add(NodeGraphMessage::RemoveImport { import_index: remove_import_index }); + if remove_import_index == 0 { + responses.add(NodeGraphMessage::ExposeEncapsulatingPrimaryInput { exposed: false }) + } else { + responses.add(NodeGraphMessage::RemoveImport { import_index: remove_import_index }); + } return; } else if let Some(remove_export_index) = modify_import_export.remove_imports_exports.clicked_input_port_from_point(node_graph_point) { responses.add(DocumentMessage::AddTransaction); - responses.add(NodeGraphMessage::RemoveExport { export_index: remove_export_index }); + if remove_export_index == 0 { + responses.add(NodeGraphMessage::ExposePrimaryExport { exposed: false }) + } else { + responses.add(NodeGraphMessage::RemoveExport { export_index: remove_export_index }); + } return; } else if let Some(move_import_index) = modify_import_export.reorder_imports_exports.clicked_output_port_from_point(node_graph_point) { responses.add(DocumentMessage::StartTransaction); @@ -737,8 +876,9 @@ impl<'a> MessageHandler> for NodeG if self.context_menu.is_some() { self.context_menu = None; self.wire_in_progress_from_connector = None; - self.wire_in_progress_type = FrontendGraphDataType::General; self.wire_in_progress_to_connector = None; + self.wire_in_progress_type = FrontendGraphDataType::General; + responses.add(FrontendMessage::UpdateContextMenuInformation { context_menu_information: self.context_menu.clone(), }); @@ -752,10 +892,8 @@ impl<'a> MessageHandler> for NodeG } // Alt-click sets the clicked node as previewed - if alt_click { - if let Some(clicked_node) = clicked_id { - self.preview_on_mouse_up = Some(clicked_node); - } + if alt_click && let Some(clicked_node) = clicked_id { + self.preview_on_mouse_up = Some(clicked_node); } // Begin moving an existing wire @@ -765,13 +903,14 @@ impl<'a> MessageHandler> for NodeG self.disconnecting = Some(*clicked_input); let output_connector = if *clicked_input == InputConnector::Export(0) { - network_interface.root_node(selection_network_path).map(|root_node| root_node.to_connector()) + network_interface.root_node(breadcrumb_network_path).map(|root_node| root_node.to_connector()) } else { - network_interface.upstream_output_connector(clicked_input, selection_network_path) + network_interface.upstream_output_connector(clicked_input, breadcrumb_network_path) }; let Some(output_connector) = output_connector else { return }; - self.wire_in_progress_from_connector = network_interface.output_position(&output_connector, selection_network_path); - self.wire_in_progress_type = FrontendGraphDataType::from_type(&network_interface.input_type(clicked_input, breadcrumb_network_path).0); + self.wire_in_progress_from_connector = network_interface.output_position(&output_connector, breadcrumb_network_path); + + self.wire_in_progress_type = network_interface.output_type(&output_connector, breadcrumb_network_path).displayed_type(); return; } @@ -781,14 +920,8 @@ impl<'a> MessageHandler> for NodeG self.initial_disconnecting = false; self.wire_in_progress_from_connector = network_interface.output_position(&clicked_output, selection_network_path); - if let Some((output_type, source)) = clicked_output - .node_id() - .map(|node_id| network_interface.output_type(&node_id, clicked_output.index(), breadcrumb_network_path)) - { - self.wire_in_progress_type = FrontendGraphDataType::displayed_type(&output_type, &source); - } else { - self.wire_in_progress_type = FrontendGraphDataType::General; - } + let output_type = network_interface.output_type(&clicked_output, breadcrumb_network_path); + self.wire_in_progress_type = output_type.displayed_type(); self.update_node_graph_hints(responses); return; @@ -865,7 +998,7 @@ impl<'a> MessageHandler> for NodeG } // Clicked on the graph background so we box select - if !shift_click { + if !shift_click && !alt_click { responses.add(NodeGraphMessage::SelectedNodesSet { nodes: Vec::new() }) } self.box_selection_start = Some((node_graph_point, false)); @@ -882,7 +1015,7 @@ impl<'a> MessageHandler> for NodeG // Auto-panning let messages = [NodeGraphMessage::PointerOutsideViewport { shift }.into(), NodeGraphMessage::PointerMove { shift }.into()]; - self.auto_panning.setup_by_mouse_position(ipp, &messages, responses); + self.auto_panning.setup_by_mouse_position(ipp, viewport, &messages, responses); let viewport_location = ipp.mouse.position; let point = network_metadata @@ -907,10 +1040,11 @@ impl<'a> MessageHandler> for NodeG // Disconnect if the wire was previously connected to an input if let Some(disconnecting) = &self.disconnecting { let mut disconnect_root_node = false; - if let Previewing::Yes { root_node_to_restore } = network_interface.previewing(selection_network_path) { - if root_node_to_restore.is_some() && *disconnecting == InputConnector::Export(0) { - disconnect_root_node = true; - } + if let Previewing::Yes { root_node_to_restore } = network_interface.previewing(selection_network_path) + && root_node_to_restore.is_some() + && *disconnecting == InputConnector::Export(0) + { + disconnect_root_node = true; } if disconnect_root_node { responses.add(NodeGraphMessage::DisconnectRootNode); @@ -1019,7 +1153,8 @@ impl<'a> MessageHandler> for NodeG }; (position > point.y).then_some(*index) }) - .unwrap_or(modify_import_export.reorder_imports_exports.output_ports().count()), + .filter(|end_index| *end_index > 0) // An import cannot be reordered to be the primary + .unwrap_or_else(|| modify_import_export.reorder_imports_exports.output_ports().count() + 1), ); responses.add(FrontendMessage::UpdateImportReorderIndex { index: self.end_index }); } else if self.reordering_export.is_some() { @@ -1039,7 +1174,8 @@ impl<'a> MessageHandler> for NodeG }; (position > point.y).then_some(*index) }) - .unwrap_or(modify_import_export.reorder_imports_exports.input_ports().count()), + .filter(|end_index| *end_index > 0) // An export cannot be reordered to be the primary + .unwrap_or_else(|| modify_import_export.reorder_imports_exports.input_ports().count() + 1), ); responses.add(FrontendMessage::UpdateExportReorderIndex { index: self.end_index }); } @@ -1062,13 +1198,13 @@ impl<'a> MessageHandler> for NodeG responses.add(NodeGraphMessage::TogglePreview { node_id: preview_node }); self.preview_on_mouse_up = None; } - if let Some(node_to_deselect) = self.deselect_on_pointer_up.take() { - if !self.drag_start.as_ref().is_some_and(|t| t.1) { - let mut new_selected_nodes = selected_nodes.selected_nodes_ref().clone(); - new_selected_nodes.remove(node_to_deselect); - responses.add(NodeGraphMessage::SelectedNodesSet { nodes: new_selected_nodes }); - return; - } + if let Some(node_to_deselect) = self.deselect_on_pointer_up.take() + && !self.drag_start.as_ref().is_some_and(|t| t.1) + { + let mut new_selected_nodes = selected_nodes.selected_nodes_ref().clone(); + new_selected_nodes.remove(node_to_deselect); + responses.add(NodeGraphMessage::SelectedNodesSet { nodes: new_selected_nodes }); + return; } let point = network_metadata .persistent_metadata @@ -1094,33 +1230,29 @@ impl<'a> MessageHandler> for NodeG responses.add(NodeGraphMessage::RunDocumentGraph); responses.add(NodeGraphMessage::SendGraph); - } else if output_connector.is_some() && input_connector.is_none() && !self.initial_disconnecting { + } else if !self.initial_disconnecting + && input_connector.is_none() + && let Some(output_connector) = output_connector + { // If the add node menu is already open, we don't want to open it again if self.context_menu.is_some() { return; } + + // Get the output types from the network interface let Some(network_metadata) = network_interface.network_metadata(selection_network_path) else { warn!("No network_metadata"); return; }; - // Get the compatible type from the output connector - let compatible_type = output_connector.and_then(|output_connector| { - output_connector.node_id().and_then(|node_id| { - // Get the output types from the network interface - let (output_type, type_source) = network_interface.output_type(&node_id, output_connector.index(), selection_network_path); - match type_source { - TypeSource::RandomProtonodeImplementation | TypeSource::Error(_) => None, - _ => Some(format!("type:{}", output_type.nested_type())), - } - }) - }); - let appear_right_of_mouse = if ipp.mouse.position.x > ipp.viewport_bounds.size().x - 173. { -173. } else { 0. }; - let appear_above_mouse = if ipp.mouse.position.y > ipp.viewport_bounds.size().y - 34. { -34. } else { 0. }; + let appear_right_of_mouse = if ipp.mouse.position.x > viewport.size().y() - 173. { -173. } else { 0. }; + let appear_above_mouse = if ipp.mouse.position.y > viewport.size().y() - 34. { -34. } else { 0. }; let node_graph_shift = DVec2::new(appear_right_of_mouse, appear_above_mouse) / network_metadata.persistent_metadata.navigation_metadata.node_graph_to_viewport.matrix2.x_axis.x; + let compatible_type = network_interface.output_type(&output_connector, selection_network_path).add_node_string(); + self.context_menu = Some(ContextMenuInformation { - context_menu_coordinates: ((point.x + node_graph_shift.x) as i32, (point.y + node_graph_shift.y) as i32), + context_menu_coordinates: (point + node_graph_shift).into(), context_menu_data: ContextMenuData::CreateNode { compatible_type }, }); @@ -1215,7 +1347,7 @@ impl<'a> MessageHandler> for NodeG { return None; } - log::debug!("preferences.graph_wire_style: {:?}", preferences.graph_wire_style); + let (wire, is_stack) = network_interface.vector_wire_from_input(&input, preferences.graph_wire_style, selection_network_path)?; let node_bbox = kurbo::Rect::new(node_bbox[0].x, node_bbox[0].y, node_bbox[1].x, node_bbox[1].y).to_path(DEFAULT_ACCURACY); @@ -1283,14 +1415,18 @@ impl<'a> MessageHandler> for NodeG }); responses.add(DocumentMessage::EndTransaction); } + self.drag_start = None; self.begin_dragging = false; self.box_selection_start = None; + self.wire_in_progress_from_connector = None; - self.wire_in_progress_type = FrontendGraphDataType::General; self.wire_in_progress_to_connector = None; + self.wire_in_progress_type = FrontendGraphDataType::General; + self.reordering_export = None; self.reordering_import = None; + responses.add(DocumentMessage::EndTransaction); responses.add(FrontendMessage::UpdateWirePathInProgress { wire_path: None }); responses.add(FrontendMessage::UpdateBox { box_selection: None }); @@ -1300,7 +1436,7 @@ impl<'a> MessageHandler> for NodeG } NodeGraphMessage::PointerOutsideViewport { shift } => { if self.drag_start.is_some() || self.box_selection_start.is_some() || (self.wire_in_progress_from_connector.is_some() && self.context_menu.is_none()) { - let _ = self.auto_panning.shift_viewport(ipp, responses); + let _ = self.auto_panning.shift_viewport(ipp, viewport, responses); } else { // Auto-panning let messages = [NodeGraphMessage::PointerOutsideViewport { shift }.into(), NodeGraphMessage::PointerMove { shift }.into()]; @@ -1436,13 +1572,19 @@ impl<'a> MessageHandler> for NodeG responses.add(NodeGraphMessage::RunDocumentGraph); responses.add(NodeGraphMessage::SendGraph); } + NodeGraphMessage::UpdateNodeGraphWidth => { + network_interface.set_node_graph_width(viewport.size().x(), breadcrumb_network_path); + responses.add(NodeGraphMessage::UpdateImportsExports); + } NodeGraphMessage::RemoveImport { import_index: usize } => { network_interface.remove_import(usize, selection_network_path); + responses.add(NodeGraphMessage::UpdateImportsExports); responses.add(NodeGraphMessage::SendGraph); responses.add(NodeGraphMessage::RunDocumentGraph); } NodeGraphMessage::RemoveExport { export_index: usize } => { network_interface.remove_export(usize, selection_network_path); + responses.add(NodeGraphMessage::UpdateImportsExports); responses.add(NodeGraphMessage::SendGraph); responses.add(NodeGraphMessage::RunDocumentGraph); } @@ -1468,7 +1610,7 @@ impl<'a> MessageHandler> for NodeG return; }; selected_nodes.add_selected_nodes(nodes); - responses.add(BroadcastEvent::SelectionChanged); + responses.add(EventMessage::SelectionChanged); } NodeGraphMessage::SelectedNodesRemove { nodes } => { let Some(selected_nodes) = network_interface.selected_nodes_mut(selection_network_path) else { @@ -1476,7 +1618,7 @@ impl<'a> MessageHandler> for NodeG return; }; selected_nodes.retain_selected_nodes(|node| !nodes.contains(node)); - responses.add(BroadcastEvent::SelectionChanged); + responses.add(EventMessage::SelectionChanged); } NodeGraphMessage::SelectedNodesSet { nodes } => { let Some(selected_nodes) = network_interface.selected_nodes_mut(selection_network_path) else { @@ -1484,8 +1626,7 @@ impl<'a> MessageHandler> for NodeG return; }; selected_nodes.set_selected_nodes(nodes); - responses.add(BroadcastEvent::SelectionChanged); - responses.add(PropertiesPanelMessage::Refresh); + responses.add(EventMessage::SelectionChanged); } NodeGraphMessage::SendClickTargets => responses.add(FrontendMessage::UpdateClickTargets { click_targets: Some(network_interface.collect_frontend_click_targets(breadcrumb_network_path)), @@ -1507,20 +1648,20 @@ impl<'a> MessageHandler> for NodeG return; }; - let viewport_bbox = ipp.document_bounds(); + let viewport_bbox = [DVec2::ZERO, viewport.size().into_dvec2()]; let document_bbox: [DVec2; 2] = viewport_bbox.map(|p| network_metadata.persistent_metadata.navigation_metadata.node_graph_to_viewport.inverse().transform_point2(p)); let mut nodes = Vec::new(); for node_id in &self.frontend_nodes { let Some(node_bbox) = network_interface.node_bounding_box(node_id, breadcrumb_network_path) else { - log::error!("Could not get bbox for node: {:?}", node_id); + log::error!("Could not get bbox for node: {node_id:?}"); continue; }; if node_bbox[1].x >= document_bbox[0].x && node_bbox[0].x <= document_bbox[1].x && node_bbox[1].y >= document_bbox[0].y && node_bbox[0].y <= document_bbox[1].y { nodes.push(*node_id); } - for error in &self.node_graph_errors { + for error in &network_interface.resolved_types.node_graph_errors { if error.node_path.contains(node_id) { nodes.push(*node_id); } @@ -1539,6 +1680,8 @@ impl<'a> MessageHandler> for NodeG responses.add(FrontendMessage::UpdateNodeGraphNodes { nodes }); responses.add(NodeGraphMessage::UpdateVisibleNodes); + let error = self.node_graph_error(network_interface, breadcrumb_network_path); + responses.add(FrontendMessage::UpdateNodeGraphErrorDiagnostic { error }); let (layer_widths, chain_widths, has_left_input_wire) = network_interface.collect_layer_widths(breadcrumb_network_path); responses.add(NodeGraphMessage::UpdateImportsExports); @@ -1551,13 +1694,6 @@ impl<'a> MessageHandler> for NodeG self.update_node_graph_hints(responses); } } - NodeGraphMessage::SetGridAlignedEdges => { - if graph_view_overlay_open { - network_interface.set_grid_aligned_edges(DVec2::new(ipp.viewport_bounds.bottom_right.x - ipp.viewport_bounds.top_left.x, 0.), breadcrumb_network_path); - // Send the new edges to the frontend - responses.add(NodeGraphMessage::UpdateImportsExports); - } - } NodeGraphMessage::SetInputValue { node_id, input_index, value } => { let input = NodeInput::value(value, false); responses.add(NodeGraphMessage::SetInput { @@ -1677,6 +1813,7 @@ impl<'a> MessageHandler> for NodeG responses.add(DocumentMessage::RenderRulers); responses.add(DocumentMessage::RenderScrollbars); responses.add(NodeGraphMessage::SendGraph); + responses.add(OverlaysMessage::Draw); // Redraw overlays to update artboard names } NodeGraphMessage::SetDisplayNameImpl { node_id, alias } => { network_interface.set_display_name(&node_id, alias, selection_network_path); @@ -1717,7 +1854,7 @@ impl<'a> MessageHandler> for NodeG } NodeGraphMessage::ToggleLocked { node_id } => { let Some(node_metadata) = network_interface.document_network_metadata().persistent_metadata.node_metadata.get(&node_id) else { - log::error!("Cannot get node {:?} in NodeGraphMessage::ToggleLocked", node_id); + log::error!("Cannot get node {node_id:?} in NodeGraphMessage::ToggleLocked"); return; }; @@ -1816,12 +1953,13 @@ impl<'a> MessageHandler> for NodeG .transform_point2(ipp.mouse.position); let shift = ipp.keyboard.get(Key::Shift as usize); + let alt = ipp.keyboard.get(Key::Alt as usize); let Some(selected_nodes) = network_interface.selected_nodes_in_nested_network(selection_network_path) else { - log::error!("Could not get selected nodes in PointerMove"); + log::error!("Could not get selected nodes in UpdateBoxSelection"); return; }; let previous_selection = selected_nodes.selected_nodes_ref().iter().cloned().collect::>(); - let mut nodes = if shift { + let mut nodes = if shift || alt { selected_nodes.selected_nodes_ref().iter().cloned().collect::>() } else { HashSet::new() @@ -1833,8 +1971,12 @@ impl<'a> MessageHandler> for NodeG continue; }; let quad = Quad::from_box([box_selection_start, box_selection_end_graph]); - if click_targets.node_click_target.intersect_path(|| quad.bezier_lines(), DAffine2::IDENTITY) { - nodes.insert(node_id); + if click_targets.node_click_target.intersect_path(|| quad.to_lines(), DAffine2::IDENTITY) { + if alt { + nodes.remove(&node_id); + } else { + nodes.insert(node_id); + } } } if nodes != previous_selection { @@ -1846,34 +1988,30 @@ impl<'a> MessageHandler> for NodeG } } NodeGraphMessage::UpdateImportsExports => { - let imports = network_interface.frontend_imports(breadcrumb_network_path).unwrap_or_default(); - let exports = network_interface.frontend_exports(breadcrumb_network_path).unwrap_or_default(); - let add_import = network_interface - .frontend_import_export_modify( - |modify_import_export_click_target| modify_import_export_click_target.add_import_export.output_ports().collect::>(), - breadcrumb_network_path, - ) - .into_iter() - .next(); - let add_export = network_interface - .frontend_import_export_modify( - |modify_import_export_click_target| modify_import_export_click_target.add_import_export.input_ports().collect::>(), - breadcrumb_network_path, - ) - .into_iter() - .next(); + let imports = network_interface.frontend_imports(breadcrumb_network_path); + let exports = network_interface.frontend_exports(breadcrumb_network_path); + + let Some((import_position, export_position)) = network_interface.import_export_position(breadcrumb_network_path) else { + log::error!("Could not get import export positions"); + return; + }; + + // Do not show the add import or add export button in the document network; + let add_import_export = !breadcrumb_network_path.is_empty(); + responses.add(NodeGraphMessage::UpdateVisibleNodes); responses.add(NodeGraphMessage::SendWires); responses.add(FrontendMessage::UpdateImportsExports { imports, exports, - add_import, - add_export, + import_position, + export_position, + add_import_export, }); } NodeGraphMessage::UpdateLayerPanel => { - Self::update_layer_panel(network_interface, selection_network_path, collapsed, responses); + Self::update_layer_panel(network_interface, selection_network_path, collapsed, layers_panel_open, responses); } NodeGraphMessage::UpdateEdges => { // Update the import/export UI edges whenever the PTZ changes or the bounding box of all nodes changes @@ -1884,18 +2022,12 @@ impl<'a> MessageHandler> for NodeG return; }; selected_nodes.clear_selected_nodes(); - responses.add(BroadcastEvent::SelectionChanged); + responses.add(EventMessage::SelectionChanged); responses.add(NodeGraphMessage::SendGraph); } NodeGraphMessage::UpdateTypes { resolved_types, node_graph_errors } => { - for (path, node_type) in resolved_types.add { - network_interface.resolved_types.types.insert(path.to_vec(), node_type); - } - for path in resolved_types.remove { - network_interface.resolved_types.types.remove(&path.to_vec()); - } - self.node_graph_errors = node_graph_errors; + network_interface.resolved_types.update(resolved_types, node_graph_errors); } NodeGraphMessage::UpdateActionButtons => { if selection_network_path == breadcrumb_network_path { @@ -1968,7 +2100,7 @@ impl NodeGraphMessageHandler { /// Send the cached layout to the frontend for the control bar at the top of the node panel fn send_node_bar_layout(&self, responses: &mut VecDeque) { responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(WidgetLayout::new(self.widgets.to_vec())), + layout: Layout(self.widgets.to_vec()), layout_target: LayoutTarget::NodeGraphControlBar, }); } @@ -1986,11 +2118,6 @@ impl NodeGraphMessageHandler { return; }; - let Some(network) = network_interface.nested_network(breadcrumb_network_path) else { - warn!("No network in update_selection_action_buttons"); - return; - }; - let Some(selected_nodes) = network_interface.selected_nodes_in_nested_network(breadcrumb_network_path) else { warn!("No selected nodes in update_selection_action_buttons"); return; @@ -2004,24 +2131,18 @@ impl NodeGraphMessageHandler { let mut selected_layers = selected_nodes.selected_layers(network_interface.document_metadata()); let selected_layer = selected_layers.next(); let has_multiple_selection = selected_layers.next().is_some(); + for _ in selected_layers {} let mut widgets = vec![ PopoverButton::new() .icon(Some("Node".to_string())) - .tooltip("New Node (Right Click)") + .tooltip_label("New Node") + .tooltip_description("To add a node at the pointer location, perform the shortcut in an open area of the graph.") + .tooltip_shortcut(action_shortcut_manual!(Key::MouseRight)) .popover_layout({ // Showing only compatible types let compatible_type = match (selection_includes_layers, has_multiple_selection, selected_layer) { - (true, false, Some(layer)) => { - let graph_layer = graph_modification_utils::NodeGraphLayer::new(layer, network_interface); - let node_type = graph_layer.horizontal_layer_flow().nth(1); - if let Some(node_id) = node_type { - let (output_type, _) = network_interface.output_type(&node_id, 0, &[]); - Some(format!("type:{}", output_type.nested_type())) - } else { - None - } - } + (true, false, Some(layer)) => network_interface.output_type(&OutputConnector::node(layer.to_node(), 1), &[]).add_node_string(), _ => None, }; @@ -2054,54 +2175,59 @@ impl NodeGraphMessageHandler { } } }) - .widget_holder(); - vec![LayoutGroup::Row { widgets: vec![node_chooser] }] + .widget_instance(); + Layout(vec![LayoutGroup::Row { widgets: vec![node_chooser] }]) }) - .widget_holder(), + .widget_instance(), // - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), // IconButton::new("Folder", 24) - .tooltip("Group Selected") - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::GroupSelectedLayers)) + .tooltip_label("Group Selected") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::GroupSelectedLayers)) .on_update(|_| { let group_folder_type = GroupFolderType::Layer; DocumentMessage::GroupSelectedLayers { group_folder_type }.into() }) .disabled(!has_selection) - .widget_holder(), + .widget_instance(), IconButton::new("NewLayer", 24) - .tooltip("New Layer") - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::CreateEmptyFolder)) + .tooltip_label("New Layer") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::CreateEmptyFolder)) .on_update(|_| DocumentMessage::CreateEmptyFolder.into()) - .widget_holder(), + .widget_instance(), IconButton::new("Trash", 24) - .tooltip("Delete Selected") - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::DeleteSelectedLayers)) + .tooltip_label("Delete Selected") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::DeleteSelectedLayers)) .on_update(|_| DocumentMessage::DeleteSelectedLayers.into()) .disabled(!has_selection) - .widget_holder(), + .widget_instance(), // - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), // IconButton::new(if selection_all_locked { "PadlockLocked" } else { "PadlockUnlocked" }, 24) .hover_icon(Some((if selection_all_locked { "PadlockUnlocked" } else { "PadlockLocked" }).into())) - .tooltip(if selection_all_locked { "Unlock Selected" } else { "Lock Selected" }) - .tooltip_shortcut(action_keys!(NodeGraphMessageDiscriminant::ToggleSelectedLocked)) + .tooltip_label(if selection_all_locked { "Unlock Selected" } else { "Lock Selected" }) + .tooltip_shortcut(action_shortcut!(NodeGraphMessageDiscriminant::ToggleSelectedLocked)) .on_update(|_| NodeGraphMessage::ToggleSelectedLocked.into()) .disabled(!has_selection || !selection_includes_layers) - .widget_holder(), + .widget_instance(), IconButton::new(if selection_all_visible { "EyeVisible" } else { "EyeHidden" }, 24) .hover_icon(Some((if selection_all_visible { "EyeHide" } else { "EyeShow" }).into())) - .tooltip(if selection_all_visible { "Hide Selected" } else { "Show Selected" }) - .tooltip_shortcut(action_keys!(NodeGraphMessageDiscriminant::ToggleSelectedVisibility)) + .tooltip_label(if selection_all_visible { "Hide Selected" } else { "Show Selected" }) + .tooltip_shortcut(action_shortcut!(NodeGraphMessageDiscriminant::ToggleSelectedVisibility)) .on_update(|_| NodeGraphMessage::ToggleSelectedVisibility.into()) .disabled(!has_selection) - .widget_holder(), + .widget_instance(), ]; let mut selection = selected_nodes.selected_nodes(); let (selection, no_other_selections) = (selection.next(), selection.count() == 0); + + let Some(network) = network_interface.nested_network(breadcrumb_network_path) else { + warn!("No network in update_selection_action_buttons"); + return; + }; let previewing = if matches!(network_interface.previewing(breadcrumb_network_path), Previewing::Yes { .. }) { network.exports.iter().find_map(|export| { let NodeInput::Node { node_id, .. } = export else { return None }; @@ -2115,10 +2241,10 @@ impl NodeGraphMessageHandler { if let Some(node_id) = previewing { let button = TextButton::new("End Preview") .icon(Some("FrameAll".to_string())) - .tooltip("Restore preview to the graph output") + .tooltip_description("Restore preview to the graph output.") .on_update(move |_| NodeGraphMessage::TogglePreview { node_id }.into()) - .widget_holder(); - widgets.extend([Separator::new(SeparatorType::Unrelated).widget_holder(), button]); + .widget_instance(); + widgets.extend([Separator::new(SeparatorType::Unrelated).widget_instance(), button]); } else if let Some(&node_id) = selection { let selection_is_not_already_the_output = !network .exports @@ -2127,17 +2253,19 @@ impl NodeGraphMessageHandler { if selection_is_not_already_the_output && no_other_selections { let button = TextButton::new("Preview") .icon(Some("FrameAll".to_string())) - .tooltip("Preview selected node/layer (Shortcut: Alt-click node/layer)") + .tooltip_label("Preview") + .tooltip_description("Temporarily set the graph output to the selected node or layer. Perform the shortcut on a node or layer for quick access.") + .tooltip_shortcut(action_shortcut_manual!(Key::Alt, Key::MouseLeft)) .on_update(move |_| NodeGraphMessage::TogglePreview { node_id }.into()) - .widget_holder(); - widgets.extend([Separator::new(SeparatorType::Unrelated).widget_holder(), button]); + .widget_instance(); + widgets.extend([Separator::new(SeparatorType::Unrelated).widget_instance(), button]); } } let subgraph_path_names_length = subgraph_path_names.len(); if subgraph_path_names_length >= 2 { widgets.extend([ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), BreadcrumbTrailButtons::new(subgraph_path_names) .on_update(move |index| { DocumentMessage::ExitNestedNetwork { @@ -2145,7 +2273,7 @@ impl NodeGraphMessageHandler { } .into() }) - .widget_holder(), + .widget_instance(), ]); } @@ -2169,26 +2297,26 @@ impl NodeGraphMessageHandler { .percentage() .display_decimal_places(0) .label("Fade Artwork") - .tooltip("Opacity of the graph background that covers the artwork") + .tooltip_description("Opacity of the graph background that covers the artwork.") .on_update(move |number_input: &NumberInput| { DocumentMessage::SetGraphFadeArtwork { percentage: number_input.value.unwrap_or(graph_fade_artwork_percentage), } .into() }) - .widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), ]; widgets.extend(navigation_controls(node_graph_ptz, navigation_handler, true)); widgets.extend([ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), TextButton::new("Node Graph") .icon(Some("GraphViewOpen".into())) .hover_icon(Some("GraphViewClosed".into())) - .tooltip("Hide Node Graph") - .tooltip_shortcut(action_keys!(DocumentMessageDiscriminant::GraphViewOverlayToggle)) + .tooltip_label("Hide Node Graph") + .tooltip_shortcut(action_shortcut!(DocumentMessageDiscriminant::GraphViewOverlayToggle)) .on_update(move |_| DocumentMessage::GraphViewOverlayToggle.into()) - .widget_holder(), + .widget_instance(), ]); self.widgets[1] = LayoutGroup::Row { widgets }; @@ -2235,11 +2363,11 @@ impl NodeGraphMessageHandler { if let [node_id] = *nodes.as_slice() { properties.push(LayoutGroup::Row { widgets: vec![ - Separator::new(SeparatorType::Related).widget_holder(), - IconLabel::new("Node").tooltip("Name of the selected node").widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + Separator::new(SeparatorType::Related).widget_instance(), + IconLabel::new("Node").tooltip_description("Name of the selected node.").widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), TextInput::new(context.network_interface.display_name(&node_id, context.selection_network_path)) - .tooltip("Name of the selected node") + .tooltip_description("Name of the selected node.") .on_update(move |text_input| { NodeGraphMessage::SetDisplayName { node_id, @@ -2248,8 +2376,8 @@ impl NodeGraphMessageHandler { } .into() }) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), ], }); } @@ -2263,14 +2391,14 @@ impl NodeGraphMessageHandler { // This may require store a separate path for the properties panel let mut properties = vec![LayoutGroup::Row { widgets: vec![ - Separator::new(SeparatorType::Related).widget_holder(), - IconLabel::new("File").tooltip("Name of the current document").widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + Separator::new(SeparatorType::Related).widget_instance(), + IconLabel::new("File").tooltip_description("Name of the current document.").widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), TextInput::new(context.document_name) - .tooltip("Name of the current document") + .tooltip_description("Name of the current document.") .on_update(|text_input| DocumentMessage::RenameDocument { new_name: text_input.value.clone() }.into()) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), ], }]; @@ -2310,11 +2438,11 @@ impl NodeGraphMessageHandler { let mut layer_properties = vec![LayoutGroup::Row { widgets: vec![ - Separator::new(SeparatorType::Related).widget_holder(), - IconLabel::new("Layer").tooltip("Name of the selected layer").widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + Separator::new(SeparatorType::Related).widget_instance(), + IconLabel::new("Layer").tooltip_description("Name of the selected layer.").widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), TextInput::new(context.network_interface.display_name(&layer, context.selection_network_path)) - .tooltip("Name of the selected layer") + .tooltip_description("Name of the selected layer.") .on_update(move |text_input| { NodeGraphMessage::SetDisplayName { node_id: layer, @@ -2323,23 +2451,16 @@ impl NodeGraphMessageHandler { } .into() }) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), PopoverButton::new() .icon(Some("Node".to_string())) - .tooltip("Add an operation to the end of this layer's chain of nodes") + .tooltip_description("Add an operation to the end of this layer's chain of nodes.") .popover_layout({ - let layer_identifier = LayerNodeIdentifier::new(layer, &context.network_interface); - let compatible_type = { - let graph_layer = graph_modification_utils::NodeGraphLayer::new(layer_identifier, &context.network_interface); - let node_type = graph_layer.horizontal_layer_flow().nth(1); - if let Some(node_id) = node_type { - let (output_type, _) = context.network_interface.output_type(&node_id, 0, &[]); - Some(format!("type:{}", output_type.nested_type())) - } else { - None - } - }; + let compatible_type = context + .network_interface + .upstream_output_connector(&InputConnector::node(layer, 1), &[]) + .and_then(|upstream_output| context.network_interface.output_type(&upstream_output, &[]).add_node_string()); let mut node_chooser = NodeCatalog::new(); node_chooser.intial_search = compatible_type.unwrap_or("".to_string()); @@ -2352,11 +2473,11 @@ impl NodeGraphMessageHandler { } .into() }) - .widget_holder(); - vec![LayoutGroup::Row { widgets: vec![node_chooser] }] + .widget_instance(); + Layout(vec![LayoutGroup::Row { widgets: vec![node_chooser] }]) }) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), ], }]; @@ -2413,7 +2534,7 @@ impl NodeGraphMessageHandler { } else { added_wires.push(WirePathUpdate { id: NodeId(u64::MAX), - input_index: usize::MAX, + input_index: u32::MAX as usize, wire_path_update: None, }) } @@ -2422,110 +2543,46 @@ impl NodeGraphMessageHandler { } fn collect_nodes(&self, network_interface: &mut NodeNetworkInterface, breadcrumb_network_path: &[NodeId]) -> Vec { - let Some(outward_wires) = network_interface.outward_wires(breadcrumb_network_path).cloned() else { - return Vec::new(); - }; - let mut can_be_layer_lookup = HashSet::new(); - let mut position_lookup = HashMap::new(); let Some(network) = network_interface.nested_network(breadcrumb_network_path) else { log::error!("Could not get nested network when collecting nodes"); return Vec::new(); }; - - for node_id in network.nodes.keys().cloned().collect::>() { - if network_interface.is_eligible_to_be_layer(&node_id, breadcrumb_network_path) { - can_be_layer_lookup.insert(node_id); - } - if let Some(position) = network_interface.position(&node_id, breadcrumb_network_path) { - position_lookup.insert(node_id, position); - } else { - log::error!("Could not get position for node {node_id}"); - } - } - - let mut frontend_inputs_lookup = frontend_inputs_lookup(breadcrumb_network_path, network_interface); - let Some(network) = network_interface.nested_network(breadcrumb_network_path) else { - log::error!("Could not get nested network when collecting nodes"); - return Vec::new(); - }; - let Some(network_metadata) = network_interface.network_metadata(breadcrumb_network_path) else { - log::error!("Could not get network_metadata when collecting nodes"); - return Vec::new(); - }; - let mut nodes = Vec::new(); - for (&node_id, node) in &network.nodes { - let node_id_path = [breadcrumb_network_path, (&[node_id])].concat(); + for (node_id, visible) in network.nodes.iter().map(|(node_id, node)| (*node_id, node.visible)).collect::>() { + let primary_input_connector = InputConnector::node(node_id, 0); - let inputs = frontend_inputs_lookup.remove(&node_id).unwrap_or_default(); - - let mut inputs = inputs.into_iter().map(|input| { - input.map(|input| FrontendGraphInput { - data_type: FrontendGraphDataType::displayed_type(&input.ty, &input.type_source), - resolved_type: format!("{:?}", &input.ty), - valid_types: input.valid_types.iter().map(|ty| ty.to_string()).collect(), - name: input.input_name, - description: input.input_description, - connected_to: input.output_connector, - }) - }); - - let primary_input = inputs.next().flatten(); - let exposed_inputs = inputs.flatten().collect(); - - let (output_type, type_source) = network_interface.output_type(&node_id, 0, breadcrumb_network_path); - let frontend_data_type = FrontendGraphDataType::displayed_type(&output_type, &type_source); - - let connected_to = outward_wires.get(&OutputConnector::node(node_id, 0)).cloned().unwrap_or_default(); - let primary_output = if network_interface.has_primary_output(&node_id, breadcrumb_network_path) { - Some(FrontendGraphOutput { - data_type: frontend_data_type, - name: "Output 1".to_string(), - description: String::new(), - resolved_type: format!("{:?}", output_type), - connected_to, - }) + let primary_input = if network_interface + .input_from_connector(&primary_input_connector, breadcrumb_network_path) + .is_some_and(|input| input.is_exposed()) + { + network_interface.frontend_input_from_connector(&primary_input_connector, breadcrumb_network_path) } else { None }; + let exposed_inputs = (1..network_interface.number_of_inputs(&node_id, breadcrumb_network_path)) + .filter_map(|input_index| network_interface.frontend_input_from_connector(&InputConnector::node(node_id, input_index), breadcrumb_network_path)) + .collect(); - let mut exposed_outputs = Vec::new(); - for output_index in 0..network_interface.number_of_outputs(&node_id, breadcrumb_network_path) { - if output_index == 0 && network_interface.has_primary_output(&node_id, breadcrumb_network_path) { - continue; - } - let (output_type, type_source) = network_interface.output_type(&node_id, 0, breadcrumb_network_path); - let data_type = FrontendGraphDataType::displayed_type(&output_type, &type_source); + let primary_output = network_interface.frontend_output_from_connector(&OutputConnector::node(node_id, 0), breadcrumb_network_path); - let Some(node_metadata) = network_metadata.persistent_metadata.node_metadata.get(&node_id) else { - log::error!("Could not get node_metadata when getting output for {node_id}"); - continue; - }; - let output_name = node_metadata - .persistent_metadata - .output_names - .get(output_index) - .cloned() - .filter(|output_name| !output_name.is_empty()) - .unwrap_or_else(|| output_type.nested_type().to_string()); - - let connected_to = outward_wires.get(&OutputConnector::node(node_id, output_index)).cloned().unwrap_or_default(); - exposed_outputs.push(FrontendGraphOutput { - data_type, - name: output_name, - description: String::new(), - resolved_type: format!("{:?}", output_type), - connected_to, - }); - } - let Some(network) = network_interface.nested_network(breadcrumb_network_path) else { - log::error!("Could not get nested network when collecting nodes"); - return Vec::new(); + let exposed_outputs = (1..network_interface.number_of_outputs(&node_id, breadcrumb_network_path)) + .filter_map(|output_index| network_interface.frontend_output_from_connector(&OutputConnector::node(node_id, output_index), breadcrumb_network_path)) + .collect(); + let (primary_output_connected_to_layer, primary_input_connected_to_layer) = if network_interface.is_layer(&node_id, breadcrumb_network_path) { + ( + network_interface.primary_output_connected_to_layer(&node_id, breadcrumb_network_path), + network_interface.primary_input_connected_to_layer(&node_id, breadcrumb_network_path), + ) + } else { + (false, false) }; - let is_export = network.exports.first().is_some_and(|export| export.as_node().is_some_and(|export_node_id| node_id == export_node_id)); + + let is_export = network_interface + .input_from_connector(&InputConnector::Export(0), breadcrumb_network_path) + .is_some_and(|export| export.as_node().is_some_and(|export_node_id| node_id == export_node_id)); let is_root_node = network_interface.root_node(breadcrumb_network_path).is_some_and(|root_node| root_node.node_id == node_id); - let Some(position) = position_lookup.get(&node_id).map(|pos| (pos.x, pos.y)) else { + let Some(position) = network_interface.position(&node_id, breadcrumb_network_path) else { log::error!("Could not get position for node: {node_id}"); continue; }; @@ -2533,37 +2590,24 @@ impl NodeGraphMessageHandler { let locked = network_interface.is_locked(&node_id, breadcrumb_network_path); - let errors = self - .node_graph_errors - .iter() - .find(|error| error.node_path == node_id_path) - .map(|error| format!("{:?}", error.error.clone())) - .or_else(|| { - if self.node_graph_errors.iter().any(|error| error.node_path.starts_with(&node_id_path)) { - Some("Node graph type error within this node".to_string()) - } else { - None - } - }); - nodes.push(FrontendNode { id: node_id, is_layer: network_interface .node_metadata(&node_id, breadcrumb_network_path) .is_some_and(|node_metadata| node_metadata.persistent_metadata.is_layer()), - can_be_layer: can_be_layer_lookup.contains(&node_id), + can_be_layer: network_interface.is_eligible_to_be_layer(&node_id, breadcrumb_network_path), reference: network_interface.reference(&node_id, breadcrumb_network_path).cloned().unwrap_or_default(), display_name: network_interface.display_name(&node_id, breadcrumb_network_path), primary_input, exposed_inputs, primary_output, exposed_outputs, + primary_output_connected_to_layer, + primary_input_connected_to_layer, position, previewed, - visible: node.visible, + visible, locked, - errors, - ui_only: false, }); } @@ -2585,7 +2629,34 @@ impl NodeGraphMessageHandler { Some(subgraph_names) } - fn update_layer_panel(network_interface: &NodeNetworkInterface, selection_network_path: &[NodeId], collapsed: &CollapsedLayers, responses: &mut VecDeque) { + fn node_graph_error(&self, network_interface: &mut NodeNetworkInterface, breadcrumb_network_path: &[NodeId]) -> Option { + let graph_error = network_interface + .resolved_types + .node_graph_errors + .iter() + .find(|error| error.node_path.starts_with(breadcrumb_network_path) && error.node_path.len() > breadcrumb_network_path.len())?; + let error = if graph_error.node_path.len() == breadcrumb_network_path.len() + 1 { + format!("{:?}", graph_error.error) + } else { + "Node graph type error within this node".to_string() + }; + let error_node = graph_error.node_path[breadcrumb_network_path.len()]; + + let mut position = network_interface.position(&error_node, breadcrumb_network_path)?; + // Convert to graph space + position *= 24; + if network_interface.is_layer(&error_node, breadcrumb_network_path) { + position += IVec2::new(12, -12) + } + + Some(NodeGraphErrorDiagnostic { position: position.into(), error }) + } + + fn update_layer_panel(network_interface: &NodeNetworkInterface, selection_network_path: &[NodeId], collapsed: &CollapsedLayers, layers_panel_open: bool, responses: &mut VecDeque) { + if !layers_panel_open { + return; + } + let selected_layers = network_interface .selected_nodes() .selected_layers(network_interface.document_metadata()) @@ -2644,7 +2715,6 @@ impl NodeGraphMessageHandler { let data = LayerPanelEntry { id: node_id, alias: network_interface.display_name(&node_id, &[]), - tooltip: if cfg!(debug_assertions) { format!("Layer ID: {node_id}") } else { "".into() }, in_selected_network: selection_network_path.is_empty(), children_allowed, children_present: layer.has_children(network_interface.document_metadata()), @@ -2668,7 +2738,7 @@ impl NodeGraphMessageHandler { } } - pub fn update_node_graph_hints(&self, responses: &mut VecDeque) { + fn update_node_graph_hints(&self, responses: &mut VecDeque) { // A wire is in progress and its start and end connectors are set let wiring = self.wire_in_progress_from_connector.is_some(); @@ -2680,8 +2750,7 @@ impl NodeGraphMessageHandler { // Cancel the ongoing action if wiring || dragging_nodes || dragging_box_selection { - let hint_data = HintData(vec![HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()])]); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + HintData(vec![HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()])]).send_layout(responses); return; } @@ -2689,7 +2758,11 @@ impl NodeGraphMessageHandler { let mut hint_data = HintData(vec![ HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, "Add Node")]), HintGroup(vec![HintInfo::mouse(MouseMotion::Lmb, "Select Node"), HintInfo::keys([Key::Shift], "Extend").prepend_plus()]), - HintGroup(vec![HintInfo::mouse(MouseMotion::LmbDrag, "Select Area"), HintInfo::keys([Key::Shift], "Extend").prepend_plus()]), + HintGroup(vec![ + HintInfo::mouse(MouseMotion::LmbDrag, "Select Area"), + HintInfo::keys([Key::Shift], "Extend").prepend_plus(), + HintInfo::keys([Key::Alt], "Subtract").prepend_plus(), + ]), ]); if self.has_selection { hint_data.0.extend([ @@ -2705,82 +2778,14 @@ impl NodeGraphMessageHandler { HintGroup(vec![HintInfo::mouse(MouseMotion::LmbDouble, "Enter Node Subgraph")]), HintGroup(vec![HintInfo::keys_and_mouse([Key::Alt], MouseMotion::Lmb, "Preview Node Output")]), ]); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } } -#[derive(Default)] -struct InputLookup { - input_name: String, - input_description: String, - ty: Type, - type_source: TypeSource, - valid_types: Vec, - output_connector: Option, -} - -type FrontendInputsLookup = HashMap>>; - -/// Create a lookup hashmap that can be used to create the frontend inputs. This is needed because `input_type` requires a mutable `network_interface`. -fn frontend_inputs_lookup(breadcrumb_network_path: &[NodeId], network_interface: &mut NodeNetworkInterface) -> FrontendInputsLookup { - let Some(network) = network_interface.nested_network(breadcrumb_network_path) else { - return Default::default(); - }; - let mut frontend_inputs_lookup = HashMap::new(); - for (node_id, index, output_connector, is_exposed) in network - .nodes - .iter() - .flat_map(|(node_id, node)| { - node.inputs - .iter() - .enumerate() - .map(|(index, input)| (*node_id, index, OutputConnector::from_input(input), input.is_exposed())) - }) - .collect::>() - { - // Skip not exposed inputs (they still get an entry to help with finding the primary input) - let lookup = if !is_exposed { - None - } else { - // Get the name from the metadata here (since it also requires a reference to the `network_interface`) - let (input_name, input_description) = network_interface.displayed_input_name_and_description(&node_id, index, breadcrumb_network_path); - Some(InputLookup { - input_name, - input_description, - output_connector, - ..Default::default() - }) - }; - frontend_inputs_lookup.entry(node_id).or_insert_with(Vec::new).push(lookup); - } - - for (&node_id, value) in frontend_inputs_lookup.iter_mut() { - for (index, value) in value.iter_mut().enumerate() { - // Skip not exposed inputs for efficiency - let Some(value) = value else { continue }; - // Resolve the type (done in a separate loop because it requires a mutable reference to the `network_interface`) - let (ty, type_source) = network_interface.input_type(&InputConnector::node(node_id, index), breadcrumb_network_path); - value.ty = ty; - value.type_source = type_source; - } - } - - for (&node_id, value) in frontend_inputs_lookup.iter_mut() { - for (index, value) in value.iter_mut().enumerate() { - // Skip not exposed inputs for efficiency - let Some(value) = value else { continue }; - // Resolve the type (done in a separate loop because it requires a mutable reference to the `network_interface`) - value.valid_types = network_interface.valid_input_types(&InputConnector::node(node_id, index), breadcrumb_network_path); - } - } - frontend_inputs_lookup -} - impl Default for NodeGraphMessageHandler { fn default() -> Self { Self { network: Vec::new(), - node_graph_errors: Vec::new(), has_selection: false, widgets: [LayoutGroup::Row { widgets: Vec::new() }, LayoutGroup::Row { widgets: Vec::new() }], drag_start: None, @@ -2812,7 +2817,6 @@ impl Default for NodeGraphMessageHandler { impl PartialEq for NodeGraphMessageHandler { fn eq(&self, other: &Self) -> bool { self.network == other.network - && self.node_graph_errors == other.node_graph_errors && self.has_selection == other.has_selection && self.widgets == other.widgets && self.drag_start == other.drag_start diff --git a/editor/src/messages/portfolio/document/node_graph/node_properties.rs b/editor/src/messages/portfolio/document/node_graph/node_properties.rs index 07739e46d..2369dc784 100644 --- a/editor/src/messages/portfolio/document/node_graph/node_properties.rs +++ b/editor/src/messages/portfolio/document/node_graph/node_properties.rs @@ -4,13 +4,14 @@ use super::document_node_definitions::{NODE_OVERRIDES, NodePropertiesContext}; use super::utility_types::FrontendGraphDataType; use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::portfolio::document::utility_types::network_interface::InputConnector; +use crate::messages::portfolio::utility_types::{FontCatalogStyle, PersistentData}; use crate::messages::prelude::*; use choice::enum_choice; use dyn_any::DynAny; use glam::{DAffine2, DVec2}; -use graph_craft::Type; use graph_craft::document::value::TaggedValue; use graph_craft::document::{DocumentNode, DocumentNodeImplementation, NodeId, NodeInput}; +use graph_craft::{Type, concrete}; use graphene_std::NodeInputDecleration; use graphene_std::animation::RealTimeMode; use graphene_std::extract_xy::XY; @@ -20,20 +21,21 @@ use graphene_std::raster::{ BlendMode, CellularDistanceFunction, CellularReturnType, Color, DomainWarpType, FractalType, LuminanceCalculation, NoiseType, RedGreenBlue, RedGreenBlueAlpha, RelativeAbsolute, SelectiveColorChoice, }; +use graphene_std::table::{Table, TableRow}; use graphene_std::text::{Font, TextAlign}; use graphene_std::transform::{Footprint, ReferencePoint, Transform}; -use graphene_std::vector::misc::{ArcType, CentroidType, GridType, MergeByDistanceAlgorithm, PointSpacingType}; +use graphene_std::vector::misc::{ArcType, CentroidType, ExtrudeJoiningAlgorithm, GridType, MergeByDistanceAlgorithm, PointSpacingType, SpiralType}; use graphene_std::vector::style::{Fill, FillChoice, FillType, GradientStops, GradientType, PaintOrder, StrokeAlign, StrokeCap, StrokeJoin}; pub(crate) fn string_properties(text: &str) -> Vec { - let widget = TextLabel::new(text).widget_holder(); + let widget = TextLabel::new(text).widget_instance(); vec![LayoutGroup::Row { widgets: vec![widget] }] } fn optionally_update_value(value: impl Fn(&T) -> Option + 'static + Send + Sync, node_id: NodeId, input_index: usize) -> impl Fn(&T) -> Message + 'static + Send + Sync { move |input_value: &T| match value(input_value) { Some(value) => NodeGraphMessage::SetInputValue { node_id, input_index, value }.into(), - _ => Message::NoOp, + None => Message::NoOp, } } @@ -45,14 +47,14 @@ pub fn commit_value(_: &T) -> Message { DocumentMessage::AddTransaction.into() } -pub fn expose_widget(node_id: NodeId, index: usize, data_type: FrontendGraphDataType, exposed: bool) -> WidgetHolder { +pub fn expose_widget(node_id: NodeId, index: usize, data_type: FrontendGraphDataType, exposed: bool) -> WidgetInstance { ParameterExposeButton::new() .exposed(exposed) .data_type(data_type) - .tooltip(if exposed { - "Stop exposing this parameter as a node input in the graph" + .tooltip_description(if exposed { + "Stop exposing this parameter as a node input in the graph." } else { - "Expose this parameter as a node input in the graph" + "Expose this parameter as a node input in the graph." }) .on_update(move |_parameter| Message::Batched { messages: Box::new([NodeGraphMessage::ExposeInput { @@ -62,20 +64,20 @@ pub fn expose_widget(node_id: NodeId, index: usize, data_type: FrontendGraphData } .into()]), }) - .widget_holder() + .widget_instance() } // TODO: Remove this when we have proper entry row formatting that includes room for Assists. -pub fn add_blank_assist(widgets: &mut Vec) { +pub fn add_blank_assist(widgets: &mut Vec) { widgets.extend_from_slice(&[ // Custom CSS specific to the Properties panel converts this Section separator into the width of an assist (24px). - Separator::new(SeparatorType::Section).widget_holder(), + Separator::new(SeparatorType::Section).widget_instance(), // This last one is the separator after the 24px assist. - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), ]); } -pub fn start_widgets(parameter_widgets_info: ParameterWidgetsInfo) -> Vec { +pub fn start_widgets(parameter_widgets_info: ParameterWidgetsInfo) -> Vec { let ParameterWidgetsInfo { document_node, node_id, @@ -84,7 +86,8 @@ pub fn start_widgets(parameter_widgets_info: ParameterWidgetsInfo) -> Vec Vec { match concrete_type.alias.as_ref().map(|x| x.as_ref()) { // Aliased types (ambiguous values) - Some("Percentage") => number_widget(default_info, number_input.percentage().min(min(0.)).max(max(100.))).into(), - Some("SignedPercentage") => number_widget(default_info, number_input.percentage().min(min(-100.)).max(max(100.))).into(), - Some("Angle") => number_widget(default_info, number_input.mode_range().min(min(-180.)).max(max(180.)).unit(unit.unwrap_or("ยฐ"))).into(), + Some("Percentage") | Some("PercentageF32") => number_widget(default_info, number_input.percentage().min(min(0.)).max(max(100.))).into(), + Some("SignedPercentage") | Some("SignedPercentageF32") => number_widget(default_info, number_input.percentage().min(min(-100.)).max(max(100.))).into(), + Some("Angle") | Some("AngleF32") => number_widget(default_info, number_input.mode_range().min(min(-180.)).max(max(180.)).unit(unit.unwrap_or("ยฐ"))).into(), Some("Multiplier") => number_widget(default_info, number_input.unit(unit.unwrap_or("x"))).into(), Some("PixelLength") => number_widget(default_info, number_input.min(min(0.)).unit(unit.unwrap_or(" px"))).into(), Some("Length") => number_widget(default_info, number_input.min(min(0.))).into(), Some("Fraction") => number_widget(default_info, number_input.mode_range().min(min(0.)).max(max(1.))).into(), + Some("Progression") => progression_widget(default_info, number_input.min(min(0.))).into(), + Some("SignedInteger") => number_widget(default_info, number_input.int()).into(), Some("IntegerCount") => number_widget(default_info, number_input.int().min(min(1.))).into(), Some("SeedValue") => number_widget(default_info, number_input.int().min(min(0.))).into(), Some("PixelSize") => vec2_widget(default_info, "X", "Y", unit.unwrap_or(" px"), None, false), @@ -165,13 +169,15 @@ pub(crate) fn property_from_type( // =============== // PRIMITIVE TYPES // =============== - Some(x) if x == TypeId::of::() => number_widget(default_info, number_input.min(min(f64::NEG_INFINITY)).max(max(f64::INFINITY))).into(), + Some(x) if x == TypeId::of::() || x == TypeId::of::() => number_widget(default_info, number_input.min(min(f64::NEG_INFINITY)).max(max(f64::INFINITY))).into(), Some(x) if x == TypeId::of::() => number_widget(default_info, number_input.int().min(min(0.)).max(max(f64::from(u32::MAX)))).into(), Some(x) if x == TypeId::of::() => number_widget(default_info, number_input.int().min(min(0.))).into(), Some(x) if x == TypeId::of::() => bool_widget(default_info, CheckboxInput::default()).into(), Some(x) if x == TypeId::of::() => text_widget(default_info).into(), Some(x) if x == TypeId::of::() => vec2_widget(default_info, "X", "Y", "", None, false), Some(x) if x == TypeId::of::() => transform_widget(default_info, &mut extra_widgets), + Some(x) if x == TypeId::of::() => color_widget(default_info, ColorInput::default()), + Some(x) if x == TypeId::of::>() => color_widget(default_info, ColorInput::default()), // ========================== // PRIMITIVE COLLECTION TYPES // ========================== @@ -180,8 +186,8 @@ pub(crate) fn property_from_type( // ============ // STRUCT TYPES // ============ - Some(x) if x == TypeId::of::() => color_widget(default_info, ColorInput::default().allow_none(false)), - Some(x) if x == TypeId::of::>() => color_widget(default_info, ColorInput::default().allow_none(true)), + Some(x) if x == TypeId::of::>() => color_widget(default_info, ColorInput::default().allow_none(true)), + Some(x) if x == TypeId::of::>() => color_widget(default_info, ColorInput::default().allow_none(false)), Some(x) if x == TypeId::of::() => color_widget(default_info, ColorInput::default().allow_none(false)), Some(x) if x == TypeId::of::() => font_widget(default_info), Some(x) if x == TypeId::of::() => curve_widget(default_info), @@ -214,6 +220,7 @@ pub(crate) fn property_from_type( Some(x) if x == TypeId::of::() => enum_choice::().for_socket(default_info).property_row(), Some(x) if x == TypeId::of::() => enum_choice::().for_socket(default_info).property_row(), Some(x) if x == TypeId::of::() => enum_choice::().for_socket(default_info).property_row(), + Some(x) if x == TypeId::of::() => enum_choice::().for_socket(default_info).property_row(), Some(x) if x == TypeId::of::() => enum_choice::().for_socket(default_info).property_row(), Some(x) if x == TypeId::of::() => enum_choice::().for_socket(default_info).property_row(), Some(x) if x == TypeId::of::() => enum_choice::().for_socket(default_info).property_row(), @@ -224,14 +231,19 @@ pub(crate) fn property_from_type( _ => { let mut widgets = start_widgets(default_info); widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), TextLabel::new("-") - .tooltip(format!( - "This data can only be supplied through the node graph because no widget exists for its type:\n\ - {}", - concrete_type.name + .tooltip_label(format!( + "Data Type: {}", + concrete_type + .alias + .as_deref() + // TODO: Avoid needing to remove spaces here by fixing how `alias` is generated + .map(|s| s.to_string().replace(" ", "")) + .unwrap_or_else(|| graphene_std::format_type(concrete_type.name.as_ref())), )) - .widget_holder(), + .tooltip_description("This data can only be supplied through the node graph because no widget exists for its type.") + .widget_instance(), ]); return Err(vec![widgets.into()]); } @@ -239,7 +251,7 @@ pub(crate) fn property_from_type( } } } - Type::Generic(_) => vec![TextLabel::new("Generic type (not supported)").widget_holder()].into(), + Type::Generic(_) => vec![TextLabel::new("Generic type (not supported)").widget_instance()].into(), Type::Fn(_, out) => return property_from_type(node_id, index, out, number_options, unit, display_decimal_places, step, context), Type::Future(out) => return property_from_type(node_id, index, out, number_options, unit, display_decimal_places, step, context), }; @@ -249,7 +261,7 @@ pub(crate) fn property_from_type( Ok(extra_widgets) } -pub fn text_widget(parameter_widgets_info: ParameterWidgetsInfo) -> Vec { +pub fn text_widget(parameter_widgets_info: ParameterWidgetsInfo) -> Vec { let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; let mut widgets = start_widgets(parameter_widgets_info); @@ -261,17 +273,17 @@ pub fn text_widget(parameter_widgets_info: ParameterWidgetsInfo) -> Vec Vec { +pub fn text_area_widget(parameter_widgets_info: ParameterWidgetsInfo) -> Vec { let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; let mut widgets = start_widgets(parameter_widgets_info); @@ -283,17 +295,17 @@ pub fn text_area_widget(parameter_widgets_info: ParameterWidgetsInfo) -> Vec Vec { +pub fn bool_widget(parameter_widgets_info: ParameterWidgetsInfo, checkbox_input: CheckboxInput) -> Vec { let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; let mut widgets = start_widgets(parameter_widgets_info); @@ -305,18 +317,18 @@ pub fn bool_widget(parameter_widgets_info: ParameterWidgetsInfo, checkbox_input: }; if let Some(&TaggedValue::Bool(x)) = input.as_non_exposed_value() { widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), checkbox_input .checked(x) .on_update(update_value(|x: &CheckboxInput| TaggedValue::Bool(x.checked), node_id, index)) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]) } widgets } -pub fn reference_point_widget(parameter_widgets_info: ParameterWidgetsInfo, disabled: bool) -> Vec { +pub fn reference_point_widget(parameter_widgets_info: ParameterWidgetsInfo, disabled: bool) -> Vec { let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; let mut widgets = start_widgets(parameter_widgets_info); @@ -328,7 +340,7 @@ pub fn reference_point_widget(parameter_widgets_info: ParameterWidgetsInfo, disa }; if let Some(&TaggedValue::ReferencePoint(reference_point)) = input.as_non_exposed_value() { widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), CheckboxInput::new(reference_point != ReferencePoint::None) .on_update(update_value( move |x: &CheckboxInput| TaggedValue::ReferencePoint(if x.checked { ReferencePoint::Center } else { ReferencePoint::None }), @@ -336,12 +348,12 @@ pub fn reference_point_widget(parameter_widgets_info: ParameterWidgetsInfo, disa index, )) .disabled(disabled) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), ReferencePointInput::new(reference_point) .on_update(update_value(move |x: &ReferencePointInput| TaggedValue::ReferencePoint(x.value), node_id, index)) .disabled(disabled) - .widget_holder(), + .widget_instance(), ]) } widgets @@ -351,15 +363,15 @@ pub fn footprint_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; let mut location_widgets = start_widgets(parameter_widgets_info); - location_widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + location_widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); - let mut scale_widgets = vec![TextLabel::new("").widget_holder()]; + let mut scale_widgets = vec![TextLabel::new("").widget_instance()]; add_blank_assist(&mut scale_widgets); - scale_widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + scale_widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); - let mut resolution_widgets = vec![TextLabel::new("").widget_holder()]; + let mut resolution_widgets = vec![TextLabel::new("").widget_instance()]; add_blank_assist(&mut resolution_widgets); - resolution_widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + resolution_widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); let Some(document_node) = document_node else { return LayoutGroup::default() }; let Some(input) = document_node.inputs.get(index) else { @@ -395,8 +407,8 @@ pub fn footprint_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg index, )) .on_commit(commit_value) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(top_left.y)) .label("Y") .unit(" px") @@ -419,7 +431,7 @@ pub fn footprint_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg index, )) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]); scale_widgets.extend_from_slice(&[ @@ -442,8 +454,8 @@ pub fn footprint_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg index, )) .on_commit(commit_value) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(bounds.y)) .label("H") .unit(" px") @@ -463,7 +475,7 @@ pub fn footprint_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg index, )) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]); resolution_widgets.push( @@ -485,11 +497,11 @@ pub fn footprint_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg index, )) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ); } - let widgets = vec![ + let widgets = [ LayoutGroup::Row { widgets: location_widgets }, LayoutGroup::Row { widgets: scale_widgets }, LayoutGroup::Row { widgets: resolution_widgets }, @@ -503,15 +515,15 @@ pub fn transform_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; let mut location_widgets = start_widgets(parameter_widgets_info); - location_widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + location_widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); - let mut rotation_widgets = vec![TextLabel::new("").widget_holder()]; + let mut rotation_widgets = vec![TextLabel::new("").widget_instance()]; add_blank_assist(&mut rotation_widgets); - rotation_widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + rotation_widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); - let mut scale_widgets = vec![TextLabel::new("").widget_holder()]; + let mut scale_widgets = vec![TextLabel::new("").widget_instance()]; add_blank_assist(&mut scale_widgets); - scale_widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + scale_widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); let Some(document_node) = document_node else { return LayoutGroup::default() }; let Some(input) = document_node.inputs.get(index) else { @@ -538,8 +550,8 @@ pub fn transform_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg index, )) .on_commit(commit_value) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(translation.y)) .label("Y") .unit(" px") @@ -553,7 +565,7 @@ pub fn transform_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg index, )) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]); rotation_widgets.extend_from_slice(&[NumberInput::new(Some(rotation.to_degrees())) @@ -570,7 +582,7 @@ pub fn transform_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg index, )) .on_commit(commit_value) - .widget_holder()]); + .widget_instance()]); scale_widgets.extend_from_slice(&[ NumberInput::new(Some(scale.x)) @@ -585,8 +597,8 @@ pub fn transform_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg index, )) .on_commit(commit_value) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(scale.y)) .label("H") .unit("x") @@ -599,7 +611,7 @@ pub fn transform_widget(parameter_widgets_info: ParameterWidgetsInfo, extra_widg index, )) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]); vec![ @@ -632,7 +644,7 @@ pub fn vec2_widget(parameter_widgets_info: ParameterWidgetsInfo, x: &str, y: &st match input.as_non_exposed_value() { Some(&TaggedValue::DVec2(dvec2)) => { widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), NumberInput::new(Some(dvec2.x)) .label(x) .unit(unit) @@ -641,8 +653,8 @@ pub fn vec2_widget(parameter_widgets_info: ParameterWidgetsInfo, x: &str, y: &st .is_integer(is_integer) .on_update(update_value(move |input: &NumberInput| TaggedValue::DVec2(DVec2::new(input.value.unwrap(), dvec2.y)), node_id, index)) .on_commit(commit_value) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(dvec2.y)) .label(y) .unit(unit) @@ -651,12 +663,12 @@ pub fn vec2_widget(parameter_widgets_info: ParameterWidgetsInfo, x: &str, y: &st .is_integer(is_integer) .on_update(update_value(move |input: &NumberInput| TaggedValue::DVec2(DVec2::new(dvec2.x, input.value.unwrap())), node_id, index)) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]); } Some(&TaggedValue::F64(value)) => { widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), NumberInput::new(Some(value)) .label(x) .unit(unit) @@ -665,8 +677,8 @@ pub fn vec2_widget(parameter_widgets_info: ParameterWidgetsInfo, x: &str, y: &st .is_integer(is_integer) .on_update(update_value(move |input: &NumberInput| TaggedValue::DVec2(DVec2::new(input.value.unwrap(), value)), node_id, index)) .on_commit(commit_value) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(value)) .label(y) .unit(unit) @@ -675,7 +687,7 @@ pub fn vec2_widget(parameter_widgets_info: ParameterWidgetsInfo, x: &str, y: &st .is_integer(is_integer) .on_update(update_value(move |input: &NumberInput| TaggedValue::DVec2(DVec2::new(value, input.value.unwrap())), node_id, index)) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]); } _ => {} @@ -684,7 +696,7 @@ pub fn vec2_widget(parameter_widgets_info: ParameterWidgetsInfo, x: &str, y: &st LayoutGroup::Row { widgets } } -pub fn array_of_number_widget(parameter_widgets_info: ParameterWidgetsInfo, text_input: TextInput) -> Vec { +pub fn array_of_number_widget(parameter_widgets_info: ParameterWidgetsInfo, text_input: TextInput) -> Vec { let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; let mut widgets = start_widgets(parameter_widgets_info); @@ -706,17 +718,17 @@ pub fn array_of_number_widget(parameter_widgets_info: ParameterWidgetsInfo, text }; if let Some(TaggedValue::VecF64(x)) = &input.as_non_exposed_value() { widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), text_input .value(x.iter().map(|v| v.to_string()).collect::>().join(", ")) .on_update(optionally_update_value(move |x: &TextInput| from_string(&x.value), node_id, index)) - .widget_holder(), + .widget_instance(), ]) } widgets } -pub fn array_of_vec2_widget(parameter_widgets_info: ParameterWidgetsInfo, text_props: TextInput) -> Vec { +pub fn array_of_vec2_widget(parameter_widgets_info: ParameterWidgetsInfo, text_props: TextInput) -> Vec { let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; let mut widgets = start_widgets(parameter_widgets_info); @@ -738,54 +750,203 @@ pub fn array_of_vec2_widget(parameter_widgets_info: ParameterWidgetsInfo, text_p }; if let Some(TaggedValue::VecDVec2(x)) = &input.as_non_exposed_value() { widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), text_props .value(x.iter().map(|v| format!("({}, {})", v.x, v.y)).collect::>().join(", ")) .on_update(optionally_update_value(move |x: &TextInput| from_string(&x.value), node_id, index)) - .widget_holder(), + .widget_instance(), ]) } widgets } -pub fn font_inputs(parameter_widgets_info: ParameterWidgetsInfo) -> (Vec, Option>) { - let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; +pub fn font_inputs(parameter_widgets_info: ParameterWidgetsInfo) -> (Vec, Option>) { + let ParameterWidgetsInfo { + persistent_data, + document_node, + node_id, + index, + .. + } = parameter_widgets_info; let mut first_widgets = start_widgets(parameter_widgets_info); let mut second_widgets = None; - let from_font_input = |font: &FontInput| TaggedValue::Font(Font::new(font.font_family.clone(), font.font_style.clone())); - let Some(document_node) = document_node else { return (Vec::new(), None) }; let Some(input) = document_node.inputs.get(index) else { log::warn!("A widget failed to be built because its node's input index is invalid."); return (vec![], None); }; + if let Some(TaggedValue::Font(font)) = &input.as_non_exposed_value() { first_widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), - FontInput::new(font.font_family.clone(), font.font_style.clone()) - .on_update(update_value(from_font_input, node_id, index)) - .on_commit(commit_value) - .widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + DropdownInput::new(vec![ + persistent_data + .font_catalog + .0 + .iter() + .map(|family| { + MenuListEntry::new(family.name.clone()) + .label(family.name.clone()) + .font(family.closest_style(400, false).preview_url(&family.name)) + .on_update({ + // Construct the new font using the new family and the initial or previous style, although this style might not exist in the catalog + let mut new_font = Font::new(family.name.clone(), font.font_style_to_restore.clone().unwrap_or_else(|| font.font_style.clone())); + new_font.font_style_to_restore = font.font_style_to_restore.clone(); + + // If not already, store the initial style so it can be restored if the user switches to another family + if new_font.font_style_to_restore.is_none() { + new_font.font_style_to_restore = Some(new_font.font_style.clone()); + } + + // Use the closest style available in the family for the new font to ensure the style exists + let FontCatalogStyle { weight, italic, .. } = FontCatalogStyle::from_named_style(&new_font.font_style, ""); + new_font.font_style = family.closest_style(weight, italic).to_named_style(); + + move |_| { + let new_font = new_font.clone(); + + Message::Batched { + messages: Box::new([ + PortfolioMessage::LoadFontData { font: new_font.clone() }.into(), + update_value(move |_| TaggedValue::Font(new_font.clone()), node_id, index)(&()), + ]), + } + } + }) + .on_commit({ + // Use the new value from the user selection + let font_family = family.name.clone(); + + // Use the previous style selection and extract its weight and italic properties, then find the closest style in the new family + let FontCatalogStyle { weight, italic, .. } = FontCatalogStyle::from_named_style(&font.font_style, ""); + let font_style = family.closest_style(weight, italic).to_named_style(); + + move |_| { + let new_font = Font::new(font_family.clone(), font_style.clone()); + + DeferMessage::AfterGraphRun { + messages: vec![update_value(move |_| TaggedValue::Font(new_font.clone()), node_id, index)(&()), commit_value(&())], + } + .into() + } + }) + }) + .collect::>(), + ]) + .selected_index(persistent_data.font_catalog.0.iter().position(|family| family.name == font.font_family).map(|i| i as u32)) + .virtual_scrolling(true) + .widget_instance(), ]); - let mut second_row = vec![TextLabel::new("").widget_holder()]; + let mut second_row = vec![TextLabel::new("").widget_instance()]; add_blank_assist(&mut second_row); second_row.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), - FontInput::new(font.font_family.clone(), font.font_style.clone()) - .is_style_picker(true) - .on_update(update_value(from_font_input, node_id, index)) - .on_commit(commit_value) - .widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + DropdownInput::new({ + persistent_data + .font_catalog + .0 + .iter() + .find(|family| family.name == font.font_family) + .map(|family| { + let build_entry = |style: &FontCatalogStyle| { + let font_style = style.to_named_style(); + MenuListEntry::new(font_style.clone()) + .label(font_style.clone()) + .on_update({ + let font_family = font.font_family.clone(); + let font_style = font_style.clone(); + + move |_| { + // Keep the existing family + let new_font = Font::new(font_family.clone(), font_style.clone()); + + Message::Batched { + messages: Box::new([ + PortfolioMessage::LoadFontData { font: new_font.clone() }.into(), + update_value(move |_| TaggedValue::Font(new_font.clone()), node_id, index)(&()), + ]), + } + } + }) + .on_commit(commit_value) + }; + + vec![ + family.styles.iter().filter(|style| !style.italic).map(build_entry).collect::>(), + family.styles.iter().filter(|style| style.italic).map(build_entry).collect::>(), + ] + }) + .filter(|styles| !styles.is_empty()) + .unwrap_or_default() + }) + .selected_index( + persistent_data + .font_catalog + .0 + .iter() + .find(|family| family.name == font.font_family) + .and_then(|family| { + let not_italic = family.styles.iter().filter(|style| !style.italic); + let italic = family.styles.iter().filter(|style| style.italic); + not_italic.chain(italic).position(|style| style.to_named_style() == font.font_style) + }) + .map(|i| i as u32), + ) + .widget_instance(), ]); second_widgets = Some(second_row); } (first_widgets, second_widgets) } -pub fn number_widget(parameter_widgets_info: ParameterWidgetsInfo, number_props: NumberInput) -> Vec { +// Two number fields beside one another, the first for the fractional part (decimals, range mode) and the second for the whole part (integers, increment mode) +pub fn progression_widget(parameter_widgets_info: ParameterWidgetsInfo, number_props: NumberInput) -> Vec { + let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; + + let mut widgets = start_widgets(parameter_widgets_info); + + let Some(document_node) = document_node else { return Vec::new() }; + let Some(input) = document_node.inputs.get(index) else { + log::warn!("A widget failed to be built because its node's input index is invalid."); + return vec![]; + }; + if let Some(&TaggedValue::F64(x)) = input.as_non_exposed_value() { + let whole_part = x.trunc(); + let fractional_part = x.fract(); + + widgets.extend_from_slice(&[ + Separator::new(SeparatorType::Unrelated).widget_instance(), + number_props + .clone() + .label("Progress") + .mode_range() + .min(0.) + .max(0.99999) + .value(Some(fractional_part)) + .on_update(update_value(move |input: &NumberInput| TaggedValue::F64(whole_part + input.value.unwrap()), node_id, index)) + .on_commit(commit_value) + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), + TextLabel::new("+").widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), + number_props + .label("Element #") + .mode_increment() + .min(0.) + .is_integer(true) + .value(Some(whole_part)) + .on_update(update_value(move |input: &NumberInput| TaggedValue::F64(input.value.unwrap() + fractional_part), node_id, index)) + .on_commit(commit_value) + .widget_instance(), + ]) + } + widgets +} + +pub fn number_widget(parameter_widgets_info: ParameterWidgetsInfo, number_props: NumberInput) -> Vec { let ParameterWidgetsInfo { document_node, node_id, index, .. } = parameter_widgets_info; let mut widgets = start_widgets(parameter_widgets_info); @@ -797,58 +958,75 @@ pub fn number_widget(parameter_widgets_info: ParameterWidgetsInfo, number_props: }; match input.as_non_exposed_value() { Some(&TaggedValue::F64(x)) => widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), number_props .value(Some(x)) .on_update(update_value(move |x: &NumberInput| TaggedValue::F64(x.value.unwrap()), node_id, index)) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), + ]), + Some(&TaggedValue::F32(x)) => widgets.extend_from_slice(&[ + Separator::new(SeparatorType::Unrelated).widget_instance(), + number_props + .value(Some(x as f64)) + .on_update(update_value(move |x: &NumberInput| TaggedValue::F32(x.value.unwrap() as f32), node_id, index)) + .on_commit(commit_value) + .widget_instance(), ]), Some(&TaggedValue::U32(x)) => widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), number_props .value(Some(x as f64)) .on_update(update_value(move |x: &NumberInput| TaggedValue::U32((x.value.unwrap()) as u32), node_id, index)) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]), Some(&TaggedValue::U64(x)) => widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), number_props .value(Some(x as f64)) .on_update(update_value(move |x: &NumberInput| TaggedValue::U64((x.value.unwrap()) as u64), node_id, index)) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]), Some(&TaggedValue::OptionalF64(x)) => { // TODO: Don't wipe out the previously set value (setting it back to the default of 100) when reenabling this checkbox back to Some from None let toggle_enabled = move |checkbox_input: &CheckboxInput| TaggedValue::OptionalF64(if checkbox_input.checked { Some(100.) } else { None }); widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), // The checkbox toggles if the value is Some or None CheckboxInput::new(x.is_some()) .on_update(update_value(toggle_enabled, node_id, index)) .on_commit(commit_value) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), number_props .value(x) .on_update(update_value(move |x: &NumberInput| TaggedValue::OptionalF64(x.value), node_id, index)) .disabled(x.is_none()) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]); } Some(&TaggedValue::DVec2(dvec2)) => widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), number_props // We use an arbitrary `y` instead of an arbitrary `x` here because the "Grid" node's "Spacing" value's height should be used from rectangular mode when transferred to "Y Spacing" in isometric mode .value(Some(dvec2.y)) .on_update(update_value(move |x: &NumberInput| TaggedValue::F64(x.value.unwrap()), node_id, index)) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), + ]), + Some(&TaggedValue::FVec2(vec2)) => widgets.extend_from_slice(&[ + Separator::new(SeparatorType::Unrelated).widget_instance(), + number_props + // We use an arbitrary `y` instead of an arbitrary `x` here because the "Grid" node's "Spacing" value's height should be used from rectangular mode when transferred to "Y Spacing" in isometric mode + .value(Some(vec2.y as f64)) + .on_update(update_value(move |x: &NumberInput| TaggedValue::F32(x.value.unwrap() as f32), node_id, index)) + .on_commit(commit_value) + .widget_instance(), ]), _ => {} } @@ -883,13 +1061,13 @@ pub fn blend_mode_widget(parameter_widgets_info: ParameterWidgetsInfo) -> Layout .collect(); widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), DropdownInput::new(entries) .selected_index(blend_mode.index_in_list_svg_subset().map(|index| index as u32)) - .widget_holder(), + .widget_instance(), ]); } - LayoutGroup::Row { widgets }.with_tooltip("Formula used for blending") + LayoutGroup::Row { widgets }.with_tooltip_description("Formula used for blending.") } pub fn color_widget(parameter_widgets_info: ParameterWidgetsInfo, color_button: ColorInput) -> LayoutGroup { @@ -904,39 +1082,66 @@ pub fn color_widget(parameter_widgets_info: ParameterWidgetsInfo, color_button: }; // Add a separator - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); // Add the color input match &**tagged_value { - TaggedValue::Color(color) => widgets.push( + TaggedValue::ColorNotInTable(color) => widgets.push( color_button .value(FillChoice::Solid(*color)) - .on_update(update_value(|x: &ColorInput| TaggedValue::Color(x.value.as_solid().unwrap_or_default()), node_id, index)) + .allow_none(false) + .on_update(update_value(|input: &ColorInput| TaggedValue::ColorNotInTable(input.value.as_solid().unwrap()), node_id, index)) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ), - TaggedValue::OptionalColor(color) => widgets.push( + TaggedValue::OptionalColorNotInTable(color) => widgets.push( color_button - .value(match color { - Some(color) => FillChoice::Solid(*color), + .value(color.map_or(FillChoice::None, FillChoice::Solid)) + .allow_none(true) + .on_update(update_value(|input: &ColorInput| TaggedValue::OptionalColorNotInTable(input.value.as_solid()), node_id, index)) + .on_commit(commit_value) + .widget_instance(), + ), + TaggedValue::Color(color_table) => widgets.push( + color_button + .value(match color_table.iter().next() { + Some(color) => FillChoice::Solid(*color.element), None => FillChoice::None, }) - .on_update(update_value(|x: &ColorInput| TaggedValue::OptionalColor(x.value.as_solid()), node_id, index)) - .on_commit(commit_value) - .widget_holder(), - ), - TaggedValue::GradientStops(x) => widgets.push( - color_button - .value(FillChoice::Gradient(x.clone())) .on_update(update_value( - |x: &ColorInput| TaggedValue::GradientStops(x.value.as_gradient().cloned().unwrap_or_default()), + |input: &ColorInput| TaggedValue::Color(input.value.as_solid().iter().map(|&color| TableRow::new_from_element(color)).collect()), node_id, index, )) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ), - _ => {} + TaggedValue::GradientTable(gradient_table) => widgets.push( + color_button + .value(match gradient_table.iter().next() { + Some(row) => FillChoice::Gradient(row.element.clone()), + None => FillChoice::None, + }) + .on_update(update_value( + |input: &ColorInput| TaggedValue::GradientTable(input.value.as_gradient().iter().map(|&gradient| TableRow::new_from_element(gradient.clone())).collect()), + node_id, + index, + )) + .on_commit(commit_value) + .widget_instance(), + ), + TaggedValue::GradientStops(gradient_stops) => widgets.push( + color_button + .value(FillChoice::Gradient(gradient_stops.clone())) + .on_update(update_value( + |input: &ColorInput| TaggedValue::GradientStops(input.value.as_gradient().cloned().unwrap_or_default()), + node_id, + index, + )) + .on_commit(commit_value) + .widget_instance(), + ), + x => warn!("Colour {x:?}"), } LayoutGroup::Row { widgets } @@ -959,11 +1164,11 @@ pub fn curve_widget(parameter_widgets_info: ParameterWidgetsInfo) -> LayoutGroup }; if let Some(TaggedValue::Curve(curve)) = &input.as_non_exposed_value() { widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), CurveInput::new(curve.clone()) .on_update(update_value(|x: &CurveInput| TaggedValue::Curve(x.value.clone()), node_id, index)) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]) } LayoutGroup::Row { widgets } @@ -1040,7 +1245,9 @@ pub(crate) fn brightness_contrast_properties(node_id: NodeId, context: &mut Node return Vec::new(); } }; - let use_classic_value = match document_node.inputs[UseClassicInput::INDEX].as_value() { + let use_classic_value = document_node.inputs.get(UseClassicInput::INDEX); + let includes_use_classic = use_classic_value.is_some(); + let use_classic_value = match use_classic_value.and_then(|input| input.as_value()) { Some(TaggedValue::Bool(use_classic_choice)) => *use_classic_choice, _ => false, }; @@ -1067,11 +1274,11 @@ pub(crate) fn brightness_contrast_properties(node_id: NodeId, context: &mut Node .range_max(Some(100.)), ); - let layout = vec![ - LayoutGroup::Row { widgets: brightness }, - LayoutGroup::Row { widgets: contrast }, - LayoutGroup::Row { widgets: use_classic }, - ]; + let mut layout = vec![LayoutGroup::Row { widgets: brightness }, LayoutGroup::Row { widgets: contrast }]; + if includes_use_classic { + // TODO: When we no longer use this function in the temporary "Brightness/Contrast Classic" node, remove this conditional pushing and just always include this + layout.push(LayoutGroup::Row { widgets: use_classic }); + } layout } @@ -1081,7 +1288,7 @@ pub(crate) fn channel_mixer_properties(node_id: NodeId, context: &mut NodeProper let is_monochrome = bool_widget(ParameterWidgetsInfo::new(node_id, MonochromeInput::INDEX, true, context), CheckboxInput::default()); let mut parameter_info = ParameterWidgetsInfo::new(node_id, OutputChannelInput::INDEX, true, context); - parameter_info.exposeable = false; + parameter_info.exposable = false; let output_channel = enum_choice::().for_socket(parameter_info).property_row(); let document_node = match get_document_node(node_id, context) { @@ -1138,7 +1345,7 @@ pub(crate) fn selective_color_properties(node_id: NodeId, context: &mut NodeProp use graphene_std::raster::selective_color::*; let mut default_info = ParameterWidgetsInfo::new(node_id, ColorsInput::INDEX, true, context); - default_info.exposeable = false; + default_info.exposable = false; let colors = enum_choice::().for_socket(default_info).property_row(); let document_node = match get_document_node(node_id, context) { @@ -1239,12 +1446,72 @@ pub(crate) fn grid_properties(node_id: NodeId, context: &mut NodePropertiesConte widgets } -pub(crate) const SAMPLE_POLYLINE_TOOLTIP_SPACING: &str = "Use a point sampling density controlled by a distance between, or specific number of, points."; -pub(crate) const SAMPLE_POLYLINE_TOOLTIP_SEPARATION: &str = "Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."; -pub(crate) const SAMPLE_POLYLINE_TOOLTIP_QUANTITY: &str = "Number of points to place along the path."; -pub(crate) const SAMPLE_POLYLINE_TOOLTIP_START_OFFSET: &str = "Exclude some distance from the start of the path before the first instance."; -pub(crate) const SAMPLE_POLYLINE_TOOLTIP_STOP_OFFSET: &str = "Exclude some distance from the end of the path after the last instance."; -pub(crate) const SAMPLE_POLYLINE_TOOLTIP_ADAPTIVE_SPACING: &str = "Round 'Separation' to a nearby value that divides into the path length evenly."; +pub(crate) fn spiral_properties(node_id: NodeId, context: &mut NodePropertiesContext) -> Vec { + use graphene_std::vector::generator_nodes::spiral::*; + + let spiral_type = enum_choice::() + .for_socket(ParameterWidgetsInfo::new(node_id, SpiralTypeInput::INDEX, true, context)) + .property_row(); + let turns = number_widget(ParameterWidgetsInfo::new(node_id, TurnsInput::INDEX, true, context), NumberInput::default().min(0.1)); + let start_angle = number_widget(ParameterWidgetsInfo::new(node_id, StartAngleInput::INDEX, true, context), NumberInput::default().unit("ยฐ")); + + let mut widgets = vec![spiral_type, LayoutGroup::Row { widgets: turns }, LayoutGroup::Row { widgets: start_angle }]; + + let document_node = match get_document_node(node_id, context) { + Ok(document_node) => document_node, + Err(err) => { + log::error!("Could not get document node in exposure_properties: {err}"); + return Vec::new(); + } + }; + + let Some(spiral_type_input) = document_node.inputs.get(SpiralTypeInput::INDEX) else { + log::warn!("A widget failed to be built because its node's input index is invalid."); + return vec![]; + }; + if let Some(&TaggedValue::SpiralType(spiral_type)) = spiral_type_input.as_non_exposed_value() { + match spiral_type { + SpiralType::Archimedean => { + let inner_radius = LayoutGroup::Row { + widgets: number_widget(ParameterWidgetsInfo::new(node_id, InnerRadiusInput::INDEX, true, context), NumberInput::default().min(0.).unit(" px")), + }; + + let outer_radius = LayoutGroup::Row { + widgets: number_widget(ParameterWidgetsInfo::new(node_id, OuterRadiusInput::INDEX, true, context), NumberInput::default().unit(" px")), + }; + + widgets.extend([inner_radius, outer_radius]); + } + SpiralType::Logarithmic => { + let inner_radius = LayoutGroup::Row { + widgets: number_widget(ParameterWidgetsInfo::new(node_id, InnerRadiusInput::INDEX, true, context), NumberInput::default().min(0.).unit(" px")), + }; + + let outer_radius = LayoutGroup::Row { + widgets: number_widget(ParameterWidgetsInfo::new(node_id, OuterRadiusInput::INDEX, true, context), NumberInput::default().min(0.1).unit(" px")), + }; + + widgets.extend([inner_radius, outer_radius]); + } + } + } + + let angular_resolution = number_widget( + ParameterWidgetsInfo::new(node_id, AngularResolutionInput::INDEX, true, context), + NumberInput::default().min(1.).max(180.).unit("ยฐ"), + ); + + widgets.push(LayoutGroup::Row { widgets: angular_resolution }); + + widgets +} + +pub(crate) const SAMPLE_POLYLINE_DESCRIPTION_SPACING: &str = "Use a point sampling density controlled by a distance between, or specific number of, points."; +pub(crate) const SAMPLE_POLYLINE_DESCRIPTION_SEPARATION: &str = "Distance between each instance (exact if 'Adaptive Spacing' is disabled, approximate if enabled)."; +pub(crate) const SAMPLE_POLYLINE_DESCRIPTION_QUANTITY: &str = "Number of points to place along the path."; +pub(crate) const SAMPLE_POLYLINE_DESCRIPTION_START_OFFSET: &str = "Exclude some distance from the start of the path before the first instance."; +pub(crate) const SAMPLE_POLYLINE_DESCRIPTION_STOP_OFFSET: &str = "Exclude some distance from the end of the path after the last instance."; +pub(crate) const SAMPLE_POLYLINE_DESCRIPTION_ADAPTIVE_SPACING: &str = "Round 'Separation' to a nearby value that divides into the path length evenly."; pub(crate) fn sample_polyline_properties(node_id: NodeId, context: &mut NodePropertiesContext) -> Vec { use graphene_std::vector::sample_polyline::*; @@ -1273,15 +1540,15 @@ pub(crate) fn sample_polyline_properties(node_id: NodeId, context: &mut NodeProp ); vec![ - spacing.with_tooltip(SAMPLE_POLYLINE_TOOLTIP_SPACING), + spacing.with_tooltip_description(SAMPLE_POLYLINE_DESCRIPTION_SPACING), match current_spacing { - Some(TaggedValue::PointSpacingType(PointSpacingType::Separation)) => LayoutGroup::Row { widgets: separation }.with_tooltip(SAMPLE_POLYLINE_TOOLTIP_SEPARATION), - Some(TaggedValue::PointSpacingType(PointSpacingType::Quantity)) => LayoutGroup::Row { widgets: quantity }.with_tooltip(SAMPLE_POLYLINE_TOOLTIP_QUANTITY), + Some(TaggedValue::PointSpacingType(PointSpacingType::Separation)) => LayoutGroup::Row { widgets: separation }.with_tooltip_description(SAMPLE_POLYLINE_DESCRIPTION_SEPARATION), + Some(TaggedValue::PointSpacingType(PointSpacingType::Quantity)) => LayoutGroup::Row { widgets: quantity }.with_tooltip_description(SAMPLE_POLYLINE_DESCRIPTION_QUANTITY), _ => LayoutGroup::Row { widgets: vec![] }, }, - LayoutGroup::Row { widgets: start_offset }.with_tooltip(SAMPLE_POLYLINE_TOOLTIP_START_OFFSET), - LayoutGroup::Row { widgets: stop_offset }.with_tooltip(SAMPLE_POLYLINE_TOOLTIP_STOP_OFFSET), - LayoutGroup::Row { widgets: adaptive_spacing }.with_tooltip(SAMPLE_POLYLINE_TOOLTIP_ADAPTIVE_SPACING), + LayoutGroup::Row { widgets: start_offset }.with_tooltip_description(SAMPLE_POLYLINE_DESCRIPTION_START_OFFSET), + LayoutGroup::Row { widgets: stop_offset }.with_tooltip_description(SAMPLE_POLYLINE_DESCRIPTION_STOP_OFFSET), + LayoutGroup::Row { widgets: adaptive_spacing }.with_tooltip_description(SAMPLE_POLYLINE_DESCRIPTION_ADAPTIVE_SPACING), ] } @@ -1307,10 +1574,10 @@ pub(crate) fn rectangle_properties(node_id: NodeId, context: &mut NodeProperties // Corner Radius let mut corner_radius_row_1 = start_widgets(ParameterWidgetsInfo::new(node_id, CornerRadiusInput::::INDEX, true, context)); - corner_radius_row_1.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + corner_radius_row_1.push(Separator::new(SeparatorType::Unrelated).widget_instance()); - let mut corner_radius_row_2 = vec![Separator::new(SeparatorType::Unrelated).widget_holder()]; - corner_radius_row_2.push(TextLabel::new("").widget_holder()); + let mut corner_radius_row_2 = vec![Separator::new(SeparatorType::Unrelated).widget_instance()]; + corner_radius_row_2.push(TextLabel::new("").widget_instance()); add_blank_assist(&mut corner_radius_row_2); let document_node = match get_document_node(node_id, context) { @@ -1380,7 +1647,7 @@ pub(crate) fn rectangle_properties(node_id: NodeId, context: &mut NodeProperties ]), }) .on_commit(commit_value); - let radio_input = RadioInput::new(vec![uniform, individual]).selected_index(Some(is_individual as u32)).widget_holder(); + let radio_input = RadioInput::new(vec![uniform, individual]).selected_index(Some(is_individual as u32)).widget_instance(); corner_radius_row_1.push(radio_input); // Radius value input widget @@ -1401,14 +1668,14 @@ pub(crate) fn rectangle_properties(node_id: NodeId, context: &mut NodeProperties TextInput::default() .value(individual_val.iter().map(|v| v.to_string()).collect::>().join(", ")) .on_update(optionally_update_value(move |x: &TextInput| from_string(&x.value), node_id, CornerRadiusInput::::INDEX)) - .widget_holder() + .widget_instance() } else { NumberInput::default() .value(Some(uniform_val)) .unit(" px") .on_update(update_value(move |x: &NumberInput| TaggedValue::F64(x.value.unwrap()), node_id, CornerRadiusInput::::INDEX)) .on_commit(commit_value) - .widget_holder() + .widget_instance() }; corner_radius_row_2.push(input_widget); } @@ -1489,21 +1756,19 @@ pub(crate) fn generate_node_properties(node_id: NodeId, context: &mut NodeProper return Vec::new(); }; - let mut input_types = implementations - .keys() - .filter_map(|item| item.inputs.get(input_index)) - .filter(|ty| property_from_type(node_id, input_index, ty, number_options, unit_suffix, display_decimal_places, step, context).is_ok()) - .collect::>(); + let mut input_types = implementations.keys().filter_map(|item| item.inputs.get(input_index)).collect::>(); input_types.sort_by_key(|ty| ty.type_name()); let input_type = input_types.first().cloned(); - let Some(input_type) = input_type else { - return Vec::new(); - }; - + let Some(input_type) = input_type else { return Vec::new() }; input_type.clone() } - _ => context.network_interface.input_type(&InputConnector::node(node_id, input_index), context.selection_network_path).0, + _ => context + .network_interface + .input_type(&InputConnector::node(node_id, input_index), context.selection_network_path) + .compiled_nested_type() + .cloned() + .unwrap_or(concrete!(())), }; property_from_type(node_id, input_index, &input_type, number_options, unit_suffix, display_decimal_places, step, context).unwrap_or_else(|value| value) @@ -1541,7 +1806,7 @@ pub(crate) fn generate_node_properties(node_id: NodeId, context: &mut NodeProper visible, pinned, id: node_id.0, - layout, + layout: Layout(layout), } } @@ -1559,7 +1824,7 @@ pub(crate) fn fill_properties(node_id: NodeId, context: &mut NodePropertiesConte } }; - let (fill, backup_color, backup_gradient) = if let (Some(TaggedValue::Fill(fill)), &Some(&TaggedValue::OptionalColor(backup_color)), Some(TaggedValue::Gradient(backup_gradient))) = ( + let (fill, backup_color, backup_gradient) = if let (Some(TaggedValue::Fill(fill)), Some(TaggedValue::Color(backup_color)), Some(TaggedValue::Gradient(backup_gradient))) = ( &document_node.inputs[FillInput::::INDEX].as_value(), &document_node.inputs[BackupColorInput::INDEX].as_value(), &document_node.inputs[BackupGradientInput::INDEX].as_value(), @@ -1569,10 +1834,10 @@ pub(crate) fn fill_properties(node_id: NodeId, context: &mut NodePropertiesConte return vec![LayoutGroup::Row { widgets: widgets_first_row }]; }; let fill2 = fill.clone(); - let backup_color_fill: Fill = backup_color.into(); + let backup_color_fill: Fill = backup_color.clone().into(); let backup_gradient_fill: Fill = backup_gradient.clone().into(); - widgets_first_row.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets_first_row.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets_first_row.push( ColorInput::default() .value(fill.clone().into()) @@ -1582,13 +1847,13 @@ pub(crate) fn fill_properties(node_id: NodeId, context: &mut NodePropertiesConte Fill::None => NodeGraphMessage::SetInputValue { node_id, input_index: BackupColorInput::INDEX, - value: TaggedValue::OptionalColor(None), + value: TaggedValue::Color(Table::new()), } .into(), Fill::Solid(color) => NodeGraphMessage::SetInputValue { node_id, input_index: BackupColorInput::INDEX, - value: TaggedValue::OptionalColor(Some(*color)), + value: TaggedValue::Color(Table::new_from_element(*color)), } .into(), Fill::Gradient(gradient) => NodeGraphMessage::SetInputValue { @@ -1607,17 +1872,17 @@ pub(crate) fn fill_properties(node_id: NodeId, context: &mut NodePropertiesConte ]), }) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ); let mut widgets = vec![LayoutGroup::Row { widgets: widgets_first_row }]; let fill_type_switch = { - let mut row = vec![TextLabel::new("").widget_holder()]; + let mut row = vec![TextLabel::new("").widget_instance()]; match fill { Fill::Solid(_) | Fill::None => add_blank_assist(&mut row), Fill::Gradient(gradient) => { let reverse_button = IconButton::new("Reverse", 24) - .tooltip("Reverse the gradient color stops") + .tooltip_description("Reverse the gradient color stops.") .on_update(update_value( { let gradient = gradient.clone(); @@ -1630,8 +1895,8 @@ pub(crate) fn fill_properties(node_id: NodeId, context: &mut NodePropertiesConte node_id, FillInput::::INDEX, )) - .widget_holder(); - row.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + .widget_instance(); + row.push(Separator::new(SeparatorType::Unrelated).widget_instance()); row.push(reverse_button); } } @@ -1648,8 +1913,8 @@ pub(crate) fn fill_properties(node_id: NodeId, context: &mut NodePropertiesConte ]; row.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), - RadioInput::new(entries).selected_index(Some(if fill.as_gradient().is_some() { 1 } else { 0 })).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + RadioInput::new(entries).selected_index(Some(if fill.as_gradient().is_some() { 1 } else { 0 })).widget_instance(), ]); LayoutGroup::Row { widgets: row } @@ -1657,7 +1922,7 @@ pub(crate) fn fill_properties(node_id: NodeId, context: &mut NodePropertiesConte widgets.push(fill_type_switch); if let Fill::Gradient(gradient) = fill.clone() { - let mut row = vec![TextLabel::new("").widget_holder()]; + let mut row = vec![TextLabel::new("").widget_instance()]; match gradient.gradient_type { GradientType::Linear => add_blank_assist(&mut row), GradientType::Radial => { @@ -1667,7 +1932,7 @@ pub(crate) fn fill_properties(node_id: NodeId, context: &mut NodePropertiesConte (gradient.start.x + gradient.start.y) < (gradient.end.x + gradient.end.y) }; let reverse_radial_gradient_button = IconButton::new(if orientation { "ReverseRadialGradientToRight" } else { "ReverseRadialGradientToLeft" }, 24) - .tooltip("Reverse which end the gradient radiates from") + .tooltip_description("Reverse which end the gradient radiates from.") .on_update(update_value( { let gradient = gradient.clone(); @@ -1680,8 +1945,8 @@ pub(crate) fn fill_properties(node_id: NodeId, context: &mut NodePropertiesConte node_id, FillInput::::INDEX, )) - .widget_holder(); - row.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + .widget_instance(); + row.push(Separator::new(SeparatorType::Unrelated).widget_instance()); row.push(reverse_radial_gradient_button); } } @@ -1717,8 +1982,8 @@ pub(crate) fn fill_properties(node_id: NodeId, context: &mut NodePropertiesConte ]; row.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), - RadioInput::new(entries).selected_index(Some(gradient.gradient_type as u32)).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + RadioInput::new(entries).selected_index(Some(gradient.gradient_type as u32)).widget_instance(), ]); widgets.push(LayoutGroup::Row { widgets: row }); @@ -1742,7 +2007,7 @@ pub fn stroke_properties(node_id: NodeId, context: &mut NodePropertiesContext) - _ => &StrokeJoin::Miter, }; - let dash_lengths_val = match &document_node.inputs[DashLengthsInput::INDEX].as_value() { + let dash_lengths_val = match &document_node.inputs[DashLengthsInput::>::INDEX].as_value() { Some(TaggedValue::VecF64(x)) => x, _ => &vec![], }; @@ -1750,7 +2015,7 @@ pub fn stroke_properties(node_id: NodeId, context: &mut NodePropertiesContext) - let miter_limit_disabled = join_value != &StrokeJoin::Miter; let color = color_widget( - ParameterWidgetsInfo::new(node_id, ColorInput::>::INDEX, true, context), + ParameterWidgetsInfo::new(node_id, ColorInput::INDEX, true, context), crate::messages::layout::utility_types::widgets::button_widgets::ColorInput::default(), ); let weight = number_widget(ParameterWidgetsInfo::new(node_id, WeightInput::INDEX, true, context), NumberInput::default().unit(" px").min(0.)); @@ -1770,7 +2035,10 @@ pub fn stroke_properties(node_id: NodeId, context: &mut NodePropertiesContext) - .for_socket(ParameterWidgetsInfo::new(node_id, PaintOrderInput::INDEX, true, context)) .property_row(); let disabled_number_input = NumberInput::default().unit(" px").disabled(has_dash_lengths); - let dash_lengths = array_of_number_widget(ParameterWidgetsInfo::new(node_id, DashLengthsInput::INDEX, true, context), TextInput::default().centered(true)); + let dash_lengths = array_of_number_widget( + ParameterWidgetsInfo::new(node_id, DashLengthsInput::>::INDEX, true, context), + TextInput::default().centered(true), + ); let number_input = disabled_number_input; let dash_offset = number_widget(ParameterWidgetsInfo::new(node_id, DashOffsetInput::INDEX, true, context), number_input); @@ -1835,7 +2103,7 @@ pub fn math_properties(node_id: NodeId, context: &mut NodePropertiesContext) -> }; if let Some(TaggedValue::String(x)) = &input.as_non_exposed_value() { widgets.extend_from_slice(&[ - Separator::new(SeparatorType::Unrelated).widget_holder(), + Separator::new(SeparatorType::Unrelated).widget_instance(), TextInput::new(x.clone()) .centered(true) .on_update(update_value( @@ -1856,22 +2124,23 @@ pub fn math_properties(node_id: NodeId, context: &mut NodePropertiesContext) -> ExpressionInput::INDEX, )) .on_commit(commit_value) - .widget_holder(), + .widget_instance(), ]) } widgets })(); let operand_b = number_widget(ParameterWidgetsInfo::new(node_id, OperandBInput::::INDEX, true, context), NumberInput::default()); - let operand_a_hint = vec![TextLabel::new("(Operand A is the primary input)").widget_holder()]; + let operand_a_hint = vec![TextLabel::new("(Operand A is the primary input)").widget_instance()]; vec![ - LayoutGroup::Row { widgets: expression }.with_tooltip(r#"A math expression that may incorporate "A" and/or "B", such as "sqrt(A + B) - B^2""#), - LayoutGroup::Row { widgets: operand_b }.with_tooltip(r#"The value of "B" when calculating the expression"#), - LayoutGroup::Row { widgets: operand_a_hint }.with_tooltip(r#""A" is fed by the value from the previous node in the primary data flow, or it is 0 if disconnected"#), + LayoutGroup::Row { widgets: expression }.with_tooltip_description(r#"A math expression that may incorporate "A" and/or "B", such as "sqrt(A + B) - B^2"."#), + LayoutGroup::Row { widgets: operand_b }.with_tooltip_description(r#"The value of "B" when calculating the expression."#), + LayoutGroup::Row { widgets: operand_a_hint }.with_tooltip_description(r#""A" is fed by the value from the previous node in the primary data flow, or it is 0 if disconnected."#), ] } pub struct ParameterWidgetsInfo<'a> { + persistent_data: &'a PersistentData, document_node: Option<&'a DocumentNode>, node_id: NodeId, index: usize, @@ -1879,16 +2148,20 @@ pub struct ParameterWidgetsInfo<'a> { description: String, input_type: FrontendGraphDataType, blank_assist: bool, - exposeable: bool, + exposable: bool, } impl<'a> ParameterWidgetsInfo<'a> { pub fn new(node_id: NodeId, index: usize, blank_assist: bool, context: &'a mut NodePropertiesContext) -> ParameterWidgetsInfo<'a> { let (name, description) = context.network_interface.displayed_input_name_and_description(&node_id, index, context.selection_network_path); - let input_type = FrontendGraphDataType::from_type(&context.network_interface.input_type(&InputConnector::node(node_id, index), context.selection_network_path).0); + let input_type = context + .network_interface + .input_type_not_invalid(&InputConnector::node(node_id, index), context.selection_network_path) + .displayed_type(); let document_node = context.network_interface.document_node(&node_id, context.selection_network_path); ParameterWidgetsInfo { + persistent_data: context.persistent_data, document_node, node_id, index, @@ -1896,7 +2169,7 @@ impl<'a> ParameterWidgetsInfo<'a> { description, input_type, blank_assist, - exposeable: true, + exposable: true, } } } @@ -1913,7 +2186,7 @@ pub mod choice { fn disabled(self, disabled: bool) -> Self; - fn build(&self, current: Self::Value, updater_factory: impl Fn() -> U, committer_factory: impl Fn() -> C) -> WidgetHolder + fn build(&self, current: Self::Value, updater_factory: impl Fn() -> U, committer_factory: impl Fn() -> C) -> WidgetInstance where U: Fn(&Self::Value) -> Message + 'static + Send + Sync, C: Fn(&()) -> Message + 'static + Send + Sync; @@ -1948,11 +2221,11 @@ pub mod choice { } /// Not yet implemented! - pub fn into_menu_entries(self, _action: impl Fn(E) -> Message + 'static + Send + Sync) -> Vec> { + pub fn into_menu_entries(self, _action: impl Fn(E) -> Message + 'static + Send + Sync) -> MenuListEntrySections { todo!() } - fn dropdown_menu(&self, current: E, updater_factory: impl Fn() -> U, committer_factory: impl Fn() -> C) -> WidgetHolder + fn dropdown_menu(&self, current: E, updater_factory: impl Fn() -> U, committer_factory: impl Fn() -> C) -> WidgetInstance where U: Fn(&E) -> Message + 'static + Send + Sync, C: Fn(&()) -> Message + 'static + Send + Sync, @@ -1970,10 +2243,10 @@ pub mod choice { .collect() }) .collect(); - DropdownInput::new(items).disabled(self.disabled).selected_index(Some(current.as_u32())).widget_holder() + DropdownInput::new(items).disabled(self.disabled).selected_index(Some(current.as_u32())).widget_instance() } - fn radio_buttons(&self, current: E, updater_factory: impl Fn() -> U, committer_factory: impl Fn() -> C) -> WidgetHolder + fn radio_buttons(&self, current: E, updater_factory: impl Fn() -> U, committer_factory: impl Fn() -> C) -> WidgetInstance where U: Fn(&E) -> Message + 'static + Send + Sync, C: Fn(&()) -> Message + 'static + Send + Sync, @@ -1984,16 +2257,15 @@ pub mod choice { .map(|(item, var_meta)| { let updater = updater_factory(); let committer = committer_factory(); - let entry = RadioEntryData::new(var_meta.name).on_update(move |_| updater(item)).on_commit(committer); - match (var_meta.icon, var_meta.docstring) { - (None, None) => entry.label(var_meta.label), - (None, Some(doc)) => entry.label(var_meta.label).tooltip(doc), - (Some(icon), None) => entry.icon(icon).tooltip(var_meta.label), - (Some(icon), Some(doc)) => entry.icon(icon).tooltip(format!("{}\n\n{}", var_meta.label, doc)), - } + let entry = RadioEntryData::new(var_meta.name) + .on_update(move |_| updater(item)) + .on_commit(committer) + .tooltip_label(var_meta.label) + .tooltip_description(var_meta.description.unwrap_or_default()); + if let Some(icon) = var_meta.icon { entry.icon(icon) } else { entry.label(var_meta.label) } }) .collect(); - RadioInput::new(items).selected_index(Some(current.as_u32())).widget_holder() + RadioInput::new(items).selected_index(Some(current.as_u32())).widget_instance() } } @@ -2008,7 +2280,7 @@ pub mod choice { E::DESCRIPTION } - fn build(&self, current: Self::Value, updater_factory: impl Fn() -> U, committer_factory: impl Fn() -> C) -> WidgetHolder + fn build(&self, current: Self::Value, updater_factory: impl Fn() -> U, committer_factory: impl Fn() -> C) -> WidgetInstance where U: Fn(&Self::Value) -> Message + 'static + Send + Sync, C: Fn(&()) -> Message + 'static + Send + Sync, @@ -2059,12 +2331,12 @@ pub mod choice { let committer = || super::commit_value; let updater = || super::update_value(move |v: &W::Value| TaggedValue::from(v.clone()), node_id, index); let widget = self.widget_factory.build(current, updater, committer); - widgets.extend_from_slice(&[Separator::new(SeparatorType::Unrelated).widget_holder(), widget]); + widgets.extend_from_slice(&[Separator::new(SeparatorType::Unrelated).widget_instance(), widget]); } let mut row = LayoutGroup::Row { widgets }; if let Some(desc) = self.widget_factory.description() { - row = row.with_tooltip(desc); + row = row.with_tooltip_description(desc); } row } diff --git a/editor/src/messages/portfolio/document/node_graph/utility_types.rs b/editor/src/messages/portfolio/document/node_graph/utility_types.rs index eaac2371b..5b202ef48 100644 --- a/editor/src/messages/portfolio/document/node_graph/utility_types.rs +++ b/editor/src/messages/portfolio/document/node_graph/utility_types.rs @@ -1,4 +1,4 @@ -use crate::messages::portfolio::document::utility_types::network_interface::{InputConnector, OutputConnector, TypeSource}; +use glam::{DVec2, IVec2}; use graph_craft::document::NodeId; use graph_craft::document::value::TaggedValue; use graphene_std::Type; @@ -14,6 +14,9 @@ pub enum FrontendGraphDataType { Raster, Vector, Color, + Gradient, + Typography, + Invalid, } impl FrontendGraphDataType { @@ -21,6 +24,7 @@ impl FrontendGraphDataType { match TaggedValue::from_type_or_none(input) { TaggedValue::U32(_) | TaggedValue::U64(_) + | TaggedValue::F32(_) | TaggedValue::F64(_) | TaggedValue::DVec2(_) | TaggedValue::F64Array4(_) @@ -31,17 +35,12 @@ impl FrontendGraphDataType { TaggedValue::Graphic(_) => Self::Graphic, TaggedValue::Raster(_) => Self::Raster, TaggedValue::Vector(_) => Self::Vector, - TaggedValue::ColorTable(_) | TaggedValue::Color(_) | TaggedValue::OptionalColor(_) => Self::Color, + TaggedValue::Color(_) => Self::Color, + TaggedValue::Gradient(_) | TaggedValue::GradientStops(_) | TaggedValue::GradientTable(_) => Self::Gradient, + TaggedValue::String(_) | TaggedValue::VecString(_) => Self::Typography, _ => Self::General, } } - - pub fn displayed_type(input: &Type, type_source: &TypeSource) -> Self { - match type_source { - TypeSource::Error(_) | TypeSource::RandomProtonodeImplementation => Self::General, - _ => Self::from_type(input), - } - } } #[derive(Clone, Debug, Eq, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] @@ -55,7 +54,8 @@ pub struct FrontendGraphInput { #[serde(rename = "validTypes")] pub valid_types: Vec, #[serde(rename = "connectedTo")] - pub connected_to: Option, + /// Either "nothing", "import #{index}", or "{node name} #{output_index}". + pub connected_to: String, } #[derive(Clone, Debug, Eq, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] @@ -63,11 +63,13 @@ pub struct FrontendGraphOutput { #[serde(rename = "dataType")] pub data_type: FrontendGraphDataType, pub name: String, - pub description: String, #[serde(rename = "resolvedType")] pub resolved_type: String, + pub description: String, + /// If connected to an export, it is "export index {index}". + /// If connected to a node, it is "{node name} input {input_index}". #[serde(rename = "connectedTo")] - pub connected_to: Vec, + pub connected_to: Vec, } #[derive(Clone, Debug, Eq, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] @@ -88,13 +90,14 @@ pub struct FrontendNode { pub primary_output: Option, #[serde(rename = "exposedOutputs")] pub exposed_outputs: Vec, - pub position: (i32, i32), + #[serde(rename = "primaryInputConnectedToLayer")] + pub primary_input_connected_to_layer: bool, + #[serde(rename = "primaryOutputConnectedToLayer")] + pub primary_output_connected_to_layer: bool, + pub position: IVec2, + pub previewed: bool, pub visible: bool, pub locked: bool, - pub previewed: bool, - pub errors: Option, - #[serde(rename = "uiOnly")] - pub ui_only: bool, } #[derive(Clone, Debug, Eq, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] @@ -150,16 +153,18 @@ pub struct BoxSelection { } #[derive(Clone, Debug, PartialEq, serde::Serialize, serde::Deserialize, specta::Type)] +#[serde(tag = "type", content = "data")] pub enum ContextMenuData { - ToggleLayer { + ModifyNode { #[serde(rename = "nodeId")] node_id: NodeId, + #[serde(rename = "canBeLayer")] + can_be_layer: bool, #[serde(rename = "currentlyIsNode")] currently_is_node: bool, }, CreateNode { #[serde(rename = "compatibleType")] - #[serde(default)] compatible_type: Option, }, } @@ -168,25 +173,29 @@ pub enum ContextMenuData { pub struct ContextMenuInformation { // Stores whether the context menu is open and its position in graph coordinates #[serde(rename = "contextMenuCoordinates")] - pub context_menu_coordinates: (i32, i32), + pub context_menu_coordinates: FrontendXY, #[serde(rename = "contextMenuData")] pub context_menu_data: ContextMenuData, } +#[derive(Clone, Debug, PartialEq, Default, serde::Serialize, serde::Deserialize, specta::Type)] +pub struct NodeGraphErrorDiagnostic { + pub position: FrontendXY, + pub error: String, +} + #[derive(Clone, Debug, PartialEq, Default, serde::Serialize, serde::Deserialize, specta::Type)] pub struct FrontendClickTargets { #[serde(rename = "nodeClickTargets")] pub node_click_targets: Vec, #[serde(rename = "layerClickTargets")] pub layer_click_targets: Vec, - #[serde(rename = "portClickTargets")] - pub port_click_targets: Vec, + #[serde(rename = "connectorClickTargets")] + pub connector_click_targets: Vec, #[serde(rename = "iconClickTargets")] pub icon_click_targets: Vec, #[serde(rename = "allNodesBoundingBox")] pub all_nodes_bounding_box: String, - #[serde(rename = "importExportsBoundingBox")] - pub import_exports_bounding_box: String, #[serde(rename = "modifyImportExport")] pub modify_import_export: Vec, } @@ -198,3 +207,22 @@ pub enum Direction { Left, Right, } + +/// Stores node graph coordinates which are then transformed in Svelte based on the node graph transform +#[derive(Clone, Debug, PartialEq, Default, serde::Serialize, serde::Deserialize, specta::Type)] +pub struct FrontendXY { + pub x: i32, + pub y: i32, +} + +impl From for FrontendXY { + fn from(v: DVec2) -> Self { + FrontendXY { x: v.x as i32, y: v.y as i32 } + } +} + +impl From for FrontendXY { + fn from(v: IVec2) -> Self { + FrontendXY { x: v.x, y: v.y } + } +} diff --git a/editor/src/messages/portfolio/document/overlays/grid_overlays.rs b/editor/src/messages/portfolio/document/overlays/grid_overlays.rs index 97cf2fdf7..6faeb0c06 100644 --- a/editor/src/messages/portfolio/document/overlays/grid_overlays.rs +++ b/editor/src/messages/portfolio/document/overlays/grid_overlays.rs @@ -13,9 +13,11 @@ fn grid_overlay_rectangular(document: &DocumentMessageHandler, overlay_context: let Some(spacing) = GridSnapping::compute_rectangle_spacing(spacing, &document.document_ptz) else { return; }; - let document_to_viewport = document.navigation_handler.calculate_offset_transform(overlay_context.size / 2., &document.document_ptz); + let document_to_viewport = document + .navigation_handler + .calculate_offset_transform(overlay_context.viewport.center_in_viewport_space().into(), &document.document_ptz); - let bounds = document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, overlay_context.size]); + let bounds = document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, overlay_context.viewport.size().into()]); for primary in 0..2 { let secondary = 1 - primary; @@ -52,9 +54,11 @@ fn grid_overlay_rectangular_dot(document: &DocumentMessageHandler, overlay_conte let Some(spacing) = GridSnapping::compute_rectangle_spacing(spacing, &document.document_ptz) else { return; }; - let document_to_viewport = document.navigation_handler.calculate_offset_transform(overlay_context.size / 2., &document.document_ptz); + let document_to_viewport = document + .navigation_handler + .calculate_offset_transform(overlay_context.viewport.center_in_viewport_space().into(), &document.document_ptz); - let bounds = document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, overlay_context.size]); + let bounds = document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, overlay_context.viewport.size().into()]); let min = bounds.0.iter().map(|corner| corner.y).min_by(|a, b| a.partial_cmp(b).unwrap()).unwrap_or_default(); let max = bounds.0.iter().map(|corner| corner.y).max_by(|a, b| a.partial_cmp(b).unwrap()).unwrap_or_default(); @@ -85,9 +89,11 @@ fn grid_overlay_isometric(document: &DocumentMessageHandler, overlay_context: &m let grid_color = "#".to_string() + &document.snapping_state.grid.grid_color.to_rgba_hex_srgb(); let cmp = |a: &f64, b: &f64| a.partial_cmp(b).unwrap(); let origin = document.snapping_state.grid.origin; - let document_to_viewport = document.navigation_handler.calculate_offset_transform(overlay_context.size / 2., &document.document_ptz); + let document_to_viewport = document + .navigation_handler + .calculate_offset_transform(overlay_context.viewport.center_in_viewport_space().into(), &document.document_ptz); - let bounds = document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, overlay_context.size]); + let bounds = document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, overlay_context.viewport.size().into()]); let tan_a = angle_a.to_radians().tan(); let tan_b = angle_b.to_radians().tan(); let spacing = DVec2::new(y_axis_spacing / (tan_a + tan_b), y_axis_spacing); @@ -128,9 +134,11 @@ fn grid_overlay_isometric_dot(document: &DocumentMessageHandler, overlay_context let grid_color = "#".to_string() + &document.snapping_state.grid.grid_color.to_rgba_hex_srgb(); let cmp = |a: &f64, b: &f64| a.partial_cmp(b).unwrap(); let origin = document.snapping_state.grid.origin; - let document_to_viewport = document.navigation_handler.calculate_offset_transform(overlay_context.size / 2., &document.document_ptz); + let document_to_viewport = document + .navigation_handler + .calculate_offset_transform(overlay_context.viewport.center_in_viewport_space().into(), &document.document_ptz); - let bounds = document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, overlay_context.size]); + let bounds = document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, overlay_context.viewport.size().into()]); let tan_a = angle_a.to_radians().tan(); let tan_b = angle_b.to_radians().tan(); let spacing = DVec2::new(y_axis_spacing / (tan_a + tan_b), y_axis_spacing); @@ -200,15 +208,15 @@ pub fn overlay_options(grid: &GridSnapping) -> Vec { move |input: &I| { let mut grid = grid.clone(); update(&mut grid, input); - DocumentMessage::GridOptions(grid).into() + DocumentMessage::GridOptions { options: grid }.into() } } let update_origin = |grid, update: fn(&mut GridSnapping) -> Option<&mut f64>| { update_val::(grid, move |grid, val| { - if let Some(val) = val.value { - if let Some(update) = update(grid) { - *update = val; - } + if let Some(val) = val.value + && let Some(update) = update(grid) + { + *update = val; } }) }; @@ -228,13 +236,13 @@ pub fn overlay_options(grid: &GridSnapping) -> Vec { }; widgets.push(LayoutGroup::Row { - widgets: vec![TextLabel::new("Grid").bold(true).widget_holder()], + widgets: vec![TextLabel::new("Grid").bold(true).widget_instance()], }); widgets.push(LayoutGroup::Row { widgets: vec![ - TextLabel::new("Type").table_align(true).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + TextLabel::new("Type").table_align(true).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), RadioInput::new(vec![ RadioEntryData::new("rectangular").label("Rectangular").on_update(update_val(grid, |grid, _| { if let GridType::Isometric { y_axis_spacing, angle_a, angle_b } = grid.grid_type { @@ -260,98 +268,101 @@ pub fn overlay_options(grid: &GridSnapping) -> Vec { GridType::Rectangular { .. } => 0, GridType::Isometric { .. } => 1, })) - .widget_holder(), + .widget_instance(), ], }); - let mut color_widgets = vec![TextLabel::new("Display").table_align(true).widget_holder(), Separator::new(SeparatorType::Unrelated).widget_holder()]; + let mut color_widgets = vec![ + TextLabel::new("Display").table_align(true).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), + ]; color_widgets.extend([ CheckboxInput::new(grid.dot_display) .icon("GridDotted") - .tooltip("Display as dotted grid") + .tooltip_label("Display as Dotted Grid") .on_update(update_display(grid, |grid| Some(&mut grid.dot_display))) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), ]); color_widgets.push( ColorInput::new(FillChoice::Solid(grid.grid_color.to_gamma_srgb())) - .tooltip("Grid display color") + .tooltip_label("Grid Display Color") .allow_none(false) .on_update(update_color(grid, |grid| Some(&mut grid.grid_color))) - .widget_holder(), + .widget_instance(), ); widgets.push(LayoutGroup::Row { widgets: color_widgets }); widgets.push(LayoutGroup::Row { widgets: vec![ - TextLabel::new("Origin").table_align(true).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + TextLabel::new("Origin").table_align(true).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), NumberInput::new(Some(grid.origin.x)) .label("X") .unit(" px") .min_width(98) .on_update(update_origin(grid, |grid| Some(&mut grid.origin.x))) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(grid.origin.y)) .label("Y") .unit(" px") .min_width(98) .on_update(update_origin(grid, |grid| Some(&mut grid.origin.y))) - .widget_holder(), + .widget_instance(), ], }); match grid.grid_type { GridType::Rectangular { spacing } => widgets.push(LayoutGroup::Row { widgets: vec![ - TextLabel::new("Spacing").table_align(true).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + TextLabel::new("Spacing").table_align(true).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), NumberInput::new(Some(spacing.x)) .label("X") .unit(" px") .min(0.) .min_width(98) .on_update(update_origin(grid, |grid| grid.grid_type.rectangular_spacing().map(|spacing| &mut spacing.x))) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(spacing.y)) .label("Y") .unit(" px") .min(0.) .min_width(98) .on_update(update_origin(grid, |grid| grid.grid_type.rectangular_spacing().map(|spacing| &mut spacing.y))) - .widget_holder(), + .widget_instance(), ], }), GridType::Isometric { y_axis_spacing, angle_a, angle_b } => { widgets.push(LayoutGroup::Row { widgets: vec![ - TextLabel::new("Y Spacing").table_align(true).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + TextLabel::new("Y Spacing").table_align(true).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), NumberInput::new(Some(y_axis_spacing)) .unit(" px") .min(0.) .min_width(200) .on_update(update_origin(grid, |grid| grid.grid_type.isometric_y_spacing())) - .widget_holder(), + .widget_instance(), ], }); widgets.push(LayoutGroup::Row { widgets: vec![ - TextLabel::new("Angles").table_align(true).widget_holder(), - Separator::new(SeparatorType::Unrelated).widget_holder(), + TextLabel::new("Angles").table_align(true).widget_instance(), + Separator::new(SeparatorType::Unrelated).widget_instance(), NumberInput::new(Some(angle_a)) .unit("ยฐ") .min_width(98) .on_update(update_origin(grid, |grid| grid.grid_type.angle_a())) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(angle_b)) .unit("ยฐ") .min_width(98) .on_update(update_origin(grid, |grid| grid.grid_type.angle_b())) - .widget_holder(), + .widget_instance(), ], }); } diff --git a/editor/src/messages/portfolio/document/overlays/mod.rs b/editor/src/messages/portfolio/document/overlays/mod.rs index f672374cf..4445dbfe8 100644 --- a/editor/src/messages/portfolio/document/overlays/mod.rs +++ b/editor/src/messages/portfolio/document/overlays/mod.rs @@ -2,8 +2,17 @@ pub mod grid_overlays; mod overlays_message; mod overlays_message_handler; pub mod utility_functions; -#[cfg_attr(not(target_family = "wasm"), path = "utility_types_vello.rs")] -pub mod utility_types; +// Native (nonโ€‘wasm) +#[cfg(not(target_family = "wasm"))] +pub mod utility_types_native; +#[cfg(not(target_family = "wasm"))] +pub use utility_types_native as utility_types; + +// WebAssembly +#[cfg(target_family = "wasm")] +pub mod utility_types_web; +#[cfg(target_family = "wasm")] +pub use utility_types_web as utility_types; #[doc(inline)] pub use overlays_message::{OverlaysMessage, OverlaysMessageDiscriminant}; diff --git a/editor/src/messages/portfolio/document/overlays/overlays_message.rs b/editor/src/messages/portfolio/document/overlays/overlays_message.rs index 5ab1e7773..8610e2505 100644 --- a/editor/src/messages/portfolio/document/overlays/overlays_message.rs +++ b/editor/src/messages/portfolio/document/overlays/overlays_message.rs @@ -7,14 +7,14 @@ use crate::messages::prelude::*; pub enum OverlaysMessage { Draw, // Serde functionality isn't used but is required by the message system macros - AddProvider( + AddProvider { #[serde(skip, default = "empty_provider")] #[derivative(Debug = "ignore", PartialEq = "ignore")] - OverlayProvider, - ), - RemoveProvider( + provider: OverlayProvider, + }, + RemoveProvider { #[serde(skip, default = "empty_provider")] #[derivative(Debug = "ignore", PartialEq = "ignore")] - OverlayProvider, - ), + provider: OverlayProvider, + }, } diff --git a/editor/src/messages/portfolio/document/overlays/overlays_message_handler.rs b/editor/src/messages/portfolio/document/overlays/overlays_message_handler.rs index e5896f350..3bf436251 100644 --- a/editor/src/messages/portfolio/document/overlays/overlays_message_handler.rs +++ b/editor/src/messages/portfolio/document/overlays/overlays_message_handler.rs @@ -4,8 +4,7 @@ use crate::messages::prelude::*; #[derive(ExtractField)] pub struct OverlaysMessageContext<'a> { pub visibility_settings: OverlaysVisibilitySettings, - pub ipp: &'a InputPreprocessorMessageHandler, - pub device_pixel_ratio: f64, + pub viewport: &'a ViewportMessageHandler, } #[derive(Debug, Clone, Default, ExtractField)] @@ -20,19 +19,14 @@ pub struct OverlaysMessageHandler { #[message_handler_data] impl MessageHandler> for OverlaysMessageHandler { fn process_message(&mut self, message: OverlaysMessage, responses: &mut VecDeque, context: OverlaysMessageContext) { - let OverlaysMessageContext { - visibility_settings, - ipp, - device_pixel_ratio, - .. - } = context; + let OverlaysMessageContext { visibility_settings, viewport, .. } = context; match message { #[cfg(target_family = "wasm")] OverlaysMessage::Draw => { use super::utility_functions::overlay_canvas_element; use super::utility_types::OverlayContext; - use glam::{DAffine2, DVec2}; + use crate::messages::viewport::{Position, ToPhysical}; use wasm_bindgen::JsCast; let canvas = match &self.canvas { @@ -48,26 +42,26 @@ impl MessageHandler> for OverlaysMes canvas_context.dyn_into().expect("Context should be a canvas 2d context") }); - let size = ipp.viewport_bounds.size().as_uvec2(); + let size_logical = viewport.size(); + let size_physical = size_logical.to_physical(); + let width = size_logical.x().max(size_physical.x()); + let height = size_logical.y().max(size_physical.y()); - let [a, b, c, d, e, f] = DAffine2::from_scale(DVec2::splat(device_pixel_ratio)).to_cols_array(); - let _ = canvas_context.set_transform(a, b, c, d, e, f); - canvas_context.clear_rect(0., 0., ipp.viewport_bounds.size().x, ipp.viewport_bounds.size().y); - let _ = canvas_context.reset_transform(); + canvas_context.clear_rect(0., 0., width, height); if visibility_settings.all() { - responses.add(DocumentMessage::GridOverlays(OverlayContext { - render_context: canvas_context.clone(), - size: size.as_dvec2(), - device_pixel_ratio, - visibility_settings: visibility_settings.clone(), - })); + responses.add(DocumentMessage::GridOverlays { + context: OverlayContext { + render_context: canvas_context.clone(), + visibility_settings: visibility_settings.clone(), + viewport: *viewport, + }, + }); for provider in &self.overlay_providers { responses.add(provider(OverlayContext { render_context: canvas_context.clone(), - size: size.as_dvec2(), - device_pixel_ratio, visibility_settings: visibility_settings.clone(), + viewport: *viewport, })); } } @@ -76,27 +70,25 @@ impl MessageHandler> for OverlaysMes OverlaysMessage::Draw => { use super::utility_types::OverlayContext; - let size = ipp.viewport_bounds.size(); - - let overlay_context = OverlayContext::new(size, device_pixel_ratio, visibility_settings); + let overlay_context = OverlayContext::new(*viewport, visibility_settings); if visibility_settings.all() { - responses.add(DocumentMessage::GridOverlays(overlay_context.clone())); + responses.add(DocumentMessage::GridOverlays { context: overlay_context.clone() }); for provider in &self.overlay_providers { responses.add(provider(overlay_context.clone())); } } - responses.add(FrontendMessage::RenderOverlays(overlay_context)); + responses.add(FrontendMessage::RenderOverlays { context: overlay_context }); } #[cfg(all(not(target_family = "wasm"), test))] OverlaysMessage::Draw => { - let _ = (responses, visibility_settings, ipp, device_pixel_ratio); + let _ = (responses, visibility_settings, viewport); } - OverlaysMessage::AddProvider(message) => { + OverlaysMessage::AddProvider { provider: message } => { self.overlay_providers.insert(message); } - OverlaysMessage::RemoveProvider(message) => { + OverlaysMessage::RemoveProvider { provider: message } => { self.overlay_providers.remove(&message); } } diff --git a/editor/src/messages/portfolio/document/overlays/utility_functions.rs b/editor/src/messages/portfolio/document/overlays/utility_functions.rs index db9418421..775e15033 100644 --- a/editor/src/messages/portfolio/document/overlays/utility_functions.rs +++ b/editor/src/messages/portfolio/document/overlays/utility_functions.rs @@ -1,12 +1,16 @@ use super::utility_types::{DrawHandles, OverlayContext}; use crate::consts::HIDE_HANDLE_DISTANCE; +use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::network_interface::NodeNetworkInterface; use crate::messages::tool::common_functionality::shape_editor::{SelectedLayerState, ShapeState}; -use crate::messages::tool::tool_messages::tool_prelude::{DocumentMessageHandler, PreferencesMessageHandler}; -use bezier_rs::{Bezier, BezierHandles}; +use crate::messages::tool::tool_messages::tool_prelude::DocumentMessageHandler; use glam::{DAffine2, DVec2}; +use graphene_std::subpath::{Bezier, BezierHandles}; +use graphene_std::text::{Font, FontCache, TextAlign, TextContext, TypesettingConfig}; use graphene_std::vector::misc::ManipulatorPointId; -use graphene_std::vector::{PointId, SegmentId}; +use graphene_std::vector::{PointId, SegmentId, Vector}; +use std::collections::HashMap; +use std::sync::{LazyLock, Mutex}; use wasm_bindgen::JsCast; pub fn overlay_canvas_element() -> Option { @@ -24,33 +28,40 @@ pub fn overlay_canvas_context() -> web_sys::CanvasRenderingContext2d { create_context().expect("Failed to get canvas context") } -pub fn selected_segments(network_interface: &NodeNetworkInterface, shape_editor: &ShapeState) -> Vec { - let selected_points = shape_editor.selected_points(); - let selected_anchors = selected_points - .filter_map(|point_id| if let ManipulatorPointId::Anchor(p) = point_id { Some(*p) } else { None }) +pub fn selected_segments(network_interface: &NodeNetworkInterface, shape_editor: &ShapeState) -> HashMap> { + let mut map = HashMap::new(); + + for (layer, state) in &shape_editor.selected_shape_state { + let Some(vector) = network_interface.compute_modified_vector(*layer) else { continue }; + let selected_segments = selected_segments_for_layer(&vector, state); + + map.insert(*layer, selected_segments); + } + + map +} + +pub fn selected_segments_for_layer(vector: &Vector, state: &SelectedLayerState) -> Vec { + let selected_anchors = state + .selected_points() + .filter_map(|point| if let ManipulatorPointId::Anchor(p) = point { Some(p) } else { None }) .collect::>(); // Collect the segments whose handles are selected - let mut selected_segments = shape_editor + let mut selected_segments = state .selected_points() .filter_map(|point_id| match point_id { - ManipulatorPointId::PrimaryHandle(segment_id) | ManipulatorPointId::EndHandle(segment_id) => Some(*segment_id), + ManipulatorPointId::PrimaryHandle(segment_id) | ManipulatorPointId::EndHandle(segment_id) => Some(segment_id), ManipulatorPointId::Anchor(_) => None, }) .collect::>(); - // TODO: Currently if there are two duplicate layers, both of their segments get overlays // Adding segments which are are connected to selected anchors - for layer in network_interface.selected_nodes().selected_layers(network_interface.document_metadata()) { - let Some(vector) = network_interface.compute_modified_vector(layer) else { continue }; - - for (segment_id, _bezier, start, end) in vector.segment_bezier_iter() { - if selected_anchors.contains(&start) || selected_anchors.contains(&end) { - selected_segments.push(segment_id); - } + for (segment_id, _bezier, start, end) in vector.segment_bezier_iter() { + if selected_anchors.contains(&start) || selected_anchors.contains(&end) { + selected_segments.push(segment_id); } } - selected_segments } @@ -124,22 +135,21 @@ pub fn path_overlays(document: &DocumentMessageHandler, draw_handles: DrawHandle overlay_context.outline_vector(&vector, transform); } - // Get the selected segments and then add a bold line overlay on them - for (segment_id, bezier, _, _) in vector.segment_bezier_iter() { - let Some(selected_shape_state) = shape_editor.selected_shape_state.get_mut(&layer) else { - continue; - }; + let Some(selected_shape_state) = shape_editor.selected_shape_state.get_mut(&layer) else { + continue; + }; + // Get the selected segments and then add a bold line overlay on them + for (segment_id, bezier, _, _) in vector.segment_iter() { if selected_shape_state.is_segment_selected(segment_id) { overlay_context.outline_select_bezier(bezier, transform); } } - let selected = shape_editor.selected_shape_state.get(&layer); - let is_selected = |point: ManipulatorPointId| selected.is_some_and(|selected| selected.is_point_selected(point)); + let is_selected = |point: ManipulatorPointId| selected_shape_state.is_point_selected(point); if display_handles { - let opposite_handles_data: Vec<(PointId, SegmentId)> = shape_editor.selected_points().filter_map(|point_id| vector.adjacent_segment(point_id)).collect(); + let opposite_handles_data = selected_shape_state.selected_points().filter_map(|point_id| vector.adjacent_segment(&point_id)).collect::>(); match draw_handles { DrawHandles::All => { @@ -148,9 +158,11 @@ pub fn path_overlays(document: &DocumentMessageHandler, draw_handles: DrawHandle }); } DrawHandles::SelectedAnchors(ref selected_segments) => { + let Some(focused_segments) = selected_segments.get(&layer) else { continue }; + vector .segment_bezier_iter() - .filter(|(segment_id, ..)| selected_segments.contains(segment_id)) + .filter(|(segment_id, ..)| focused_segments.contains(segment_id)) .for_each(|(segment_id, bezier, _start, _end)| { overlay_bezier_handles(bezier, segment_id, transform, is_selected, overlay_context); }); @@ -161,7 +173,9 @@ pub fn path_overlays(document: &DocumentMessageHandler, draw_handles: DrawHandle } } } - DrawHandles::FrontierHandles(ref segment_endpoints) => { + DrawHandles::FrontierHandles(ref segment_endpoints_by_layer) => { + let Some(segment_endpoints) = segment_endpoints_by_layer.get(&layer) else { continue }; + vector .segment_bezier_iter() .filter(|(segment_id, ..)| segment_endpoints.contains_key(segment_id)) @@ -186,7 +200,7 @@ pub fn path_overlays(document: &DocumentMessageHandler, draw_handles: DrawHandle } } -pub fn path_endpoint_overlays(document: &DocumentMessageHandler, shape_editor: &mut ShapeState, overlay_context: &mut OverlayContext, preferences: &PreferencesMessageHandler) { +pub fn path_endpoint_overlays(document: &DocumentMessageHandler, shape_editor: &mut ShapeState, overlay_context: &mut OverlayContext) { if !overlay_context.visibility_settings.anchors() { return; } @@ -195,15 +209,46 @@ pub fn path_endpoint_overlays(document: &DocumentMessageHandler, shape_editor: & let Some(vector) = document.network_interface.compute_modified_vector(layer) else { continue; }; - //let document_to_viewport = document.navigation_handler.calculate_offset_transform(overlay_context.size / 2., &document.document_ptz); let transform = document.metadata().transform_to_viewport_if_feeds(layer, &document.network_interface); let selected = shape_editor.selected_shape_state.get(&layer); let is_selected = |selected: Option<&SelectedLayerState>, point: ManipulatorPointId| selected.is_some_and(|selected| selected.is_point_selected(point)); - for point in vector.extendable_points(preferences.vector_meshes) { + for point in vector.anchor_points() { let Some(position) = vector.point_domain.position_from_id(point) else { continue }; let position = transform.transform_point2(position); overlay_context.manipulator_anchor(position, is_selected(selected, ManipulatorPointId::Anchor(point)), None); } } } + +// Global lazy initialized font cache and text context +pub static GLOBAL_FONT_CACHE: LazyLock = LazyLock::new(|| { + let mut font_cache = FontCache::default(); + // Initialize with the hardcoded font used by overlay text + const FONT_DATA: &[u8] = include_bytes!("source-sans-pro-regular.ttf"); + let font = Font::new("Source Sans Pro".to_string(), "Regular".to_string()); + font_cache.insert(font, FONT_DATA.to_vec()); + font_cache +}); + +pub static GLOBAL_TEXT_CONTEXT: LazyLock> = LazyLock::new(|| Mutex::new(TextContext::default())); + +pub fn text_width(text: &str, font_size: f64) -> f64 { + let typesetting = TypesettingConfig { + font_size, + line_height_ratio: 1.2, + character_spacing: 0.0, + max_width: None, + max_height: None, + tilt: 0.0, + align: TextAlign::Left, + }; + + // Load Source Sans Pro font data + // TODO: Grab this from the node_modules folder (either with `include_bytes!` or ideally at runtime) instead of checking the font file into the repo. + // TODO: And maybe use the WOFF2 version (if it's supported) for its smaller, compressed file size. + let font = Font::new("Source Sans Pro".to_string(), "Regular".to_string()); + let mut text_context = GLOBAL_TEXT_CONTEXT.lock().expect("Failed to lock global text context"); + let bounds = text_context.bounding_box(text, &font, &GLOBAL_FONT_CACHE, typesetting, false); + bounds.x +} diff --git a/editor/src/messages/portfolio/document/overlays/utility_types_vello.rs b/editor/src/messages/portfolio/document/overlays/utility_types_native.rs similarity index 76% rename from editor/src/messages/portfolio/document/overlays/utility_types_vello.rs rename to editor/src/messages/portfolio/document/overlays/utility_types_native.rs index 59c5b2657..1e86778fb 100644 --- a/editor/src/messages/portfolio/document/overlays/utility_types_vello.rs +++ b/editor/src/messages/portfolio/document/overlays/utility_types_native.rs @@ -1,23 +1,28 @@ use crate::consts::{ ARC_SWEEP_GIZMO_RADIUS, COLOR_OVERLAY_BLUE, COLOR_OVERLAY_BLUE_50, COLOR_OVERLAY_GREEN, COLOR_OVERLAY_RED, COLOR_OVERLAY_WHITE, COLOR_OVERLAY_YELLOW, COLOR_OVERLAY_YELLOW_DULL, COMPASS_ROSE_ARROW_SIZE, COMPASS_ROSE_HOVER_RING_DIAMETER, COMPASS_ROSE_MAIN_RING_DIAMETER, COMPASS_ROSE_RING_INNER_DIAMETER, DOWEL_PIN_RADIUS, MANIPULATOR_GROUP_MARKER_SIZE, - PIVOT_CROSSHAIR_LENGTH, PIVOT_CROSSHAIR_THICKNESS, PIVOT_DIAMETER, + PIVOT_CROSSHAIR_LENGTH, PIVOT_CROSSHAIR_THICKNESS, PIVOT_DIAMETER, RESIZE_HANDLE_SIZE, SKEW_TRIANGLE_OFFSET, SKEW_TRIANGLE_SIZE, }; +use crate::messages::portfolio::document::overlays::utility_functions::{GLOBAL_FONT_CACHE, GLOBAL_TEXT_CONTEXT}; +use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::prelude::Message; -use bezier_rs::{Bezier, Subpath}; +use crate::messages::prelude::ViewportMessageHandler; use core::borrow::Borrow; use core::f64::consts::{FRAC_PI_2, PI, TAU}; use glam::{DAffine2, DVec2}; use graphene_std::Color; use graphene_std::math::quad::Quad; +use graphene_std::subpath::{self, Subpath}; use graphene_std::table::Table; -use graphene_std::text::{TextAlign, TypesettingConfig, load_font, to_path}; +use graphene_std::text::{Font, TextAlign, TypesettingConfig}; use graphene_std::vector::click_target::ClickTargetType; +use graphene_std::vector::misc::point_to_dvec2; use graphene_std::vector::{PointId, SegmentId, Vector}; +use kurbo::{self, BezPath, ParamCurve}; +use kurbo::{Affine, PathSeg}; use std::collections::HashMap; use std::sync::{Arc, Mutex, MutexGuard}; use vello::Scene; -use vello::kurbo::{self, BezPath}; use vello::peniko; pub type OverlayProvider = fn(OverlayContext) -> Message; @@ -141,24 +146,18 @@ pub struct OverlayContext { #[serde(skip)] #[specta(skip)] internal: Arc>, - pub size: DVec2, - // The device pixel ratio is a property provided by the browser window and is the CSS pixel size divided by the physical monitor's pixel size. - // It allows better pixel density of visualizations on high-DPI displays where the OS display scaling is not 100%, or where the browser is zoomed. - pub device_pixel_ratio: f64, + pub viewport: ViewportMessageHandler, pub visibility_settings: OverlaysVisibilitySettings, } impl Clone for OverlayContext { fn clone(&self) -> Self { let internal = self.internal.lock().expect("Failed to lock internal overlay context"); - let size = internal.size; - let device_pixel_ratio = internal.device_pixel_ratio; let visibility_settings = internal.visibility_settings; drop(internal); // Explicitly release the lock before cloning the Arc> Self { internal: self.internal.clone(), - size, - device_pixel_ratio, + viewport: self.viewport, visibility_settings, } } @@ -167,7 +166,7 @@ impl Clone for OverlayContext { // Manual implementations since Scene doesn't implement PartialEq or Debug impl PartialEq for OverlayContext { fn eq(&self, other: &Self) -> bool { - self.size == other.size && self.device_pixel_ratio == other.device_pixel_ratio && self.visibility_settings == other.visibility_settings + self.viewport == other.viewport && self.visibility_settings == other.visibility_settings } } @@ -175,8 +174,7 @@ impl std::fmt::Debug for OverlayContext { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { f.debug_struct("OverlayContext") .field("scene", &"Scene { ... }") - .field("size", &self.size) - .field("device_pixel_ratio", &self.device_pixel_ratio) + .field("viewport", &self.viewport) .field("visibility_settings", &self.visibility_settings) .finish() } @@ -187,8 +185,7 @@ impl Default for OverlayContext { fn default() -> Self { Self { internal: Mutex::new(OverlayContextInternal::default()).into(), - size: DVec2::ZERO, - device_pixel_ratio: 1.0, + viewport: ViewportMessageHandler::default(), visibility_settings: OverlaysVisibilitySettings::default(), } } @@ -200,18 +197,18 @@ impl core::hash::Hash for OverlayContext { } impl OverlayContext { - pub(super) fn new(size: DVec2, device_pixel_ratio: f64, visibility_settings: OverlaysVisibilitySettings) -> Self { + #[allow(dead_code)] + pub(super) fn new(viewport: ViewportMessageHandler, visibility_settings: OverlaysVisibilitySettings) -> Self { Self { - internal: Arc::new(Mutex::new(OverlayContextInternal::new(size, device_pixel_ratio, visibility_settings))), - size, - device_pixel_ratio, + internal: Arc::new(Mutex::new(OverlayContextInternal::new(viewport, visibility_settings))), + viewport, visibility_settings, } } pub fn take_scene(self) -> Scene { let mut internal = self.internal.lock().expect("Failed to lock internal overlay context"); - std::mem::take(&mut *internal).scene + std::mem::take(&mut internal.scene) } fn internal(&'_ self) -> MutexGuard<'_, OverlayContextInternal> { @@ -263,6 +260,14 @@ impl OverlayContext { self.internal().manipulator_anchor(position, selected, color); } + pub fn resize_handle(&mut self, position: DVec2, rotation: f64) { + self.internal().resize_handle(position, rotation); + } + + pub fn skew_handles(&mut self, edge_start: DVec2, edge_end: DVec2) { + self.internal().skew_handles(edge_start, edge_end); + } + pub fn square(&mut self, position: DVec2, size: Option, color_fill: Option<&str>, color_stroke: Option<&str>) { self.internal().square(position, size, color_fill, color_stroke); } @@ -275,6 +280,7 @@ impl OverlayContext { self.internal().circle(position, radius, color_fill, color_stroke); } + #[allow(clippy::too_many_arguments)] pub fn dashed_ellipse( &mut self, center: DVec2, @@ -345,16 +351,16 @@ impl OverlayContext { } /// Used by the Pen tool in order to show how the bezier curve would look like. - pub fn outline_bezier(&mut self, bezier: Bezier, transform: DAffine2) { + pub fn outline_bezier(&mut self, bezier: PathSeg, transform: DAffine2) { self.internal().outline_bezier(bezier, transform); } /// Used by the path tool segment mode in order to show the selected segments. - pub fn outline_select_bezier(&mut self, bezier: Bezier, transform: DAffine2) { + pub fn outline_select_bezier(&mut self, bezier: PathSeg, transform: DAffine2) { self.internal().outline_select_bezier(bezier, transform); } - pub fn outline_overlay_bezier(&mut self, bezier: Bezier, transform: DAffine2) { + pub fn outline_overlay_bezier(&mut self, bezier: PathSeg, transform: DAffine2) { self.internal().outline_overlay_bezier(bezier, transform); } @@ -375,10 +381,6 @@ impl OverlayContext { self.internal().fill_path_pattern(subpaths, transform, color); } - pub fn get_width(&self, text: &str) -> f64 { - self.internal().get_width(text) - } - pub fn text(&self, text: &str, font_color: &str, background_color: Option<&str>, transform: DAffine2, padding: f64, pivot: [Pivot; 2]) { let mut internal = self.internal(); internal.text(text, font_color, background_color, transform, padding, pivot); @@ -397,35 +399,28 @@ pub enum Pivot { pub enum DrawHandles { All, - SelectedAnchors(Vec), - FrontierHandles(HashMap>), + SelectedAnchors(HashMap>), + FrontierHandles(HashMap>>), None, } pub(super) struct OverlayContextInternal { scene: Scene, - size: DVec2, - device_pixel_ratio: f64, + viewport: ViewportMessageHandler, visibility_settings: OverlaysVisibilitySettings, } impl Default for OverlayContextInternal { fn default() -> Self { - Self { - scene: Scene::new(), - size: DVec2::ZERO, - device_pixel_ratio: 1.0, - visibility_settings: OverlaysVisibilitySettings::default(), - } + Self::new(ViewportMessageHandler::default(), OverlaysVisibilitySettings::default()) } } impl OverlayContextInternal { - pub(super) fn new(size: DVec2, device_pixel_ratio: f64, visibility_settings: OverlaysVisibilitySettings) -> Self { + pub(super) fn new(viewport: ViewportMessageHandler, visibility_settings: OverlaysVisibilitySettings) -> Self { Self { scene: Scene::new(), - size, - device_pixel_ratio, + viewport, visibility_settings, } } @@ -461,7 +456,7 @@ impl OverlayContextInternal { self.scene.fill(peniko::Fill::NonZero, transform, Self::parse_color(color_fill), None, &path); - self.scene.stroke(&kurbo::Stroke::new(1.0), transform, Self::parse_color(color_stroke), None, &path); + self.scene.stroke(&kurbo::Stroke::new(1.), transform, Self::parse_color(color_stroke), None, &path); } fn dashed_quad(&mut self, quad: Quad, stroke_color: Option<&str>, color_fill: Option<&str>, dash_width: Option, dash_gap_width: Option, dash_offset: Option) { @@ -494,7 +489,7 @@ impl OverlayContextInternal { } let stroke_color = stroke_color.unwrap_or(COLOR_OVERLAY_BLUE); - let mut stroke = kurbo::Stroke::new(1.0); + let mut stroke = kurbo::Stroke::new(1.); if let Some(dash_width) = dash_width { let dash_gap = dash_gap_width.unwrap_or(1.); @@ -539,7 +534,7 @@ impl OverlayContextInternal { self.scene.fill(peniko::Fill::NonZero, transform, Self::parse_color(fill), None, &circle); self.scene - .stroke(&kurbo::Stroke::new(1.0), transform, Self::parse_color(color.unwrap_or(COLOR_OVERLAY_BLUE)), None, &circle); + .stroke(&kurbo::Stroke::new(1.), transform, Self::parse_color(color.unwrap_or(COLOR_OVERLAY_BLUE)), None, &circle); } fn hover_manipulator_handle(&mut self, position: DVec2, selected: bool) { @@ -551,13 +546,13 @@ impl OverlayContextInternal { let fill = COLOR_OVERLAY_BLUE_50; self.scene.fill(peniko::Fill::NonZero, transform, Self::parse_color(fill), None, &circle); - self.scene.stroke(&kurbo::Stroke::new(1.0), transform, Self::parse_color(COLOR_OVERLAY_BLUE_50), None, &circle); + self.scene.stroke(&kurbo::Stroke::new(1.), transform, Self::parse_color(COLOR_OVERLAY_BLUE_50), None, &circle); let inner_circle = kurbo::Circle::new((position.x, position.y), MANIPULATOR_GROUP_MARKER_SIZE / 2.); let color_fill = if selected { COLOR_OVERLAY_BLUE } else { COLOR_OVERLAY_WHITE }; self.scene.fill(peniko::Fill::NonZero, transform, Self::parse_color(color_fill), None, &circle); - self.scene.stroke(&kurbo::Stroke::new(1.0), transform, Self::parse_color(COLOR_OVERLAY_BLUE), None, &inner_circle); + self.scene.stroke(&kurbo::Stroke::new(1.), transform, Self::parse_color(COLOR_OVERLAY_BLUE), None, &inner_circle); } fn manipulator_anchor(&mut self, position: DVec2, selected: bool, color: Option<&str>) { @@ -572,8 +567,22 @@ impl OverlayContextInternal { self.square(position, None, Some(color_fill), Some(COLOR_OVERLAY_BLUE)); } + fn resize_handle(&mut self, position: DVec2, rotation: f64) { + let quad = DAffine2::from_angle_translation(rotation, position) * Quad::from_box([DVec2::splat(-RESIZE_HANDLE_SIZE / 2.), DVec2::splat(RESIZE_HANDLE_SIZE / 2.)]); + self.quad(quad, None, Some(COLOR_OVERLAY_WHITE)); + } + + fn skew_handles(&mut self, edge_start: DVec2, edge_end: DVec2) { + let edge_dir = (edge_end - edge_start).normalize(); + let mid = edge_end.midpoint(edge_start); + + for edge in [edge_dir, -edge_dir] { + self.draw_triangle(mid + edge * (3. + SKEW_TRIANGLE_OFFSET), edge, SKEW_TRIANGLE_SIZE, None, None); + } + } + fn get_transform(&self) -> kurbo::Affine { - kurbo::Affine::scale(self.device_pixel_ratio) + kurbo::Affine::scale(self.viewport.scale()) } fn square(&mut self, position: DVec2, size: Option, color_fill: Option<&str>, color_stroke: Option<&str>) { @@ -589,7 +598,7 @@ impl OverlayContextInternal { self.scene.fill(peniko::Fill::NonZero, transform, Self::parse_color(color_fill), None, &rect); - self.scene.stroke(&kurbo::Stroke::new(1.0), transform, Self::parse_color(color_stroke), None, &rect); + self.scene.stroke(&kurbo::Stroke::new(1.), transform, Self::parse_color(color_stroke), None, &rect); } fn pixel(&mut self, position: DVec2, color: Option<&str>) { @@ -615,9 +624,10 @@ impl OverlayContextInternal { self.scene.fill(peniko::Fill::NonZero, transform, Self::parse_color(color_fill), None, &circle); - self.scene.stroke(&kurbo::Stroke::new(1.0), transform, Self::parse_color(color_stroke), None, &circle); + self.scene.stroke(&kurbo::Stroke::new(1.), transform, Self::parse_color(color_stroke), None, &circle); } + #[allow(clippy::too_many_arguments)] fn dashed_ellipse( &mut self, _center: DVec2, @@ -666,7 +676,7 @@ impl OverlayContextInternal { ); } - self.scene.stroke(&kurbo::Stroke::new(1.0), self.get_transform(), Self::parse_color(COLOR_OVERLAY_BLUE), None, &path); + self.scene.stroke(&kurbo::Stroke::new(1.), self.get_transform(), Self::parse_color(COLOR_OVERLAY_BLUE), None, &path); } fn draw_arc_gizmo_angle(&mut self, pivot: DVec2, bold_radius: f64, arc_radius: f64, offset_angle: f64, angle: f64) { @@ -688,7 +698,7 @@ impl OverlayContextInternal { let mut fill_color = Color::from_rgb_str(COLOR_OVERLAY_WHITE.strip_prefix('#').unwrap()).unwrap().with_alpha(0.05).to_rgba_hex_srgb(); fill_color.insert(0, '#'); let fill_color = Some(fill_color.as_str()); - self.line(start + DVec2::X * radius * sign, start + DVec2::X * (radius * scale), None, None); + self.line(start + DVec2::X * radius * sign, start + DVec2::X * radius * scale.abs(), None, None); self.circle(start, radius, fill_color, None); self.circle(start, radius * scale.abs(), fill_color, None); self.text( @@ -702,14 +712,14 @@ impl OverlayContextInternal { } fn compass_rose(&mut self, compass_center: DVec2, angle: f64, show_compass_with_hover_ring: Option) { - const HOVER_RING_OUTER_RADIUS: f64 = COMPASS_ROSE_HOVER_RING_DIAMETER / 2.; - const MAIN_RING_OUTER_RADIUS: f64 = COMPASS_ROSE_MAIN_RING_DIAMETER / 2.; - const MAIN_RING_INNER_RADIUS: f64 = COMPASS_ROSE_RING_INNER_DIAMETER / 2.; - const ARROW_RADIUS: f64 = COMPASS_ROSE_ARROW_SIZE / 2.; - const HOVER_RING_STROKE_WIDTH: f64 = HOVER_RING_OUTER_RADIUS - MAIN_RING_INNER_RADIUS; - const HOVER_RING_CENTERLINE_RADIUS: f64 = (HOVER_RING_OUTER_RADIUS + MAIN_RING_INNER_RADIUS) / 2.; - const MAIN_RING_STROKE_WIDTH: f64 = MAIN_RING_OUTER_RADIUS - MAIN_RING_INNER_RADIUS; - const MAIN_RING_CENTERLINE_RADIUS: f64 = (MAIN_RING_OUTER_RADIUS + MAIN_RING_INNER_RADIUS) / 2.; + let hover_ring_outer_radius: f64 = COMPASS_ROSE_HOVER_RING_DIAMETER / 2.; + let main_ring_outer_radius: f64 = COMPASS_ROSE_MAIN_RING_DIAMETER / 2.; + let main_ring_inner_radius: f64 = COMPASS_ROSE_RING_INNER_DIAMETER / 2.; + let arrow_radius: f64 = COMPASS_ROSE_ARROW_SIZE / 2.; + let hover_ring_stroke_width: f64 = hover_ring_outer_radius - main_ring_inner_radius; + let hover_ring_centerline_radius: f64 = (hover_ring_outer_radius + main_ring_inner_radius) / 2.; + let main_ring_stroke_width: f64 = main_ring_outer_radius - main_ring_inner_radius; + let main_ring_centerline_radius: f64 = (main_ring_outer_radius + main_ring_inner_radius) / 2.; let Some(show_hover_ring) = show_compass_with_hover_ring else { return }; @@ -721,9 +731,9 @@ impl OverlayContextInternal { let mut fill_color = Color::from_rgb_str(COLOR_OVERLAY_BLUE.strip_prefix('#').unwrap()).unwrap().with_alpha(0.5).to_rgba_hex_srgb(); fill_color.insert(0, '#'); - let circle = kurbo::Circle::new((center.x, center.y), HOVER_RING_CENTERLINE_RADIUS); + let circle = kurbo::Circle::new((center.x, center.y), hover_ring_centerline_radius); self.scene - .stroke(&kurbo::Stroke::new(HOVER_RING_STROKE_WIDTH), transform, Self::parse_color(&fill_color), None, &circle); + .stroke(&kurbo::Stroke::new(hover_ring_stroke_width), transform, Self::parse_color(&fill_color), None, &circle); } // Arrows @@ -731,11 +741,11 @@ impl OverlayContextInternal { let direction = DVec2::from_angle(i as f64 * FRAC_PI_2 + angle); let color = if i % 2 == 0 { COLOR_OVERLAY_RED } else { COLOR_OVERLAY_GREEN }; - let tip = center + direction * HOVER_RING_OUTER_RADIUS; - let base = center + direction * (MAIN_RING_INNER_RADIUS + MAIN_RING_OUTER_RADIUS) / 2.; + let tip = center + direction * hover_ring_outer_radius; + let base = center + direction * (main_ring_inner_radius + main_ring_outer_radius) / 2.; - let r = (ARROW_RADIUS.powi(2) + MAIN_RING_INNER_RADIUS.powi(2)).sqrt(); - let (cos, sin) = (MAIN_RING_INNER_RADIUS / r, ARROW_RADIUS / r); + let r = (arrow_radius.powi(2) + main_ring_inner_radius.powi(2)).sqrt(); + let (cos, sin) = (main_ring_inner_radius / r, arrow_radius / r); let side1 = center + r * DVec2::new(cos * direction.x - sin * direction.y, sin * direction.x + direction.y * cos); let side2 = center + r * DVec2::new(cos * direction.x + sin * direction.y, -sin * direction.x + direction.y * cos); @@ -752,9 +762,9 @@ impl OverlayContextInternal { } // Main ring - let circle = kurbo::Circle::new((center.x, center.y), MAIN_RING_CENTERLINE_RADIUS); + let circle = kurbo::Circle::new((center.x, center.y), main_ring_centerline_radius); self.scene - .stroke(&kurbo::Stroke::new(MAIN_RING_STROKE_WIDTH), transform, Self::parse_color(COLOR_OVERLAY_BLUE), None, &circle); + .stroke(&kurbo::Stroke::new(main_ring_stroke_width), transform, Self::parse_color(COLOR_OVERLAY_BLUE), None, &circle); } fn pivot(&mut self, position: DVec2, angle: f64) { @@ -768,22 +778,22 @@ impl OverlayContextInternal { self.scene.fill(peniko::Fill::NonZero, transform, Self::parse_color(COLOR_OVERLAY_YELLOW), None, &circle); // Crosshair - const CROSSHAIR_RADIUS: f64 = (PIVOT_CROSSHAIR_LENGTH - PIVOT_CROSSHAIR_THICKNESS) / 2.; + let crosshair_radius: f64 = (PIVOT_CROSSHAIR_LENGTH - PIVOT_CROSSHAIR_THICKNESS) / 2.; let mut stroke = kurbo::Stroke::new(PIVOT_CROSSHAIR_THICKNESS); stroke = stroke.with_caps(kurbo::Cap::Round); // Horizontal line let mut path = BezPath::new(); - path.move_to(kurbo::Point::new(x + CROSSHAIR_RADIUS * uv.x, y + CROSSHAIR_RADIUS * uv.y)); - path.line_to(kurbo::Point::new(x - CROSSHAIR_RADIUS * uv.x, y - CROSSHAIR_RADIUS * uv.y)); + path.move_to(kurbo::Point::new(x + crosshair_radius * uv.x, y + crosshair_radius * uv.y)); + path.line_to(kurbo::Point::new(x - crosshair_radius * uv.x, y - crosshair_radius * uv.y)); self.scene.stroke(&stroke, transform, Self::parse_color(COLOR_OVERLAY_YELLOW), None, &path); // Vertical line let mut path = BezPath::new(); - path.move_to(kurbo::Point::new(x - CROSSHAIR_RADIUS * uv.y, y + CROSSHAIR_RADIUS * uv.x)); - path.line_to(kurbo::Point::new(x + CROSSHAIR_RADIUS * uv.y, y - CROSSHAIR_RADIUS * uv.x)); + path.move_to(kurbo::Point::new(x - crosshair_radius * uv.y, y + crosshair_radius * uv.x)); + path.line_to(kurbo::Point::new(x + crosshair_radius * uv.y, y - crosshair_radius * uv.x)); self.scene.stroke(&stroke, transform, Self::parse_color(COLOR_OVERLAY_YELLOW), None, &path); } @@ -794,34 +804,32 @@ impl OverlayContextInternal { let transform = self.get_transform(); - // Draw the background circle with a white fill and colored outline let circle = kurbo::Circle::new((x, y), DOWEL_PIN_RADIUS); self.scene.fill(peniko::Fill::NonZero, transform, Self::parse_color(COLOR_OVERLAY_WHITE), None, &circle); - self.scene.stroke(&kurbo::Stroke::new(1.0), transform, Self::parse_color(color), None, &circle); + self.scene.stroke(&kurbo::Stroke::new(1.), transform, Self::parse_color(color), None, &circle); - // Draw the two filled sectors using paths let mut path = BezPath::new(); - // Top-left sector + let start1 = FRAC_PI_2 + angle; + let start1_x = x + DOWEL_PIN_RADIUS * start1.cos(); + let start1_y = y + DOWEL_PIN_RADIUS * start1.sin(); path.move_to(kurbo::Point::new(x, y)); - let end_x = x + DOWEL_PIN_RADIUS * (FRAC_PI_2 + angle).cos(); - let end_y = y + DOWEL_PIN_RADIUS * (FRAC_PI_2 + angle).sin(); - path.line_to(kurbo::Point::new(end_x, end_y)); - // Draw arc manually - let arc = kurbo::Arc::new((x, y), (DOWEL_PIN_RADIUS, DOWEL_PIN_RADIUS), FRAC_PI_2 + angle, FRAC_PI_2, 0.0); - arc.to_cubic_beziers(0.1, |p1, p2, p| { + path.line_to(kurbo::Point::new(start1_x, start1_y)); + + let arc1 = kurbo::Arc::new((x, y), (DOWEL_PIN_RADIUS, DOWEL_PIN_RADIUS), start1, FRAC_PI_2, 0.0); + arc1.to_cubic_beziers(0.1, |p1, p2, p| { path.curve_to(p1, p2, p); }); path.close_path(); - // Bottom-right sector + let start2 = PI + FRAC_PI_2 + angle; + let start2_x = x + DOWEL_PIN_RADIUS * start2.cos(); + let start2_y = y + DOWEL_PIN_RADIUS * start2.sin(); path.move_to(kurbo::Point::new(x, y)); - let end_x = x + DOWEL_PIN_RADIUS * (PI + FRAC_PI_2 + angle).cos(); - let end_y = y + DOWEL_PIN_RADIUS * (PI + FRAC_PI_2 + angle).sin(); - path.line_to(kurbo::Point::new(end_x, end_y)); - // Draw arc manually - let arc = kurbo::Arc::new((x, y), (DOWEL_PIN_RADIUS, DOWEL_PIN_RADIUS), PI + FRAC_PI_2 + angle, FRAC_PI_2, 0.0); - arc.to_cubic_beziers(0.1, |p1, p2, p| { + path.line_to(kurbo::Point::new(start2_x, start2_y)); + + let arc2 = kurbo::Arc::new((x, y), (DOWEL_PIN_RADIUS, DOWEL_PIN_RADIUS), start2, FRAC_PI_2, 0.0); + arc2.to_cubic_beziers(0.1, |p1, p2, p| { path.curve_to(p1, p2, p); }); path.close_path(); @@ -842,27 +850,27 @@ impl OverlayContextInternal { let mut path = BezPath::new(); let mut last_point = None; - for (_, bezier, start_id, end_id) in vector.segment_bezier_iter() { + for (_, bezier, start_id, end_id) in vector.segment_iter() { let move_to = last_point != Some(start_id); last_point = Some(end_id); self.bezier_to_path(bezier, transform, move_to, &mut path); } - self.scene.stroke(&kurbo::Stroke::new(1.0), vello_transform, Self::parse_color(COLOR_OVERLAY_BLUE), None, &path); + self.scene.stroke(&kurbo::Stroke::new(1.), vello_transform, Self::parse_color(COLOR_OVERLAY_BLUE), None, &path); } /// Used by the Pen tool in order to show how the bezier curve would look like. - fn outline_bezier(&mut self, bezier: Bezier, transform: DAffine2) { + fn outline_bezier(&mut self, bezier: PathSeg, transform: DAffine2) { let vello_transform = self.get_transform(); let mut path = BezPath::new(); self.bezier_to_path(bezier, transform, true, &mut path); - self.scene.stroke(&kurbo::Stroke::new(1.0), vello_transform, Self::parse_color(COLOR_OVERLAY_BLUE), None, &path); + self.scene.stroke(&kurbo::Stroke::new(1.), vello_transform, Self::parse_color(COLOR_OVERLAY_BLUE), None, &path); } /// Used by the path tool segment mode in order to show the selected segments. - fn outline_select_bezier(&mut self, bezier: Bezier, transform: DAffine2) { + fn outline_select_bezier(&mut self, bezier: PathSeg, transform: DAffine2) { let vello_transform = self.get_transform(); let mut path = BezPath::new(); self.bezier_to_path(bezier, transform, true, &mut path); @@ -870,7 +878,7 @@ impl OverlayContextInternal { self.scene.stroke(&kurbo::Stroke::new(4.0), vello_transform, Self::parse_color(COLOR_OVERLAY_BLUE), None, &path); } - fn outline_overlay_bezier(&mut self, bezier: Bezier, transform: DAffine2) { + fn outline_overlay_bezier(&mut self, bezier: PathSeg, transform: DAffine2) { let vello_transform = self.get_transform(); let mut path = BezPath::new(); self.bezier_to_path(bezier, transform, true, &mut path); @@ -878,21 +886,12 @@ impl OverlayContextInternal { self.scene.stroke(&kurbo::Stroke::new(4.0), vello_transform, Self::parse_color(COLOR_OVERLAY_BLUE_50), None, &path); } - fn bezier_to_path(&self, bezier: Bezier, transform: DAffine2, move_to: bool, path: &mut BezPath) { - let Bezier { start, end, handles } = bezier.apply_transformation(|point| transform.transform_point2(point)); + fn bezier_to_path(&self, bezier: PathSeg, transform: DAffine2, move_to: bool, path: &mut BezPath) { + let bezier = Affine::new(transform.to_cols_array()) * bezier; if move_to { - path.move_to(kurbo::Point::new(start.x, start.y)); - } - - match handles { - bezier_rs::BezierHandles::Linear => path.line_to(kurbo::Point::new(end.x, end.y)), - bezier_rs::BezierHandles::Quadratic { handle } => path.quad_to(kurbo::Point::new(handle.x, handle.y), kurbo::Point::new(end.x, end.y)), - bezier_rs::BezierHandles::Cubic { handle_start, handle_end } => path.curve_to( - kurbo::Point::new(handle_start.x, handle_start.y), - kurbo::Point::new(handle_end.x, handle_end.y), - kurbo::Point::new(end.x, end.y), - ), + path.move_to(bezier.start()); } + path.push(bezier.as_path_el()); } fn push_path(&mut self, subpaths: impl Iterator>>, transform: DAffine2) -> BezPath { @@ -906,27 +905,27 @@ impl OverlayContextInternal { continue; }; - let start_point = transform.transform_point2(first.start()); + let start_point = transform.transform_point2(point_to_dvec2(first.start())); path.move_to(kurbo::Point::new(start_point.x, start_point.y)); for curve in curves { - match curve.handles { - bezier_rs::BezierHandles::Linear => { - let a = transform.transform_point2(curve.end()); + match curve { + PathSeg::Line(line) => { + let a = transform.transform_point2(point_to_dvec2(line.p1)); let a = a.round() - DVec2::splat(0.5); path.line_to(kurbo::Point::new(a.x, a.y)); } - bezier_rs::BezierHandles::Quadratic { handle } => { - let a = transform.transform_point2(handle); - let b = transform.transform_point2(curve.end()); + PathSeg::Quad(quad_bez) => { + let a = transform.transform_point2(point_to_dvec2(quad_bez.p1)); + let b = transform.transform_point2(point_to_dvec2(quad_bez.p2)); let a = a.round() - DVec2::splat(0.5); let b = b.round() - DVec2::splat(0.5); path.quad_to(kurbo::Point::new(a.x, a.y), kurbo::Point::new(b.x, b.y)); } - bezier_rs::BezierHandles::Cubic { handle_start, handle_end } => { - let a = transform.transform_point2(handle_start); - let b = transform.transform_point2(handle_end); - let c = transform.transform_point2(curve.end()); + PathSeg::Cubic(cubic_bez) => { + let a = transform.transform_point2(point_to_dvec2(cubic_bez.p1)); + let b = transform.transform_point2(point_to_dvec2(cubic_bez.p2)); + let c = transform.transform_point2(point_to_dvec2(cubic_bez.p3)); let a = a.round() - DVec2::splat(0.5); let b = b.round() - DVec2::splat(0.5); let c = c.round() - DVec2::splat(0.5); @@ -945,7 +944,7 @@ impl OverlayContextInternal { /// Used by the Select tool to outline a path or a free point when selected or hovered. fn outline(&mut self, target_types: impl Iterator>, transform: DAffine2, color: Option<&str>) { - let mut subpaths: Vec> = vec![]; + let mut subpaths: Vec> = vec![]; for target_type in target_types { match target_type.borrow() { @@ -960,7 +959,7 @@ impl OverlayContextInternal { let path = self.push_path(subpaths.iter(), transform); let color = color.unwrap_or(COLOR_OVERLAY_BLUE); - self.scene.stroke(&kurbo::Stroke::new(1.0), self.get_transform(), Self::parse_color(color), None, &path); + self.scene.stroke(&kurbo::Stroke::new(1.), self.get_transform(), Self::parse_color(color), None, &path); } } @@ -995,15 +994,20 @@ impl OverlayContextInternal { data[index..index + 4].copy_from_slice(&rgba); } - let image = peniko::Image { - data: data.into(), - format: peniko::ImageFormat::Rgba8, - width: PATTERN_WIDTH, - height: PATTERN_HEIGHT, - x_extend: peniko::Extend::Repeat, - y_extend: peniko::Extend::Repeat, - alpha: 1.0, - quality: peniko::ImageQuality::default(), + let image = peniko::ImageBrush { + image: peniko::ImageData { + data: data.into(), + format: peniko::ImageFormat::Rgba8, + width: PATTERN_WIDTH, + height: PATTERN_HEIGHT, + alpha_type: peniko::ImageAlphaType::Alpha, + }, + sampler: peniko::ImageSampler { + x_extend: peniko::Extend::Repeat, + y_extend: peniko::Extend::Repeat, + quality: peniko::ImageQuality::default(), + alpha: 1., + }, }; let path = self.push_path(subpaths, transform); @@ -1012,30 +1016,6 @@ impl OverlayContextInternal { self.scene.fill(peniko::Fill::NonZero, self.get_transform(), &brush, None, &path); } - fn get_width(&self, text: &str) -> f64 { - // Use the actual text-to-path system to get precise text width - const FONT_SIZE: f64 = 12.0; - - let typesetting = TypesettingConfig { - font_size: FONT_SIZE, - line_height_ratio: 1.2, - character_spacing: 0.0, - max_width: None, - max_height: None, - tilt: 0.0, - align: TextAlign::Left, - }; - - // Load Source Sans Pro font data - const FONT_DATA: &[u8] = include_bytes!("source-sans-pro-regular.ttf"); - let font_blob = Some(load_font(FONT_DATA)); - - // Convert text to paths and calculate actual bounds - let text_table = to_path(text, font_blob, typesetting, false); - let text_bounds = self.calculate_text_bounds(&text_table); - text_bounds.width() - } - fn text(&mut self, text: &str, font_color: &str, background_color: Option<&str>, transform: DAffine2, padding: f64, pivot: [Pivot; 2]) { // Use the proper text-to-path system for accurate text rendering const FONT_SIZE: f64 = 12.0; @@ -1052,15 +1032,20 @@ impl OverlayContextInternal { }; // Load Source Sans Pro font data - const FONT_DATA: &[u8] = include_bytes!("source-sans-pro-regular.ttf"); - let font_blob = Some(load_font(FONT_DATA)); + // TODO: Grab this from the node_modules folder (either with `include_bytes!` or ideally at runtime) instead of checking the font file into the repo. + // TODO: And maybe use the WOFF2 version (if it's supported) for its smaller, compressed file size. + let font = Font::new("Source Sans Pro".to_string(), "Regular".to_string()); - // Convert text to vector paths using the existing text system - let text_table = to_path(text, font_blob, typesetting, false); - // Calculate text bounds from the generated paths - let text_bounds = self.calculate_text_bounds(&text_table); - let text_width = text_bounds.width(); - let text_height = text_bounds.height(); + // Get text dimensions directly from layout + let mut text_context = GLOBAL_TEXT_CONTEXT.lock().expect("Failed to lock global text context"); + let text_size = text_context.bounding_box(text, &font, &GLOBAL_FONT_CACHE, typesetting, false); + let text_width = text_size.x; + let text_height = text_size.y; + // Create a rect from the size (assuming text starts at origin) + let text_bounds = kurbo::Rect::new(0.0, 0.0, text_width, text_height); + + // Convert text to vector paths for rendering + let text_table = text_context.to_path(text, &font, &GLOBAL_FONT_CACHE, typesetting, false); // Calculate position based on pivot let mut position = DVec2::ZERO; @@ -1095,56 +1080,6 @@ impl OverlayContextInternal { self.render_text_paths(&text_table, font_color, vello_transform); } - // Calculate bounds of text from vector table - fn calculate_text_bounds(&self, text_table: &Table) -> kurbo::Rect { - let mut min_x = f64::INFINITY; - let mut min_y = f64::INFINITY; - let mut max_x = f64::NEG_INFINITY; - let mut max_y = f64::NEG_INFINITY; - - for row in text_table.iter() { - // Use the existing segment_bezier_iter to get all bezier curves - for (_, bezier, _, _) in row.element.segment_bezier_iter() { - let transformed_bezier = bezier.apply_transformation(|point| row.transform.transform_point2(point)); - - // Add start and end points to bounds - let points = [transformed_bezier.start, transformed_bezier.end]; - for point in points { - min_x = min_x.min(point.x); - min_y = min_y.min(point.y); - max_x = max_x.max(point.x); - max_y = max_y.max(point.y); - } - - // Add handle points if they exist - match transformed_bezier.handles { - bezier_rs::BezierHandles::Quadratic { handle } => { - min_x = min_x.min(handle.x); - min_y = min_y.min(handle.y); - max_x = max_x.max(handle.x); - max_y = max_y.max(handle.y); - } - bezier_rs::BezierHandles::Cubic { handle_start, handle_end } => { - for handle in [handle_start, handle_end] { - min_x = min_x.min(handle.x); - min_y = min_y.min(handle.y); - max_x = max_x.max(handle.x); - max_y = max_y.max(handle.y); - } - } - _ => {} - } - } - } - - if min_x.is_finite() && min_y.is_finite() && max_x.is_finite() && max_y.is_finite() { - kurbo::Rect::new(min_x, min_y, max_x, max_y) - } else { - // Fallback for empty text - kurbo::Rect::new(0.0, 0.0, 0.0, 12.0) - } - } - // Render text paths to the vello scene using existing infrastructure fn render_text_paths(&mut self, text_table: &Table, font_color: &str, base_transform: kurbo::Affine) { let color = Self::parse_color(font_color); @@ -1154,11 +1089,11 @@ impl OverlayContextInternal { let mut path = BezPath::new(); let mut last_point = None; - for (_, bezier, start_id, end_id) in row.element.segment_bezier_iter() { + for (_, bezier, start_id, end_id) in row.element.segment_iter() { let move_to = last_point != Some(start_id); last_point = Some(end_id); - self.bezier_to_path(bezier, row.transform.clone(), move_to, &mut path); + self.bezier_to_path(bezier, *row.transform, move_to, &mut path); } // Render the path diff --git a/editor/src/messages/portfolio/document/overlays/utility_types.rs b/editor/src/messages/portfolio/document/overlays/utility_types_web.rs similarity index 91% rename from editor/src/messages/portfolio/document/overlays/utility_types.rs rename to editor/src/messages/portfolio/document/overlays/utility_types_web.rs index c1bd7ccd3..0800c65cf 100644 --- a/editor/src/messages/portfolio/document/overlays/utility_types.rs +++ b/editor/src/messages/portfolio/document/overlays/utility_types_web.rs @@ -2,17 +2,21 @@ use super::utility_functions::overlay_canvas_context; use crate::consts::{ ARC_SWEEP_GIZMO_RADIUS, COLOR_OVERLAY_BLUE, COLOR_OVERLAY_BLUE_50, COLOR_OVERLAY_GREEN, COLOR_OVERLAY_RED, COLOR_OVERLAY_WHITE, COLOR_OVERLAY_YELLOW, COLOR_OVERLAY_YELLOW_DULL, COMPASS_ROSE_ARROW_SIZE, COMPASS_ROSE_HOVER_RING_DIAMETER, COMPASS_ROSE_MAIN_RING_DIAMETER, COMPASS_ROSE_RING_INNER_DIAMETER, DOWEL_PIN_RADIUS, MANIPULATOR_GROUP_MARKER_SIZE, - PIVOT_CROSSHAIR_LENGTH, PIVOT_CROSSHAIR_THICKNESS, PIVOT_DIAMETER, SEGMENT_SELECTED_THICKNESS, + PIVOT_CROSSHAIR_LENGTH, PIVOT_CROSSHAIR_THICKNESS, PIVOT_DIAMETER, RESIZE_HANDLE_SIZE, SEGMENT_SELECTED_THICKNESS, SKEW_TRIANGLE_OFFSET, SKEW_TRIANGLE_SIZE, }; +use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::prelude::Message; -use bezier_rs::{Bezier, Subpath}; +use crate::messages::viewport::ViewportMessageHandler; use core::borrow::Borrow; use core::f64::consts::{FRAC_PI_2, PI, TAU}; use glam::{DAffine2, DVec2}; use graphene_std::Color; use graphene_std::math::quad::Quad; +use graphene_std::subpath::Subpath; use graphene_std::vector::click_target::ClickTargetType; +use graphene_std::vector::misc::{dvec2_to_point, point_to_dvec2}; use graphene_std::vector::{PointId, SegmentId, Vector}; +use kurbo::{self, Affine, CubicBez, ParamCurve, PathSeg}; use std::collections::HashMap; use wasm_bindgen::{JsCast, JsValue}; use web_sys::{OffscreenCanvas, OffscreenCanvasRenderingContext2d}; @@ -138,10 +142,7 @@ pub struct OverlayContext { #[serde(skip, default = "overlay_canvas_context")] #[specta(skip)] pub render_context: web_sys::CanvasRenderingContext2d, - pub size: DVec2, - // The device pixel ratio is a property provided by the browser window and is the CSS pixel size divided by the physical monitor's pixel size. - // It allows better pixel density of visualizations on high-DPI displays where the OS display scaling is not 100%, or where the browser is zoomed. - pub device_pixel_ratio: f64, + pub viewport: ViewportMessageHandler, pub visibility_settings: OverlaysVisibilitySettings, } // Message hashing isn't used but is required by the message system macros @@ -496,11 +497,25 @@ impl OverlayContext { self.square(position, None, Some(color_fill), Some(COLOR_OVERLAY_BLUE)); } + pub fn resize_handle(&mut self, position: DVec2, rotation: f64) { + let quad = DAffine2::from_angle_translation(rotation, position) * Quad::from_box([DVec2::splat(-RESIZE_HANDLE_SIZE / 2.), DVec2::splat(RESIZE_HANDLE_SIZE / 2.)]); + self.quad(quad, None, Some(COLOR_OVERLAY_WHITE)); + } + + pub fn skew_handles(&mut self, edge_start: DVec2, edge_end: DVec2) { + let edge_dir = (edge_end - edge_start).normalize(); + let mid = edge_end.midpoint(edge_start); + + for edge in [edge_dir, -edge_dir] { + self.draw_triangle(mid + edge * (3. + SKEW_TRIANGLE_OFFSET), edge, SKEW_TRIANGLE_SIZE, None, None); + } + } + /// Transforms the canvas context to adjust for DPI scaling /// /// Overwrites all existing tranforms. This operation can be reversed with [`Self::reset_transform`]. fn start_dpi_aware_transform(&self) { - let [a, b, c, d, e, f] = DAffine2::from_scale(DVec2::splat(self.device_pixel_ratio)).to_cols_array(); + let [a, b, c, d, e, f] = DAffine2::from_scale(DVec2::splat(self.viewport.scale())).to_cols_array(); self.render_context .set_transform(a, b, c, d, e, f) .expect("transform should be able to be set to be able to account for DPI"); @@ -571,11 +586,7 @@ impl OverlayContext { let handle_start = start + start_vec.perp() * radius * factor; let handle_end = end - end_vec.perp() * radius * factor; - let bezier = Bezier { - start, - end, - handles: bezier_rs::BezierHandles::Cubic { handle_start, handle_end }, - }; + let bezier = PathSeg::Cubic(CubicBez::new(dvec2_to_point(start), dvec2_to_point(handle_start), dvec2_to_point(handle_end), dvec2_to_point(end))); self.bezier_command(bezier, DAffine2::IDENTITY, i == 0); } @@ -762,7 +773,7 @@ impl OverlayContext { self.render_context.begin_path(); let mut last_point = None; - for (_, bezier, start_id, end_id) in vector.segment_bezier_iter() { + for (_, bezier, start_id, end_id) in vector.segment_iter() { let move_to = last_point != Some(start_id); last_point = Some(end_id); @@ -776,7 +787,7 @@ impl OverlayContext { } /// Used by the Pen tool in order to show how the bezier curve would look like. - pub fn outline_bezier(&mut self, bezier: Bezier, transform: DAffine2) { + pub fn outline_bezier(&mut self, bezier: PathSeg, transform: DAffine2) { self.start_dpi_aware_transform(); self.render_context.begin_path(); @@ -788,7 +799,7 @@ impl OverlayContext { } /// Used by the path tool segment mode in order to show the selected segments. - pub fn outline_select_bezier(&mut self, bezier: Bezier, transform: DAffine2) { + pub fn outline_select_bezier(&mut self, bezier: PathSeg, transform: DAffine2) { self.start_dpi_aware_transform(); self.render_context.begin_path(); @@ -802,7 +813,7 @@ impl OverlayContext { self.end_dpi_aware_transform(); } - pub fn outline_overlay_bezier(&mut self, bezier: Bezier, transform: DAffine2) { + pub fn outline_overlay_bezier(&mut self, bezier: PathSeg, transform: DAffine2) { self.start_dpi_aware_transform(); self.render_context.begin_path(); @@ -816,18 +827,18 @@ impl OverlayContext { self.end_dpi_aware_transform(); } - fn bezier_command(&self, bezier: Bezier, transform: DAffine2, move_to: bool) { + fn bezier_command(&self, bezier: PathSeg, transform: DAffine2, move_to: bool) { self.start_dpi_aware_transform(); - let Bezier { start, end, handles } = bezier.apply_transformation(|point| transform.transform_point2(point)); + let bezier = Affine::new(transform.to_cols_array()) * bezier; if move_to { - self.render_context.move_to(start.x, start.y); + self.render_context.move_to(bezier.start().x, bezier.start().y); } - - match handles { - bezier_rs::BezierHandles::Linear => self.render_context.line_to(end.x, end.y), - bezier_rs::BezierHandles::Quadratic { handle } => self.render_context.quadratic_curve_to(handle.x, handle.y, end.x, end.y), - bezier_rs::BezierHandles::Cubic { handle_start, handle_end } => self.render_context.bezier_curve_to(handle_start.x, handle_start.y, handle_end.x, handle_end.y, end.x, end.y), + match bezier.as_path_el() { + kurbo::PathEl::LineTo(point) => self.render_context.line_to(point.x, point.y), + kurbo::PathEl::QuadTo(point, point1) => self.render_context.quadratic_curve_to(point.x, point.y, point1.x, point1.y), + kurbo::PathEl::CurveTo(point, point1, point2) => self.render_context.bezier_curve_to(point.x, point.y, point1.x, point1.y, point2.x, point2.y), + _ => unreachable!(), } self.end_dpi_aware_transform(); @@ -841,36 +852,35 @@ impl OverlayContext { let subpath = subpath.borrow(); let mut curves = subpath.iter().peekable(); - let Some(first) = curves.peek() else { + let Some(&first) = curves.peek() else { continue; }; - self.render_context.move_to(transform.transform_point2(first.start()).x, transform.transform_point2(first.start()).y); - for curve in curves { - match curve.handles { - bezier_rs::BezierHandles::Linear => { - let a = transform.transform_point2(curve.end()); - let a = a.round() - DVec2::splat(0.5); + let start_point = transform.transform_point2(point_to_dvec2(first.start())); + self.render_context.move_to(start_point.x, start_point.y); - self.render_context.line_to(a.x, a.y) + for curve in curves { + match curve { + PathSeg::Line(line) => { + let a = transform.transform_point2(point_to_dvec2(line.p1)); + let a = a.round() - DVec2::splat(0.5); + self.render_context.line_to(a.x, a.y); } - bezier_rs::BezierHandles::Quadratic { handle } => { - let a = transform.transform_point2(handle); - let b = transform.transform_point2(curve.end()); + PathSeg::Quad(quad_bez) => { + let a = transform.transform_point2(point_to_dvec2(quad_bez.p1)); + let b = transform.transform_point2(point_to_dvec2(quad_bez.p2)); let a = a.round() - DVec2::splat(0.5); let b = b.round() - DVec2::splat(0.5); - - self.render_context.quadratic_curve_to(a.x, a.y, b.x, b.y) + self.render_context.quadratic_curve_to(a.x, a.y, b.x, b.y); } - bezier_rs::BezierHandles::Cubic { handle_start, handle_end } => { - let a = transform.transform_point2(handle_start); - let b = transform.transform_point2(handle_end); - let c = transform.transform_point2(curve.end()); + PathSeg::Cubic(cubic_bez) => { + let a = transform.transform_point2(point_to_dvec2(cubic_bez.p1)); + let b = transform.transform_point2(point_to_dvec2(cubic_bez.p2)); + let c = transform.transform_point2(point_to_dvec2(cubic_bez.p3)); let a = a.round() - DVec2::splat(0.5); let b = b.round() - DVec2::splat(0.5); let c = c.round() - DVec2::splat(0.5); - - self.render_context.bezier_curve_to(a.x, a.y, b.x, b.y, c.x, c.y) + self.render_context.bezier_curve_to(a.x, a.y, b.x, b.y, c.x, c.y); } } } @@ -885,7 +895,7 @@ impl OverlayContext { /// Used by the Select tool to outline a path or a free point when selected or hovered. pub fn outline(&mut self, target_types: impl Iterator>, transform: DAffine2, color: Option<&str>) { - let mut subpaths: Vec> = vec![]; + let mut subpaths: Vec> = vec![]; target_types.for_each(|target_type| match target_type.borrow() { ClickTargetType::FreePoint(point) => { @@ -952,10 +962,6 @@ impl OverlayContext { self.render_context.fill(); } - pub fn get_width(&self, text: &str) -> f64 { - self.render_context.measure_text(text).expect("Failed to measure text dimensions").width() - } - pub fn text(&self, text: &str, font_color: &str, background_color: Option<&str>, transform: DAffine2, padding: f64, pivot: [Pivot; 2]) { let metrics = self.render_context.measure_text(text).expect("Failed to measure the text dimensions"); let x = match pivot[0] { @@ -969,7 +975,7 @@ impl OverlayContext { Pivot::End => -padding, }; - let [a, b, c, d, e, f] = (DAffine2::from_scale(DVec2::splat(self.device_pixel_ratio)) * transform * DAffine2::from_translation(DVec2::new(x, y))).to_cols_array(); + let [a, b, c, d, e, f] = (DAffine2::from_scale(DVec2::splat(self.viewport.scale())) * transform * DAffine2::from_translation(DVec2::new(x, y))).to_cols_array(); self.render_context.set_transform(a, b, c, d, e, f).expect("Failed to rotate the render context to the specified angle"); if let Some(background) = background_color { @@ -1027,7 +1033,7 @@ pub enum Pivot { pub enum DrawHandles { All, - SelectedAnchors(Vec), - FrontierHandles(HashMap>), + SelectedAnchors(HashMap>), + FrontierHandles(HashMap>>), None, } diff --git a/editor/src/messages/portfolio/document/properties_panel/properties_panel_message_handler.rs b/editor/src/messages/portfolio/document/properties_panel/properties_panel_message_handler.rs index 4c659f754..b5706ec1e 100644 --- a/editor/src/messages/portfolio/document/properties_panel/properties_panel_message_handler.rs +++ b/editor/src/messages/portfolio/document/properties_panel/properties_panel_message_handler.rs @@ -14,6 +14,7 @@ pub struct PropertiesPanelMessageContext<'a> { pub document_name: &'a str, pub executor: &'a mut NodeGraphExecutor, pub persistent_data: &'a PersistentData, + pub properties_panel_open: bool, } #[derive(Debug, Clone, Default, ExtractField)] @@ -28,16 +29,22 @@ impl MessageHandler> f document_name, executor, persistent_data, + properties_panel_open, } = context; match message { PropertiesPanelMessage::Clear => { responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(WidgetLayout::new(vec![])), - layout_target: LayoutTarget::PropertiesSections, + layout: Layout::default(), + layout_target: LayoutTarget::PropertiesPanel, }); } PropertiesPanelMessage::Refresh => { + if !properties_panel_open { + responses.add(PropertiesPanelMessage::Clear); + return; + } + let mut node_properties_context = NodePropertiesContext { persistent_data, responses, @@ -46,11 +53,11 @@ impl MessageHandler> f document_name, executor, }; - let properties_sections = NodeGraphMessageHandler::collate_properties(&mut node_properties_context); + let layout = Layout(NodeGraphMessageHandler::collate_properties(&mut node_properties_context)); node_properties_context.responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(WidgetLayout::new(properties_sections)), - layout_target: LayoutTarget::PropertiesSections, + layout, + layout_target: LayoutTarget::PropertiesPanel, }); } } diff --git a/editor/src/messages/portfolio/document/utility_types/clipboards.rs b/editor/src/messages/portfolio/document/utility_types/clipboards.rs index 158372cd4..ef4b00ae7 100644 --- a/editor/src/messages/portfolio/document/utility_types/clipboards.rs +++ b/editor/src/messages/portfolio/document/utility_types/clipboards.rs @@ -5,10 +5,9 @@ use graph_craft::document::NodeId; #[derive(serde::Serialize, serde::Deserialize, Clone, Copy, PartialEq, Eq, Debug, specta::Type)] pub enum Clipboard { Internal, + Device, _InternalClipboardCount, // Keep this as the last entry of **internal** clipboards since it is used for counting the number of enum variants - - Device, } pub const INTERNAL_CLIPBOARD_COUNT: u8 = Clipboard::_InternalClipboardCount as u8; diff --git a/editor/src/messages/portfolio/document/utility_types/document_metadata.rs b/editor/src/messages/portfolio/document/utility_types/document_metadata.rs index cc7073e8a..7ba8eaa7a 100644 --- a/editor/src/messages/portfolio/document/utility_types/document_metadata.rs +++ b/editor/src/messages/portfolio/document/utility_types/document_metadata.rs @@ -6,6 +6,7 @@ use crate::messages::tool::common_functionality::graph_modification_utils; use glam::{DAffine2, DVec2}; use graph_craft::document::NodeId; use graphene_std::math::quad::Quad; +use graphene_std::subpath; use graphene_std::transform::Footprint; use graphene_std::vector::click_target::{ClickTarget, ClickTargetType}; use graphene_std::vector::{PointId, Vector}; @@ -90,16 +91,14 @@ impl DocumentMetadata { let mut use_local = true; let graph_layer = graph_modification_utils::NodeGraphLayer::new(layer, network_interface); - if let Some(path_node) = graph_layer.upstream_visible_node_id_from_name_in_layer("Path") { - if let Some(&source) = self.first_element_source_ids.get(&layer.to_node()) { - if !network_interface - .upstream_flow_back_from_nodes(vec![path_node], &[], FlowType::HorizontalFlow) - .any(|upstream| Some(upstream) == source) - { - use_local = false; - info!("Local transform is invalid โ€” using the identity for the local transform instead") - } - } + if let Some(path_node) = graph_layer.upstream_visible_node_id_from_name_in_layer("Path") + && let Some(&source) = self.first_element_source_ids.get(&layer.to_node()) + && !network_interface + .upstream_flow_back_from_nodes(vec![path_node], &[], FlowType::HorizontalFlow) + .any(|upstream| Some(upstream) == source) + { + use_local = false; + info!("Local transform is invalid โ€” using the identity for the local transform instead") } let local_transform = use_local.then(|| self.local_transforms.get(&layer.to_node()).copied()).flatten().unwrap_or_default(); @@ -151,10 +150,18 @@ impl DocumentMetadata { impl DocumentMetadata { /// Get the bounding box of the click target of the specified layer in the specified transform space pub fn bounding_box_with_transform(&self, layer: LayerNodeIdentifier, transform: DAffine2) -> Option<[DVec2; 2]> { + self.click_targets(layer)? + .iter() + .filter_map(|click_target| click_target.bounding_box_with_transform(transform)) + .reduce(Quad::combine_bounds) + } + + /// Get the loose bounding box of the click target of the specified layer in the specified transform space + pub fn loose_bounding_box_with_transform(&self, layer: LayerNodeIdentifier, transform: DAffine2) -> Option<[DVec2; 2]> { self.click_targets(layer)? .iter() .filter_map(|click_target| match click_target.target_type() { - ClickTargetType::Subpath(subpath) => subpath.bounding_box_with_transform(transform), + ClickTargetType::Subpath(subpath) => subpath.loose_bounding_box_with_transform(transform), ClickTargetType::FreePoint(_) => click_target.bounding_box_with_transform(transform), }) .reduce(Quad::combine_bounds) @@ -196,7 +203,7 @@ impl DocumentMetadata { self.all_layers().filter_map(|layer| self.bounding_box_viewport(layer)).reduce(Quad::combine_bounds) } - pub fn layer_outline(&self, layer: LayerNodeIdentifier) -> impl Iterator> { + pub fn layer_outline(&self, layer: LayerNodeIdentifier) -> impl Iterator> { static EMPTY: Vec = Vec::new(); let click_targets = self.click_targets.get(&layer).unwrap_or(&EMPTY); click_targets.iter().filter_map(|target| match target.target_type() { diff --git a/editor/src/messages/portfolio/document/utility_types/error.rs b/editor/src/messages/portfolio/document/utility_types/error.rs index 96211441b..5080f4638 100644 --- a/editor/src/messages/portfolio/document/utility_types/error.rs +++ b/editor/src/messages/portfolio/document/utility_types/error.rs @@ -16,7 +16,13 @@ pub enum EditorError { #[error("The operation caused a document error:\n{0:?}")] Document(String), - #[error("This document was created in an older version of the editor.\n\nBackwards compatibility is, regrettably, not present in the current alpha release.\n\nTechnical details:\n{0:?}")] + #[error( + "This document was created in an older version of the editor.\n\ + \n\ + Full backwards compatibility is not guaranteed in the current alpha release.\n\ + \n\ + If this document is critical, ask for support in Graphite's Discord community." + )] DocumentDeserialization(String), #[error("{0}")] diff --git a/editor/src/messages/portfolio/document/utility_types/misc.rs b/editor/src/messages/portfolio/document/utility_types/misc.rs index ae8fd7353..c474bf966 100644 --- a/editor/src/messages/portfolio/document/utility_types/misc.rs +++ b/editor/src/messages/portfolio/document/utility_types/misc.rs @@ -26,33 +26,33 @@ pub enum AlignAggregate { Center, } -#[derive(Default, PartialEq, Eq, Clone, Copy, Debug, serde::Serialize, serde::Deserialize)] -pub enum DocumentMode { - #[default] - DesignMode, - SelectMode, - GuideMode, -} +// #[derive(Default, PartialEq, Eq, Clone, Copy, Debug, serde::Serialize, serde::Deserialize)] +// pub enum DocumentMode { +// #[default] +// DesignMode, +// SelectMode, +// GuideMode, +// } -impl fmt::Display for DocumentMode { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self { - DocumentMode::DesignMode => write!(f, "Design Mode"), - DocumentMode::SelectMode => write!(f, "Select Mode"), - DocumentMode::GuideMode => write!(f, "Guide Mode"), - } - } -} +// impl fmt::Display for DocumentMode { +// fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { +// match self { +// DocumentMode::DesignMode => write!(f, "Design Mode"), +// DocumentMode::SelectMode => write!(f, "Select Mode"), +// DocumentMode::GuideMode => write!(f, "Guide Mode"), +// } +// } +// } -impl DocumentMode { - pub fn icon_name(&self) -> String { - match self { - DocumentMode::DesignMode => "ViewportDesignMode".to_string(), - DocumentMode::SelectMode => "ViewportSelectMode".to_string(), - DocumentMode::GuideMode => "ViewportGuideMode".to_string(), - } - } -} +// impl DocumentMode { +// pub fn icon_name(&self) -> String { +// match self { +// DocumentMode::DesignMode => "ViewportDesignMode".to_string(), +// DocumentMode::SelectMode => "ViewportSelectMode".to_string(), +// DocumentMode::GuideMode => "ViewportGuideMode".to_string(), +// } +// } +// } /// SnappingState determines the current individual snapping states #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)] @@ -386,55 +386,55 @@ pub const SNAP_FUNCTIONS_FOR_BOUNDING_BOXES: [(&str, GetSnapState, &str); 5] = [ ( "Align with Edges", (|snapping_state| &mut snapping_state.bounding_box.align_with_edges) as GetSnapState, - "Snaps to horizontal/vertical alignment with the edges of any layer's bounding box", + "Snaps to horizontal/vertical alignment with the edges of any layer's bounding box.", ), ( "Corner Points", (|snapping_state| &mut snapping_state.bounding_box.corner_point) as GetSnapState, - "Snaps to the four corners of any layer's bounding box", + "Snaps to the four corners of any layer's bounding box.", ), ( "Center Points", (|snapping_state| &mut snapping_state.bounding_box.center_point) as GetSnapState, - "Snaps to the center point of any layer's bounding box", + "Snaps to the center point of any layer's bounding box.", ), ( "Edge Midpoints", (|snapping_state| &mut snapping_state.bounding_box.edge_midpoint) as GetSnapState, - "Snaps to any of the four points at the middle of the edges of any layer's bounding box", + "Snaps to any of the four points at the middle of the edges of any layer's bounding box.", ), ( "Distribute Evenly", (|snapping_state| &mut snapping_state.bounding_box.distribute_evenly) as GetSnapState, - "Snaps to a consistent distance offset established by the bounding boxes of nearby layers", + "Snaps to a consistent distance offset established by the bounding boxes of nearby layers.", ), ]; pub const SNAP_FUNCTIONS_FOR_PATHS: [(&str, GetSnapState, &str); 7] = [ ( "Align with Anchor Points", (|snapping_state: &mut SnappingState| &mut snapping_state.path.align_with_anchor_point) as GetSnapState, - "Snaps to horizontal/vertical alignment with the anchor points of any vector path", + "Snaps to horizontal/vertical alignment with the anchor points of any vector path.", ), ( "Anchor Points", (|snapping_state: &mut SnappingState| &mut snapping_state.path.anchor_point) as GetSnapState, - "Snaps to the anchor point of any vector path", + "Snaps to the anchor point of any vector path.", ), ( // TODO: Extend to the midpoints of curved segments and rename to "Segment Midpoint" "Line Midpoints", (|snapping_state: &mut SnappingState| &mut snapping_state.path.line_midpoint) as GetSnapState, - "Snaps to the point at the middle of any straight line segment of a vector path", + "Snaps to the point at the middle of any straight line segment of a vector path.", ), ( "Path Intersection Points", (|snapping_state: &mut SnappingState| &mut snapping_state.path.path_intersection_point) as GetSnapState, - "Snaps to any points where vector paths intersect", + "Snaps to any points where vector paths intersect.", ), ( "Along Paths", (|snapping_state: &mut SnappingState| &mut snapping_state.path.along_path) as GetSnapState, - "Snaps along the length of any vector path", + "Snaps along the length of any vector path.", ), ( // TODO: This works correctly for line segments, but not curved segments. @@ -442,7 +442,7 @@ pub const SNAP_FUNCTIONS_FOR_PATHS: [(&str, GetSnapState, &str); 7] = [ "Normal to Paths", (|snapping_state: &mut SnappingState| &mut snapping_state.path.normal_to_path) as GetSnapState, // TODO: Fix the bug/limitation that requires 'Intersections of Paths' to be enabled - "Snaps a line to a point perpendicular to a vector path\n(due to a bug, 'Intersections of Paths' must be enabled)", + "Snaps a line to a point perpendicular to a vector path.\n(Due to a bug, 'Intersections of Paths' must be enabled.)", ), ( // TODO: This works correctly for line segments, but not curved segments. @@ -450,7 +450,7 @@ pub const SNAP_FUNCTIONS_FOR_PATHS: [(&str, GetSnapState, &str); 7] = [ "Tangent to Paths", (|snapping_state: &mut SnappingState| &mut snapping_state.path.tangent_to_path) as GetSnapState, // TODO: Fix the bug/limitation that requires 'Intersections of Paths' to be enabled - "Snaps a line to a point tangent to a vector path\n(due to a bug, 'Intersections of Paths' must be enabled)", + "Snaps a line to a point tangent to a vector path.\n(Due to a bug, 'Intersections of Paths' must be enabled.)", ), ]; diff --git a/editor/src/messages/portfolio/document/utility_types/network_interface.rs b/editor/src/messages/portfolio/document/utility_types/network_interface.rs index 938bd24d5..ed485a1f0 100644 --- a/editor/src/messages/portfolio/document/utility_types/network_interface.rs +++ b/editor/src/messages/portfolio/document/utility_types/network_interface.rs @@ -1,3 +1,7 @@ +mod deserialization; +mod memo_network; +mod resolved_types; + use super::document_metadata::{DocumentMetadata, LayerNodeIdentifier, NodeRelations}; use super::misc::PTZ; use super::nodes::SelectedNodes; @@ -5,33 +9,35 @@ use crate::consts::{EXPORTS_TO_RIGHT_EDGE_PIXEL_GAP, EXPORTS_TO_TOP_EDGE_PIXEL_G use crate::messages::portfolio::document::graph_operation::utility_types::ModifyInputsContext; use crate::messages::portfolio::document::node_graph::document_node_definitions::{DocumentNodeDefinition, resolve_document_node_type}; use crate::messages::portfolio::document::node_graph::utility_types::{Direction, FrontendClickTargets, FrontendGraphDataType, FrontendGraphInput, FrontendGraphOutput}; +use crate::messages::portfolio::document::overlays::utility_functions::text_width; +use crate::messages::portfolio::document::utility_types::network_interface::resolved_types::ResolvedDocumentNodeTypes; use crate::messages::portfolio::document::utility_types::wires::{GraphWireStyle, WirePath, WirePathUpdate, build_vector_wire}; use crate::messages::tool::common_functionality::graph_modification_utils; use crate::messages::tool::tool_messages::tool_prelude::NumberInputMode; -use bezier_rs::Subpath; +use deserialization::deserialize_node_persistent_metadata; use glam::{DAffine2, DVec2, IVec2}; +use graph_craft::Type; use graph_craft::document::value::TaggedValue; use graph_craft::document::{DocumentNode, DocumentNodeImplementation, NodeId, NodeInput, NodeNetwork, OldDocumentNodeImplementation, OldNodeNetwork}; -use graph_craft::{Type, concrete}; -use graphene_std::Artboard; +use graphene_std::ContextDependencies; use graphene_std::math::quad::Quad; -use graphene_std::table::Table; +use graphene_std::subpath::Subpath; use graphene_std::transform::Footprint; use graphene_std::vector::click_target::{ClickTarget, ClickTargetType}; use graphene_std::vector::{PointId, Vector, VectorModificationType}; -use interpreted_executor::dynamic_executor::ResolvedDocumentNodeTypes; -use interpreted_executor::node_registry::NODE_REGISTRY; use kurbo::BezPath; +use memo_network::MemoNetwork; use serde_json::{Value, json}; use std::collections::{HashMap, HashSet, VecDeque}; -use std::hash::{DefaultHasher, Hash, Hasher}; +use std::hash::Hash; +use std::ops::Deref; /// All network modifications should be done through this API, so the fields cannot be public. However, all fields within this struct can be public since it it not possible to have a public mutable reference. #[derive(Debug, Default, serde::Serialize, serde::Deserialize)] pub struct NodeNetworkInterface { /// The node graph that generates this document's artwork. It recursively stores its sub-graphs, so this root graph is the whole snapshot of the document content. /// A public mutable reference should never be created. It should only be mutated through custom setters which perform the necessary side effects to keep network_metadata in sync - network: NodeNetwork, + network: MemoNetwork, /// Stores all editor information for a NodeNetwork. Should automatically kept in sync by the setter methods when changes to the document network are made. network_metadata: NodeNetworkMetadata, // TODO: Wrap in TransientMetadata Option @@ -66,18 +72,17 @@ impl PartialEq for NodeNetworkInterface { impl NodeNetworkInterface { /// Add DocumentNodePath input to the PathModifyNode protonode pub fn migrate_path_modify_node(&mut self) { - fix_network(&mut self.network); + fix_network(self.document_network_mut()); fn fix_network(network: &mut NodeNetwork) { for node in network.nodes.values_mut() { if let Some(network) = node.implementation.get_network_mut() { fix_network(network); } - if let DocumentNodeImplementation::ProtoNode(protonode) = &node.implementation { - if protonode.name.contains("PathModifyNode") { - if node.inputs.len() < 3 { - node.inputs.push(NodeInput::Reflection(graph_craft::document::DocumentNodeMetadata::DocumentNodePath)); - } - } + if let DocumentNodeImplementation::ProtoNode(protonode) = &node.implementation + && protonode.name.contains("PathModifyNode") + && node.inputs.len() < 3 + { + node.inputs.push(NodeInput::Reflection(graph_craft::document::DocumentNodeMetadata::DocumentNodePath)); } } } @@ -86,24 +91,27 @@ impl NodeNetworkInterface { // Public immutable getters for the network interface impl NodeNetworkInterface { - // TODO: Make private and use .field_name getter methods /// Gets the network of the root document pub fn document_network(&self) -> &NodeNetwork { - self.network - .nested_network(&[]) - .expect("Could not get root document network in NodeNetworkInterface::document_network()") + self.network.network() + } + pub fn document_network_mut(&mut self) -> &mut NodeNetwork { + self.network.network_mut() } - // TODO: Make private and use .field_name getter methods /// Gets the nested network based on network_path pub fn nested_network(&self, network_path: &[NodeId]) -> Option<&NodeNetwork> { - let Some(network) = self.network.nested_network(network_path) else { + let Some(network) = self.document_network().nested_network(network_path) else { log::error!("Could not get nested network with path {network_path:?} in NodeNetworkInterface::network"); return None; }; Some(network) } + pub fn network_hash(&self) -> u64 { + self.network.current_hash() + } + /// Get the specified document node in the nested network based on node_id and network_path pub fn document_node(&self, node_id: &NodeId, network_path: &[NodeId]) -> Option<&DocumentNode> { let network = self.nested_network(network_path)?; @@ -114,21 +122,6 @@ impl NodeNetworkInterface { Some(node_metadata) } - pub fn document_network_metadata(&self) -> &NodeNetworkMetadata { - &self.network_metadata - } - - // TODO: Make private and use .field_name getter methods - /// The network metadata should always exist for the current network - pub fn network_metadata(&self, network_path: &[NodeId]) -> Option<&NodeNetworkMetadata> { - let Some(network_metadata) = self.network_metadata.nested_metadata(network_path) else { - log::error!("Could not get nested network_metadata with path {network_path:?}"); - return None; - }; - Some(network_metadata) - } - - // TODO: Make private and use .field_name getter methods pub fn node_metadata(&self, node_id: &NodeId, network_path: &[NodeId]) -> Option<&DocumentNodeMetadata> { let network_metadata = self.network_metadata(network_path)?; let Some(node_metadata) = network_metadata.persistent_metadata.node_metadata.get(node_id) else { @@ -138,6 +131,19 @@ impl NodeNetworkInterface { Some(node_metadata) } + pub fn document_network_metadata(&self) -> &NodeNetworkMetadata { + &self.network_metadata + } + + /// The network metadata should always exist for the current network + pub fn network_metadata(&self, network_path: &[NodeId]) -> Option<&NodeNetworkMetadata> { + let Some(network_metadata) = self.network_metadata.nested_metadata(network_path) else { + log::error!("Could not get nested network_metadata with path {network_path:?}"); + return None; + }; + Some(network_metadata) + } + pub fn document_metadata(&self) -> &DocumentMetadata { &self.document_metadata } @@ -164,7 +170,7 @@ impl NodeNetworkInterface { .back() .cloned() .unwrap_or_default() - .filtered_selected_nodes(network_metadata.persistent_metadata.node_metadata.keys().cloned().collect()), + .filtered_selected_nodes(|node_id| network_metadata.persistent_metadata.node_metadata.contains_key(node_id)), ) } @@ -310,25 +316,17 @@ impl NodeNetworkInterface { false } - fn number_of_imports(&self, network_path: &[NodeId]) -> usize { + pub fn number_of_imports(&self, network_path: &[NodeId]) -> usize { // TODO: Use network.import_types.len() if let Some(encapsulating_node) = self.encapsulating_node(network_path) { encapsulating_node.inputs.len() } else { - // There is one(?) import to the document network, but the imports are not displayed - // I think this is zero now that the scope system has been added - 1 + 0 } } - fn number_of_displayed_imports(&self, network_path: &[NodeId]) -> usize { - // TODO: Use network.import_types.len() - if let Some(encapsulating_node) = self.encapsulating_node(network_path) { - encapsulating_node.inputs.len() - } else { - // There is one(?) import to the document network, but the imports are not displayed - 0 - } + pub fn number_of_exports(&self, network_path: &[NodeId]) -> usize { + if let Some(network) = self.nested_network(network_path) { network.exports.len() } else { 0 } } fn number_of_displayed_inputs(&self, node_id: &NodeId, network_path: &[NodeId]) -> usize { @@ -371,13 +369,8 @@ impl NodeNetworkInterface { return None; }; // TODO: Get downstream connections from all outputs - let Some(downstream_connections) = outward_wires.get(&OutputConnector::node(*node_id, 0)) else { - log::error!("Could not get outward wires in copy_nodes"); - return None; - }; - let has_selected_node_downstream = downstream_connections - .iter() - .any(|input_connector| input_connector.node_id().is_some_and(|upstream_id| new_ids.keys().any(|key| *key == upstream_id))); + let mut downstream_connections = outward_wires.get(&OutputConnector::node(*node_id, 0)).map_or([].iter(), |outputs| outputs.iter()); + let has_selected_node_downstream = downstream_connections.any(|input_connector| input_connector.node_id().is_some_and(|upstream_id| new_ids.keys().any(|key| *key == upstream_id))); // If the copied node does not have a downstream connection to another copied node, then set the position to absolute if !has_selected_node_downstream { let Some(position) = self.position(node_id, network_path) else { @@ -460,21 +453,17 @@ impl NodeNetworkInterface { /// If the node is not in the hashmap then a default input is found based on the compiled network, using the node_id passed as a parameter pub fn map_ids(&mut self, mut node_template: NodeTemplate, node_id: &NodeId, new_ids: &HashMap, network_path: &[NodeId]) -> NodeTemplate { for (input_index, input) in node_template.document_node.inputs.iter_mut().enumerate() { - if let &mut NodeInput::Node { node_id: id, output_index, lambda } = input { + if let &mut NodeInput::Node { node_id: id, output_index } = input { if let Some(&new_id) = new_ids.get(&id) { - *input = NodeInput::Node { - node_id: new_id, - output_index, - lambda, - }; + *input = NodeInput::Node { node_id: new_id, output_index }; } else { // Disconnect node input if it is not connected to another node in new_ids - let tagged_value = TaggedValue::from_type_or_none(&self.input_type(&InputConnector::node(*node_id, input_index), network_path).0); + let tagged_value = self.tagged_value_from_input(&InputConnector::node(*node_id, input_index), network_path); *input = NodeInput::value(tagged_value, true); } - } else if let &mut NodeInput::Network { .. } = input { + } else if let &mut NodeInput::Import { .. } = input { // Always disconnect network node input - let tagged_value = TaggedValue::from_type_or_none(&self.input_type(&InputConnector::node(*node_id, input_index), network_path).0); + let tagged_value = self.tagged_value_from_input(&InputConnector::node(*node_id, input_index), network_path); *input = NodeInput::value(tagged_value, true); } } @@ -482,8 +471,8 @@ impl NodeNetworkInterface { } /// Try and get the [`DocumentNodeDefinition`] for a node - pub fn get_node_definition(&self, network_path: &[NodeId], node_id: NodeId) -> Option<&DocumentNodeDefinition> { - let metadata = self.node_metadata(&node_id, network_path)?; + pub fn get_node_definition(&self, node_id: &NodeId, network_path: &[NodeId]) -> Option<&DocumentNodeDefinition> { + let metadata = self.node_metadata(node_id, network_path)?; resolve_document_node_type(metadata.persistent_metadata.reference.as_ref()?) } @@ -504,270 +493,6 @@ impl NodeNetworkInterface { } } - /// Try and get the [`Type`] for any [`InputConnector`] based on the `self.resolved_types`. - fn node_type_from_compiled(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> Option<(Type, TypeSource)> { - let (node_id, input_index) = match *input_connector { - InputConnector::Node { node_id, input_index } => (node_id, input_index), - InputConnector::Export(export_index) => { - let Some((encapsulating_node_id, encapsulating_node_id_path)) = network_path.split_last() else { - // The outermost network export defaults to a Table. - return Some((concrete!(Table), TypeSource::OuterMostExportDefault)); - }; - - let output_type = self.output_type(encapsulating_node_id, export_index, encapsulating_node_id_path); - return Some(output_type); - } - }; - let Some(node) = self.document_node(&node_id, network_path) else { - log::error!("Could not get node {node_id} in input_type"); - return None; - }; - // If the input_connector is a NodeInput::Value, return the type of the tagged value. - if let Some(value) = node.inputs.get(input_index).and_then(|input| input.as_value()) { - return Some((value.ty(), TypeSource::TaggedValue)); - } - let node_id_path = [network_path, &[node_id]].concat(); - match &node.implementation { - DocumentNodeImplementation::Network(_nested_network) => { - // Attempt to resolve where this import is within the nested network (it may be connected to the node or directly to an export) - let outwards_wires = self.outward_wires(&node_id_path); - let inputs_using_import = outwards_wires.and_then(|outwards_wires| outwards_wires.get(&OutputConnector::Import(input_index))); - let first_input = inputs_using_import.and_then(|input| input.first()).copied(); - - if inputs_using_import.is_some_and(|inputs| inputs.len() > 1) { - warn!("Found multiple inputs using an import. Using the type of the first one."); - } - - if let Some(input_connector) = first_input { - self.node_type_from_compiled(&input_connector, &node_id_path) - } - // Nothing is connected to the import - else { - None - } - } - DocumentNodeImplementation::ProtoNode(_) => { - // If a node has manual composition, then offset the input index by 1 since the proto node also includes the type of the input passed through manual composition. - let manual_composition_offset = if node.manual_composition.is_some() { 1 } else { 0 }; - self.resolved_types - .types - .get(node_id_path.as_slice()) - .and_then(|node_types| node_types.inputs.get(input_index + manual_composition_offset).cloned()) - .map(|node_types| (node_types, TypeSource::Compiled)) - } - DocumentNodeImplementation::Extract => None, - } - } - - /// Guess the type from the node based on a document node default or a random protonode definition. - fn guess_type_from_node(&mut self, network_path: &mut Vec, node_id: NodeId, input_index: usize) -> (Type, TypeSource) { - // Try and get the default value from the document node definition - if let Some(value) = self - .get_node_definition(network_path, node_id) - .and_then(|definition| definition.node_template.document_node.inputs.get(input_index)) - .and_then(|input| input.as_value()) - { - return (value.ty(), TypeSource::DocumentNodeDefault); - } - - let Some(node) = self.document_node(&node_id, network_path) else { - return (concrete!(()), TypeSource::Error("node id {node_id:?} not in network {network_path:?}")); - }; - - let node_id_path = [network_path.as_slice(), &[node_id]].concat(); - match &node.implementation { - DocumentNodeImplementation::ProtoNode(protonode) => { - let Some(node_types) = random_protonode_implementation(protonode) else { - return (concrete!(()), TypeSource::Error("could not resolve protonode")); - }; - - let skip_footprint = if node.manual_composition.is_some() { 1 } else { 0 }; - - let Some(input_type) = std::iter::once(node_types.call_argument.clone()).chain(node_types.inputs.clone()).nth(input_index + skip_footprint) else { - log::error!("Could not get type"); - return (concrete!(()), TypeSource::Error("could not get the protonode's input")); - }; - - (input_type, TypeSource::RandomProtonodeImplementation) - } - DocumentNodeImplementation::Network(_network) => { - // Attempt to resolve where this import is within the nested network - let outwards_wires = self.outward_wires(&node_id_path); - let inputs_using_import = outwards_wires.and_then(|outwards_wires| outwards_wires.get(&OutputConnector::Import(input_index))); - let first_input = inputs_using_import.and_then(|input| input.first()).copied(); - - if let Some(InputConnector::Node { - node_id: child_id, - input_index: child_input_index, - }) = first_input - { - network_path.push(node_id); - let result = self.guess_type_from_node(network_path, child_id, child_input_index); - network_path.pop(); - return result; - } - - // Input is disconnected - (concrete!(()), TypeSource::Error("disconnected network input")) - } - _ => (concrete!(()), TypeSource::Error("implementation is not network or protonode")), - } - } - - /// Get the [`Type`] for any InputConnector - pub fn input_type(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> (Type, TypeSource) { - if let Some(result) = self.node_type_from_compiled(input_connector, network_path) { - return result; - } - - // Resolve types from proto nodes in node_registry - let Some(node_id) = input_connector.node_id() else { - return (concrete!(()), TypeSource::Error("input connector is not a node")); - }; - - // TODO: Once there is type inference (#1621), replace this workaround approach when disconnecting node inputs with NodeInput::Node(ToDefaultNode), - // TODO: which would be a new node that implements the Default trait (i.e. `Default::default()`) - self.guess_type_from_node(&mut network_path.to_vec(), node_id, input_connector.input_index()) - } - - pub fn valid_input_types(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> Vec { - let InputConnector::Node { node_id, input_index } = input_connector else { - // An export can have any type connected to it - return vec![graph_craft::generic!(T)]; - }; - let Some(implementation) = self.implementation(node_id, network_path) else { - log::error!("Could not get node implementation in valid_input_types"); - return Vec::new(); - }; - match implementation { - DocumentNodeImplementation::Network(_) => { - let nested_path = [network_path, &[*node_id]].concat(); - let Some(outward_wires) = self.outward_wires(&nested_path) else { - log::error!("Could not get outward wires in valid_input_types"); - return Vec::new(); - }; - let Some(inputs_from_import) = outward_wires.get(&OutputConnector::Import(*input_index)) else { - log::error!("Could not get inputs from import in valid_input_types"); - return Vec::new(); - }; - - let intersection: HashSet = inputs_from_import - .clone() - .iter() - .map(|input_connector| self.valid_input_types(input_connector, &nested_path)) - .map(|vec| vec.into_iter().collect::>()) - .fold(None, |acc: Option>, set| match acc { - Some(acc_set) => Some(acc_set.intersection(&set).cloned().collect()), - None => Some(set), - }) - .unwrap_or_default(); - - intersection.into_iter().collect::>() - } - DocumentNodeImplementation::ProtoNode(proto_node_identifier) => { - let Some(implementations) = NODE_REGISTRY.get(proto_node_identifier) else { - log::error!("Protonode {proto_node_identifier:?} not found in registry"); - return Vec::new(); - }; - let number_of_inputs = self.number_of_inputs(node_id, network_path); - implementations - .iter() - .filter_map(|(node_io, _)| { - let valid_implementation = (0..number_of_inputs).filter(|iterator_index| iterator_index != input_index).all(|iterator_index| { - let input_type = self.input_type(&InputConnector::node(*node_id, iterator_index), network_path).0; - // Value inputs are stored as concrete, so they are compared to the nested type. Node inputs are stored as fn, so they are compared to the entire type. - // For example a node input of (Footprint) -> Vector would not be compatible with () -> Vector - node_io.inputs.get(iterator_index).map(|ty| ty.nested_type().clone()).as_ref() == Some(&input_type) || node_io.inputs.get(iterator_index) == Some(&input_type) - }); - if valid_implementation { node_io.inputs.get(*input_index).cloned() } else { None } - }) - .collect::>() - } - DocumentNodeImplementation::Extract => { - log::error!("Input types for extract node not supported"); - Vec::new() - } - } - } - - /// Retrieves the output types for a given document node and its exports. - /// - /// This function traverses the node and its nested network structure (if applicable) to determine - /// the types of all outputs, including the primary output and any additional exports. - /// - /// # Arguments - /// - /// * `node` - A reference to the `DocumentNode` for which to determine output types. - /// * `resolved_types` - A reference to `ResolvedDocumentNodeTypes` containing pre-resolved type information. - /// * `node_id_path` - A slice of `NodeId`s representing the path to the current node in the document graph. - /// - /// # Returns - /// - /// A `Vec>` where: - /// - The first element is the primary output type of the node. - /// - Subsequent elements are types of additional exports (if the node is a network). - /// - `None` values indicate that a type couldn't be resolved for a particular output. - /// - /// # Behavior - /// - /// 1. Retrieves the primary output type from `resolved_types`. - /// 2. If the node is a network: - /// - Iterates through its exports (skipping the first/primary export). - /// - For each export, traverses the network until reaching a protonode or terminal condition. - /// - Determines the output type based on the final node/value encountered. - /// 3. Collects and returns all resolved types. - /// - /// # Note - /// - /// This function assumes that export indices and node IDs always exist within their respective - /// collections. It will panic if these assumptions are violated. - /// - pub fn output_type(&self, node_id: &NodeId, output_index: usize, network_path: &[NodeId]) -> (Type, TypeSource) { - let Some(implementation) = self.implementation(node_id, network_path) else { - log::error!("Could not get output type for node {node_id} output index {output_index}. This node is no longer supported, and needs to be upgraded."); - return (concrete!(()), TypeSource::Error("Could not get implementation")); - }; - - // If the node is not a protonode, get types by traversing across exports until a proto node is reached. - match &implementation { - graph_craft::document::DocumentNodeImplementation::Network(internal_network) => { - let Some(export) = internal_network.exports.get(output_index) else { - return (concrete!(()), TypeSource::Error("Could not get export index")); - }; - match export { - NodeInput::Node { - node_id: nested_node_id, - output_index, - .. - } => self.output_type(nested_node_id, *output_index, &[network_path, &[*node_id]].concat()), - NodeInput::Value { tagged_value, .. } => (tagged_value.ty(), TypeSource::TaggedValue), - NodeInput::Network { .. } => { - // let mut encapsulating_path = network_path.to_vec(); - // let encapsulating_node = encapsulating_path.pop().expect("No imports exist in document network"); - // self.input_type(&InputConnector::node(encapsulating_node, *import_index), network_path) - (concrete!(()), TypeSource::Error("Could not type from network")) - } - NodeInput::Scope(_) => todo!(), - NodeInput::Inline(_) => todo!(), - NodeInput::Reflection(_) => todo!(), - } - } - graph_craft::document::DocumentNodeImplementation::ProtoNode(protonode) => { - let node_id_path = &[network_path, &[*node_id]].concat(); - self.resolved_types - .types - .get(node_id_path) - .map(|ty| (ty.output.clone(), TypeSource::Compiled)) - .or_else(|| { - let node_types = random_protonode_implementation(protonode)?; - Some((node_types.return_value.clone(), TypeSource::RandomProtonodeImplementation)) - }) - .unwrap_or((concrete!(()), TypeSource::Error("Could not get protonode implementation"))) - } - graph_craft::document::DocumentNodeImplementation::Extract => (concrete!(()), TypeSource::Error("extract node")), - } - } - pub fn position(&mut self, node_id: &NodeId, network_path: &[NodeId]) -> Option { let top_left_position = self .node_click_targets(node_id, network_path) @@ -787,111 +512,235 @@ impl NodeNetworkInterface { }) } - pub fn frontend_imports(&mut self, network_path: &[NodeId]) -> Option> { - self.import_export_ports(network_path).cloned().map(|import_export_ports| { - import_export_ports - .output_ports - .iter() - .filter_map(|(import_index, click_target)| { - // Get import name from parent node metadata input, which must match the number of imports. - // Empty string means to use type, or "Import + index" if type can't be determined - - let mut import_metadata = None; - - if !network_path.is_empty() { - let mut encapsulating_path = network_path.to_vec(); - let encapsulating_node_id = encapsulating_path.pop().unwrap(); - - let (input_type, type_source) = self.input_type(&InputConnector::node(encapsulating_node_id, *import_index), &encapsulating_path); - let data_type = FrontendGraphDataType::displayed_type(&input_type, &type_source); - - let (name, description) = self.displayed_input_name_and_description(&encapsulating_node_id, *import_index, &encapsulating_path); - - let connected_to = self - .outward_wires(network_path) - .and_then(|outward_wires| outward_wires.get(&OutputConnector::Import(*import_index))) - .cloned() - .unwrap_or_else(|| { - log::error!("Could not get OutputConnector::Import({import_index}) in outward wires"); - Vec::new() - }); - - import_metadata = Some(( - FrontendGraphOutput { - data_type, - name, - description, - resolved_type: format!("{:?}", input_type), - connected_to, - }, - click_target, - )); - } - import_metadata - }) - .filter_map(|(import_index, output_port)| output_port.bounding_box().map(|bounding_box| (import_index, bounding_box[0].x as i32, bounding_box[0].y as i32))) - .collect::>() - }) + pub fn frontend_imports(&mut self, network_path: &[NodeId]) -> Vec> { + match network_path.split_last() { + Some((node_id, encapsulating_network_path)) => { + let Some(node) = self.document_node(node_id, encapsulating_network_path) else { + log::error!("Could not get node {node_id} in network {encapsulating_network_path:?}"); + return Vec::new(); + }; + let mut frontend_imports = (0..node.inputs.len()) + .map(|import_index| self.frontend_output_from_connector(&OutputConnector::Import(import_index), network_path)) + .collect::>(); + if frontend_imports.is_empty() { + frontend_imports.push(None); + } + frontend_imports + } + // In the document network display no imports + None => Vec::new(), + } } - pub fn frontend_exports(&mut self, network_path: &[NodeId]) -> Option> { - self.import_export_ports(network_path).cloned().map(|import_export_ports| { - import_export_ports - .input_ports - .iter() - .map(|(export_index, click_target)| { - let export_type = self.input_type(&InputConnector::Export(*export_index), network_path); - let data_type = FrontendGraphDataType::displayed_type(&export_type.0, &TypeSource::TaggedValue); - - let connected_to = self.upstream_output_connector(&InputConnector::Export(*export_index), network_path); - - // Get export name from parent node metadata input, which must match the number of exports. - // Empty string means to use type, or "Export + index" if type is empty determined - let export_name = if network_path.is_empty() { - "Canvas".to_string() - } else { - self.encapsulating_node_metadata(network_path) - .and_then(|encapsulating_metadata| encapsulating_metadata.persistent_metadata.output_names.get(*export_index).cloned()) - .unwrap_or_default() - }; - - let export_name = if !export_name.is_empty() { - export_name - } else if *export_type.0.nested_type() != concrete!(()) { - export_type.0.nested_type().to_string() - } else { - format!("Export {}", *export_index + 1) - }; - - ( - FrontendGraphInput { - data_type, - name: export_name, - description: String::new(), - resolved_type: format!("{:?}", export_type.0), - valid_types: self.valid_input_types(&InputConnector::Export(*export_index), network_path).iter().map(|ty| ty.to_string()).collect(), - connected_to, - }, - click_target, - ) - }) - .filter_map(|(export_metadata, output_port)| output_port.bounding_box().map(|bounding_box| (export_metadata, bounding_box[0].x as i32, bounding_box[0].y as i32))) - .collect::>() - }) + pub fn frontend_exports(&mut self, network_path: &[NodeId]) -> Vec> { + let Some(network) = self.nested_network(network_path) else { return Vec::new() }; + let mut frontend_exports = ((0..network.exports.len()).map(|export_index| self.frontend_input_from_connector(&InputConnector::Export(export_index), network_path))).collect::>(); + if frontend_exports.is_empty() { + frontend_exports.push(None); + } + frontend_exports } - pub fn frontend_import_export_modify(&mut self, get_ports: F, network_path: &[NodeId]) -> Vec<(i32, i32)> - where - F: FnOnce(&ModifyImportExportClickTarget) -> Vec<&(usize, ClickTarget)>, - { - self.modify_import_export(network_path) - .map(|modify_import_export_click_target| { - get_ports(modify_import_export_click_target) - .iter() - .filter_map(|(_, click_target)| click_target.bounding_box().map(|bounding_box| (bounding_box[0].x as i32, bounding_box[0].y as i32))) - .collect() + pub fn import_export_position(&mut self, network_path: &[NodeId]) -> Option<(IVec2, IVec2)> { + let Some(all_nodes_bounding_box) = self.all_nodes_bounding_box(network_path).cloned() else { + log::error!("Could not get all nodes bounding box in load_export_ports"); + return None; + }; + let Some(network) = self.nested_network(network_path) else { + log::error!("Could not get current network in load_export_ports"); + return None; + }; + + let Some(network_metadata) = self.network_metadata(network_path) else { + log::error!("Could not get nested network_metadata in load_export_ports"); + return None; + }; + let node_graph_to_viewport = network_metadata.persistent_metadata.navigation_metadata.node_graph_to_viewport; + let target_viewport_top_left = DVec2::new(IMPORTS_TO_LEFT_EDGE_PIXEL_GAP as f64, IMPORTS_TO_TOP_EDGE_PIXEL_GAP as f64); + + let node_graph_pixel_offset_top_left = node_graph_to_viewport.inverse().transform_point2(target_viewport_top_left); + + // A 5x5 grid offset from the top left corner + let node_graph_grid_space_offset_top_left = node_graph_to_viewport.inverse().transform_point2(DVec2::ZERO) + DVec2::new(5. * GRID_SIZE as f64, 4. * GRID_SIZE as f64); + + // The inner bound of the import is the highest/furthest left of the two offsets + let top_left_inner_bound = DVec2::new( + node_graph_pixel_offset_top_left.x.min(node_graph_grid_space_offset_top_left.x), + node_graph_pixel_offset_top_left.y.min(node_graph_grid_space_offset_top_left.y), + ); + + let offset_from_top_left = if network + .exports + .first() + .is_some_and(|export| export.as_node().is_some_and(|export_node| self.is_layer(&export_node, network_path))) + { + DVec2::new(-4. * GRID_SIZE as f64, -2. * GRID_SIZE as f64) + } else { + DVec2::new(-4. * GRID_SIZE as f64, 0.) + }; + + let bounding_box_top_left = DVec2::new((all_nodes_bounding_box[0].x / 24. + 0.5).floor() * 24., (all_nodes_bounding_box[0].y / 24. + 0.5).floor() * 24.) + offset_from_top_left; + let import_top_left = DVec2::new(top_left_inner_bound.x.min(bounding_box_top_left.x), top_left_inner_bound.y.min(bounding_box_top_left.y)); + let rounded_import_top_left = DVec2::new((import_top_left.x / 24.).round() * 24., (import_top_left.y / 24.).round() * 24.); + + let viewport_width = network_metadata.persistent_metadata.navigation_metadata.node_graph_width; + + let target_viewport_top_right = DVec2::new(viewport_width - EXPORTS_TO_RIGHT_EDGE_PIXEL_GAP as f64, EXPORTS_TO_TOP_EDGE_PIXEL_GAP as f64); + + // An offset from the right edge in viewport pixels + let node_graph_pixel_offset_top_right = node_graph_to_viewport.inverse().transform_point2(target_viewport_top_right); + + // A 5x5 grid offset from the right corner + let node_graph_grid_space_offset_top_right = node_graph_to_viewport.inverse().transform_point2(DVec2::new(viewport_width, 0.)) + DVec2::new(-5. * GRID_SIZE as f64, 4. * GRID_SIZE as f64); + + // The inner bound of the export is the highest/furthest right of the two offsets. + // When zoomed out this keeps it a constant grid space away from the edge, but when zoomed in it prevents the exports from getting too far in + let top_right_inner_bound = DVec2::new( + node_graph_pixel_offset_top_right.x.max(node_graph_grid_space_offset_top_right.x), + node_graph_pixel_offset_top_right.y.min(node_graph_grid_space_offset_top_right.y), + ); + + let offset_from_top_right = if network + .exports + .first() + .is_some_and(|export| export.as_node().is_some_and(|export_node| self.is_layer(&export_node, network_path))) + { + DVec2::new(2. * GRID_SIZE as f64, -2. * GRID_SIZE as f64) + } else { + DVec2::new(4. * GRID_SIZE as f64, 0.) + }; + + let mut bounding_box_top_right = DVec2::new((all_nodes_bounding_box[1].x / 24. + 0.5).floor() * 24., (all_nodes_bounding_box[0].y / 24. + 0.5).floor() * 24.); + bounding_box_top_right += offset_from_top_right; + let export_top_right = DVec2::new(top_right_inner_bound.x.max(bounding_box_top_right.x), top_right_inner_bound.y.min(bounding_box_top_right.y)); + let rounded_export_top_right = DVec2::new((export_top_right.x / 24.).round() * 24., (export_top_right.y / 24.).round() * 24.); + + Some((rounded_import_top_left.as_ivec2(), rounded_export_top_right.as_ivec2())) + } + + /// Returns None if there is an error, it is a hidden primary export, or a hidden input + pub fn frontend_input_from_connector(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> Option { + // Return None if it is a hidden input + if self.input_from_connector(input_connector, network_path).is_some_and(|input| !input.is_exposed()) { + return None; + } + let input_type = self.input_type(input_connector, network_path); + let data_type = input_type.displayed_type(); + let resolved_type = input_type.resolved_type_node_string(); + + let connected_to = self + .upstream_output_connector(input_connector, network_path) + .map(|output_connector| match output_connector { + OutputConnector::Node { node_id, output_index } => { + let name = self.display_name(&node_id, network_path); + format!("Connected to output #{output_index} of \"{name}\", ID: {node_id}.") + } + OutputConnector::Import(import_index) => format!("Connected to import #{import_index}."), }) + .unwrap_or("Connected to nothing.".to_string()); + + let (name, description) = match input_connector { + InputConnector::Node { node_id, input_index } => self.displayed_input_name_and_description(node_id, *input_index, network_path), + InputConnector::Export(export_index) => { + // Get export name from parent node metadata input, which must match the number of exports. + // Empty string means to use type, or "Export + index" if type is empty determined + let export_name = if network_path.is_empty() { + "Canvas".to_string() + } else { + self.encapsulating_node_metadata(network_path) + .and_then(|encapsulating_metadata| encapsulating_metadata.persistent_metadata.output_names.get(*export_index).cloned()) + .unwrap_or_default() + }; + + let export_name = if !export_name.is_empty() { + export_name + } else if let Some(export_type_name) = input_type.compiled_nested_type().map(|nested| nested.to_string()) { + export_type_name + } else { + format!("Export #{}", export_index) + }; + + (export_name, String::new()) + } + }; + + Some(FrontendGraphInput { + data_type, + resolved_type, + name, + description, + valid_types: self.potential_valid_input_types(input_connector, network_path).iter().map(|ty| ty.to_string()).collect(), + connected_to, + }) + } + + /// Returns None if there is an error, it is the document network, a hidden primary output or import + pub fn frontend_output_from_connector(&mut self, output_connector: &OutputConnector, network_path: &[NodeId]) -> Option { + let output_type = self.output_type(output_connector, network_path); + let (name, description) = match output_connector { + OutputConnector::Node { node_id, output_index } => { + // Do not display the primary output port for a node if it is a network node with a hidden primary export + if *output_index == 0 && self.hidden_primary_output(node_id, network_path) { + return None; + }; + // Get the output name from the interior network export name + let node_metadata = self.node_metadata(node_id, network_path)?; + let output_name = node_metadata.persistent_metadata.output_names.get(*output_index).cloned().unwrap_or_default(); + + let output_name = if !output_name.is_empty() { output_name } else { output_type.resolved_type_node_string() }; + (output_name, String::new()) + } + OutputConnector::Import(import_index) => { + // Get the import name from the encapsulating node input metadata + let Some((encapsulating_node_id, encapsulating_path)) = network_path.split_last() else { + // Return None if it is an import in the document network + return None; + }; + // Return None if the primary input is hidden and this is the primary import + if *import_index == 0 && self.hidden_primary_import(network_path) { + return None; + }; + let (import_name, description) = self.displayed_input_name_and_description(encapsulating_node_id, *import_index, encapsulating_path); + + let import_name = if !import_name.is_empty() { + import_name + } else if let Some(import_type_name) = output_type.compiled_nested_type().map(|nested| nested.to_string()) { + import_type_name + } else { + format!("Import #{}", import_index) + }; + + (import_name, description) + } + }; + let data_type = output_type.displayed_type(); + let resolved_type = output_type.resolved_type_node_string(); + let mut connected_to = self + .outward_wires(network_path) + .and_then(|outward_wires| outward_wires.get(output_connector)) + .cloned() .unwrap_or_default() + .iter() + .map(|input| match input { + &InputConnector::Node { node_id, input_index } => { + let name = self.display_name(&node_id, network_path); + format!("Connected to input #{input_index} of \"{name}\", ID: {node_id}.") + } + InputConnector::Export(export_index) => format!("Connected to export #{export_index}."), + }) + .collect::>(); + + if connected_to.is_empty() { + connected_to.push("Connected to nothing.".to_string()); + } + + Some(FrontendGraphOutput { + data_type, + resolved_type, + name, + description, + connected_to, + }) } pub fn height_from_click_target(&mut self, node_id: &NodeId, network_path: &[NodeId]) -> Option { @@ -1069,7 +918,7 @@ impl NodeNetworkInterface { pub fn reference(&self, node_id: &NodeId, network_path: &[NodeId]) -> Option<&Option> { let Some(node_metadata) = self.node_metadata(node_id, network_path) else { - log::error!("Could not get reference for node: {:?}", node_id); + log::error!("Could not get reference for node: {node_id:?}"); return None; }; Some(&node_metadata.persistent_metadata.reference) @@ -1103,6 +952,17 @@ impl NodeNetworkInterface { Some(&metadata.transient_metadata) } + pub fn set_input_override(&mut self, node_id: &NodeId, index: usize, widget_override: Option, network_path: &[NodeId]) { + let Some(metadata) = self + .node_metadata_mut(node_id, network_path) + .and_then(|node_metadata| node_metadata.persistent_metadata.input_metadata.get_mut(index)) + else { + log::error!("Could not get input metadata for {node_id} index {index} in set_input_override"); + return; + }; + metadata.persistent_metadata.widget_override = widget_override; + } + /// Returns the input name to display in the properties panel. If the name is empty then the type is used. pub fn displayed_input_name_and_description(&mut self, node_id: &NodeId, input_index: usize, network_path: &[NodeId]) -> (String, String) { let Some(input_metadata) = self.persistent_input_metadata(node_id, input_index, network_path) else { @@ -1111,7 +971,7 @@ impl NodeNetworkInterface { }; let description = input_metadata.input_description.to_string(); let name = if input_metadata.input_name.is_empty() { - self.input_type(&InputConnector::node(*node_id, input_index), network_path).0.nested_type().to_string() + self.input_type(&InputConnector::node(*node_id, input_index), network_path).resolved_type_node_string() } else { input_metadata.input_name.to_string() }; @@ -1120,11 +980,7 @@ impl NodeNetworkInterface { /// Returns the display name of the node. If the display name is empty, it will return "Untitled Node" or "Untitled Layer" depending on the node type. pub fn display_name(&self, node_id: &NodeId, network_path: &[NodeId]) -> String { - let is_layer = self - .node_metadata(node_id, network_path) - .expect("Could not get persistent node metadata in untitled_layer_label") - .persistent_metadata - .is_layer(); + let is_layer = self.is_layer(node_id, network_path); let Some(reference) = self.reference(node_id, network_path) else { log::error!("Could not get reference in untitled_layer_label"); @@ -1151,9 +1007,8 @@ impl NodeNetworkInterface { /// Returns the description of the node, or an empty string if it is not set. pub fn description(&self, node_id: &NodeId, network_path: &[NodeId]) -> String { - self.get_node_definition(network_path, *node_id) + self.get_node_definition(node_id, network_path) .map(|node_definition| node_definition.description.to_string()) - .filter(|description| description != "TODO") .unwrap_or_default() } @@ -1189,12 +1044,50 @@ impl NodeNetworkInterface { node_metadata.persistent_metadata.is_layer() } - pub fn has_primary_output(&self, node_id: &NodeId, network_path: &[NodeId]) -> bool { - let Some(node_metadata) = self.node_metadata(node_id, network_path) else { - log::error!("Could not get node_metadata in has_primary_output"); + pub fn primary_output_connected_to_layer(&mut self, node_id: &NodeId, network_path: &[NodeId]) -> bool { + let Some(outward_wires) = self.outward_wires(network_path) else { + log::error!("Could not get outward_wires in primary_output_connected_to_layer"); return false; }; - node_metadata.persistent_metadata.has_primary_output + let Some(downstream_connectors) = outward_wires.get(&OutputConnector::node(*node_id, 0)) else { + log::error!("Could not get downstream_connectors in primary_output_connected_to_layer"); + return false; + }; + + let downstream_nodes = downstream_connectors + .iter() + .filter_map(|connector| connector.node_id().filter(|_| connector.input_index() == 0)) + .collect::>(); + downstream_nodes.iter().any(|node_id| self.is_layer(node_id, network_path)) + } + + pub fn primary_input_connected_to_layer(&mut self, node_id: &NodeId, network_path: &[NodeId]) -> bool { + self.input_from_connector(&InputConnector::node(*node_id, 0), network_path) + .and_then(|input| input.as_node()) + .is_some_and(|node_id| self.is_layer(&node_id, network_path)) + } + + pub fn hidden_primary_export(&self, network_path: &[NodeId]) -> bool { + let Some((node_id, network_path)) = network_path.split_last() else { + // The document network does not have a hidden primary export + return false; + }; + self.hidden_primary_output(node_id, network_path) + } + + pub fn hidden_primary_output(&self, node_id: &NodeId, network_path: &[NodeId]) -> bool { + match self.implementation(node_id, network_path) { + Some(DocumentNodeImplementation::Network(network)) => network.exports.first().is_none_or(|input| !input.is_exposed()), + _ => false, + } + } + + pub fn hidden_primary_import(&self, network_path: &[NodeId]) -> bool { + let Some((encapsulating_node_id, encapsulating_path)) = network_path.split_last() else { + return false; + }; + self.input_from_connector(&InputConnector::node(*encapsulating_node_id, 0), encapsulating_path) + .is_some_and(|input| !input.is_exposed()) } pub fn is_absolute(&self, node_id: &NodeId, network_path: &[NodeId]) -> bool { @@ -1279,21 +1172,20 @@ impl NodeNetworkInterface { .all_layers() .filter(|layer| include_artboards || !self.is_artboard(&layer.to_node(), &[])) .filter_map(|layer| { - if !self.is_artboard(&layer.to_node(), &[]) { - if let Some(artboard_node_identifier) = layer + if !self.is_artboard(&layer.to_node(), &[]) + && let Some(artboard_node_identifier) = layer .ancestors(self.document_metadata()) .find(|ancestor| *ancestor != LayerNodeIdentifier::ROOT_PARENT && self.is_artboard(&ancestor.to_node(), &[])) + { + let artboard = self.document_node(&artboard_node_identifier.to_node(), &[]); + let clip_input = artboard.unwrap().inputs.get(5).unwrap(); + if let NodeInput::Value { tagged_value, .. } = clip_input + && tagged_value.clone().deref() == &TaggedValue::Bool(true) { - let artboard = self.document_node(&artboard_node_identifier.to_node(), &[]); - let clip_input = artboard.unwrap().inputs.get(5).unwrap(); - if let NodeInput::Value { tagged_value, .. } = clip_input { - if tagged_value.to_primitive_string() == "true" { - return Some(Quad::clip( - self.document_metadata.bounding_box_document(layer).unwrap_or_default(), - self.document_metadata.bounding_box_document(artboard_node_identifier).unwrap_or_default(), - )); - } - } + return Some(Quad::clip( + self.document_metadata.bounding_box_document(layer).unwrap_or_default(), + self.document_metadata.bounding_box_document(artboard_node_identifier).unwrap_or_default(), + )); } } self.document_metadata.bounding_box_document(layer) @@ -1386,7 +1278,7 @@ impl NodeNetworkInterface { log::error!("Could not get network or network_metadata in upstream_flow_back_from_nodes"); return FlowIter { stack: Vec::new(), - network: &self.network, + network: self.document_network(), network_metadata: &self.network_metadata, flow_type: FlowType::UpstreamFlow, }; @@ -1416,7 +1308,7 @@ impl NodeNetworkInterface { let input = self.input_from_connector(input_connector, network_path); input.and_then(|input| match input { NodeInput::Node { node_id, output_index, .. } => Some(OutputConnector::node(*node_id, *output_index)), - NodeInput::Network { import_index, .. } => Some(OutputConnector::Import(*import_index)), + NodeInput::Import { import_index, .. } => Some(OutputConnector::Import(*import_index)), _ => None, }) } @@ -1427,57 +1319,6 @@ impl NodeNetworkInterface { .any(|id| id == potentially_upstream_node) } - #[cfg(not(target_family = "wasm"))] - fn text_width(&self, node_id: &NodeId, network_path: &[NodeId]) -> Option { - warn!("Failed to find width of {node_id:#?} in network_path {network_path:?} due to non-wasm arch"); - Some(0.) - } - - #[cfg(target_family = "wasm")] - fn text_width(&self, node_id: &NodeId, network_path: &[NodeId]) -> Option { - let document = web_sys::window().unwrap().document().unwrap(); - let div = match document.create_element("div") { - Ok(div) => div, - Err(err) => { - log::error!("Error creating div: {:?}", err); - return None; - } - }; - - // Set the div's style to make it offscreen and single line - match div.set_attribute("style", "position: absolute; top: -9999px; left: -9999px; white-space: nowrap;") { - Err(err) => { - log::error!("Error setting attribute: {:?}", err); - return None; - } - _ => {} - }; - - let name = self.display_name(node_id, network_path); - - div.set_text_content(Some(&name)); - - // Append the div to the document body - match document.body().unwrap().append_child(&div) { - Err(err) => { - log::error!("Error setting adding child to document {:?}", err); - return None; - } - _ => {} - }; - - // Measure the width - let text_width = div.get_bounding_client_rect().width(); - - // Remove the div from the document - match document.body().unwrap().remove_child(&div) { - Err(_) => log::error!("Could not remove child when rendering text"), - _ => {} - }; - - Some(text_width) - } - pub fn from_old_network(old_network: OldNodeNetwork) -> Self { let mut node_network = NodeNetwork::default(); let mut network_metadata = NodeNetworkMetadata::default(); @@ -1499,13 +1340,12 @@ impl NodeNetworkInterface { let mut node_metadata = DocumentNodeMetadata::default(); node.inputs = old_node.inputs; - node.manual_composition = old_node.manual_composition; + node.call_argument = old_node.manual_composition.unwrap(); node.visible = old_node.visible; node.skip_deduplication = old_node.skip_deduplication; node.original_location = old_node.original_location; node_metadata.persistent_metadata.display_name = old_node.alias; node_metadata.persistent_metadata.reference = if old_node.name.is_empty() { None } else { Some(old_node.name) }; - node_metadata.persistent_metadata.has_primary_output = old_node.has_primary_output; node_metadata.persistent_metadata.locked = old_node.locked; node_metadata.persistent_metadata.node_type_metadata = if old_node.is_layer { NodeTypePersistentMetadata::Layer(LayerPersistentMetadata { @@ -1539,7 +1379,7 @@ impl NodeNetworkInterface { } } Self { - network: node_network, + network: MemoNetwork::new(node_network), network_metadata, document_metadata: DocumentMetadata::default(), resolved_types: ResolvedDocumentNodeTypes::default(), @@ -1548,34 +1388,10 @@ impl NodeNetworkInterface { } } -/// Gets the type for a random protonode implementation (used if there is no type from the compiled network) -fn random_protonode_implementation(protonode: &graph_craft::ProtoNodeIdentifier) -> Option<&graphene_std::NodeIOTypes> { - let mut protonode = protonode.clone(); - // TODO: Remove - if let Some((path, _generics)) = protonode.name.split_once('<') { - protonode = path.to_string().to_string().into(); - } - let Some(node_io_hashmap) = NODE_REGISTRY.get(&protonode) else { - log::error!("Could not get hashmap for proto node: {protonode:?}"); - return None; - }; - - let node_types = node_io_hashmap.keys().min_by_key(|node_io_types| { - let mut hasher = DefaultHasher::new(); - node_io_types.hash(&mut hasher); - hasher.finish() - }); - - if node_types.is_none() { - log::error!("Could not get node_types from hashmap"); - }; - node_types -} - // Private mutable getters for use within the network interface impl NodeNetworkInterface { fn network_mut(&mut self, network_path: &[NodeId]) -> Option<&mut NodeNetwork> { - self.network.nested_network_mut(network_path) + self.document_network_mut().nested_network_mut(network_path) } fn network_metadata_mut(&mut self, network_path: &[NodeId]) -> Option<&mut NodeNetworkMetadata> { @@ -1931,70 +1747,25 @@ impl NodeNetworkInterface { } pub fn load_import_export_ports(&mut self, network_path: &[NodeId]) { - //let point = network_metadata.persistent_metadata.navigation_metadata.node_graph_to_viewport.inverse().transform_point2(); - let Some(all_nodes_bounding_box) = self.all_nodes_bounding_box(network_path).cloned() else { - log::error!("Could not get all nodes bounding box in load_export_ports"); + let Some(import_export_position) = self.import_export_position(network_path) else { + log::error!("Could not get import_export_position"); return; }; - let Some(rounded_network_edge_distance) = self.rounded_network_edge_distance(network_path).cloned() else { - log::error!("Could not get rounded_network_edge_distance in load_export_ports"); - return; - }; - let Some(network_metadata) = self.network_metadata(network_path) else { - log::error!("Could not get nested network_metadata in load_export_ports"); - return; - }; - let Some(network) = self.nested_network(network_path) else { - log::error!("Could not get current network in load_export_ports"); - return; - }; - + let Some(network) = self.nested_network(network_path) else { return }; let mut import_export_ports = Ports::new(); - let viewport_top_right = network_metadata - .persistent_metadata - .navigation_metadata - .node_graph_to_viewport - .inverse() - .transform_point2(rounded_network_edge_distance.exports_to_edge_distance); - let offset_from_top_right = if network - .exports - .first() - .is_some_and(|export| export.as_node().is_some_and(|export_node| self.is_layer(&export_node, network_path))) - { - DVec2::new(2. * GRID_SIZE as f64, -2. * GRID_SIZE as f64) - } else { - DVec2::new(4. * GRID_SIZE as f64, 0.) - }; - - let bounding_box_top_right = DVec2::new((all_nodes_bounding_box[1].x / 24. + 0.5).floor() * 24., (all_nodes_bounding_box[0].y / 24. + 0.5).floor() * 24.) + offset_from_top_right; - let export_top_right = DVec2::new(viewport_top_right.x.max(bounding_box_top_right.x), viewport_top_right.y.min(bounding_box_top_right.y)); - for input_index in 0..network.exports.len() { - import_export_ports.insert_input_port_at_center(input_index, export_top_right + DVec2::new(0., input_index as f64 * 24.)); + if !network_path.is_empty() { + let import_start_index = if self.hidden_primary_import(network_path) { 1 } else { 0 }; + for import_index in import_start_index..self.number_of_imports(network_path) { + import_export_ports.insert_output_port_at_center(import_index, import_export_position.0.as_dvec2() + DVec2::new(0., import_index as f64 * 24.)); + } } - let viewport_top_left = network_metadata - .persistent_metadata - .navigation_metadata - .node_graph_to_viewport - .inverse() - .transform_point2(rounded_network_edge_distance.imports_to_edge_distance); - - let offset_from_top_left = if network - .exports - .first() - .is_some_and(|export| export.as_node().is_some_and(|export_node| self.is_layer(&export_node, network_path))) - { - DVec2::new(-4. * GRID_SIZE as f64, -2. * GRID_SIZE as f64) - } else { - DVec2::new(-4. * GRID_SIZE as f64, 0.) - }; - - let bounding_box_top_left = DVec2::new((all_nodes_bounding_box[0].x / 24. + 0.5).floor() * 24., (all_nodes_bounding_box[0].y / 24. + 0.5).floor() * 24.) + offset_from_top_left; - let import_top_left = DVec2::new(viewport_top_left.x.min(bounding_box_top_left.x), viewport_top_left.y.min(bounding_box_top_left.y)); - for output_index in 0..self.number_of_displayed_imports(network_path) { - import_export_ports.insert_output_port_at_center(output_index, import_top_left + DVec2::new(0., output_index as f64 * 24.)); + let export_start_index = if self.hidden_primary_export(network_path) { 1 } else { 0 }; + for export_index in export_start_index..network.exports.len() { + import_export_ports.insert_input_port_at_center(export_index, import_export_position.1.as_dvec2() + DVec2::new(0., export_index as f64 * 24.)); } + let Some(network_metadata) = self.network_metadata_mut(network_path) else { log::error!("Could not get current network in load_export_ports"); return; @@ -2055,79 +1826,10 @@ impl NodeNetworkInterface { } pub fn load_modify_import_export(&mut self, network_path: &[NodeId]) { - let Some(all_nodes_bounding_box) = self.all_nodes_bounding_box(network_path).cloned() else { - log::error!("Could not get all nodes bounding box in load_export_ports"); - return; - }; - let Some(rounded_network_edge_distance) = self.rounded_network_edge_distance(network_path).cloned() else { - log::error!("Could not get rounded_network_edge_distance in load_export_ports"); - return; - }; - let Some(network_metadata) = self.network_metadata(network_path) else { - log::error!("Could not get nested network_metadata in load_export_ports"); - return; - }; - let Some(network) = self.nested_network(network_path) else { - log::error!("Could not get current network in load_export_ports"); - return; - }; - let mut reorder_imports_exports = Ports::new(); - let mut add_import_export = Ports::new(); let mut remove_imports_exports = Ports::new(); if !network_path.is_empty() { - let viewport_top_right = network_metadata - .persistent_metadata - .navigation_metadata - .node_graph_to_viewport - .inverse() - .transform_point2(rounded_network_edge_distance.exports_to_edge_distance); - let offset_from_top_right = if network - .exports - .first() - .is_some_and(|export| export.as_node().is_some_and(|export_node| self.is_layer(&export_node, network_path))) - { - DVec2::new(2. * GRID_SIZE as f64, -2. * GRID_SIZE as f64) - } else { - DVec2::new(4. * GRID_SIZE as f64, 0.) - }; - - let bounding_box_top_right = DVec2::new((all_nodes_bounding_box[1].x / 24. + 0.5).floor() * 24., (all_nodes_bounding_box[0].y / 24. + 0.5).floor() * 24.) + offset_from_top_right; - let export_top_right: DVec2 = DVec2::new(viewport_top_right.x.max(bounding_box_top_right.x), viewport_top_right.y.min(bounding_box_top_right.y)); - let add_export_center = export_top_right + DVec2::new(0., network.exports.len() as f64 * 24.); - let add_export = ClickTarget::new_with_subpath( - Subpath::new_rounded_rect(add_export_center - DVec2::new(12., 12.), add_export_center + DVec2::new(12., 12.), [3.; 4]), - 0., - ); - add_import_export.insert_custom_input_port(0, add_export); - - let viewport_top_left = network_metadata - .persistent_metadata - .navigation_metadata - .node_graph_to_viewport - .inverse() - .transform_point2(rounded_network_edge_distance.imports_to_edge_distance); - - let offset_from_top_left = if network - .exports - .first() - .is_some_and(|export| export.as_node().is_some_and(|export_node| self.is_layer(&export_node, network_path))) - { - DVec2::new(-4. * GRID_SIZE as f64, -2. * GRID_SIZE as f64) - } else { - DVec2::new(-4. * GRID_SIZE as f64, 0.) - }; - - let bounding_box_top_left = DVec2::new((all_nodes_bounding_box[0].x / 24. + 0.5).floor() * 24., (all_nodes_bounding_box[0].y / 24. + 0.5).floor() * 24.) + offset_from_top_left; - let import_top_left = DVec2::new(viewport_top_left.x.min(bounding_box_top_left.x), viewport_top_left.y.min(bounding_box_top_left.y)); - let add_import_center = import_top_left + DVec2::new(0., self.number_of_displayed_imports(network_path) as f64 * 24.); - let add_import = ClickTarget::new_with_subpath( - Subpath::new_rounded_rect(add_import_center - DVec2::new(12., 12.), add_import_center + DVec2::new(12., 12.), [3.; 4]), - 0., - ); - add_import_export.insert_custom_output_port(0, add_import); - let Some(import_exports) = self.import_export_ports(network_path) else { log::error!("Could not get import_export_ports in load_modify_import_export"); return; @@ -2139,13 +1841,18 @@ impl NodeNetworkInterface { continue; }; let reorder_import_center = (import_bounding_box[0] + import_bounding_box[1]) / 2. + DVec2::new(-12., 0.); - let remove_import_center = reorder_import_center + DVec2::new(-12., 0.); - let reorder_import = ClickTarget::new_with_subpath(Subpath::new_rect(reorder_import_center - DVec2::new(3., 4.), reorder_import_center + DVec2::new(3., 4.)), 0.); - let remove_import = ClickTarget::new_with_subpath(Subpath::new_rect(remove_import_center - DVec2::new(8., 8.), remove_import_center + DVec2::new(8., 8.)), 0.); - - reorder_imports_exports.insert_custom_output_port(*import_index, reorder_import); - remove_imports_exports.insert_custom_output_port(*import_index, remove_import); + if *import_index == 0 { + let remove_import_center = reorder_import_center + DVec2::new(-4., 0.); + let remove_import = ClickTarget::new_with_subpath(Subpath::new_rect(remove_import_center - DVec2::new(8., 8.), remove_import_center + DVec2::new(8., 8.)), 0.); + remove_imports_exports.insert_custom_output_port(*import_index, remove_import); + } else { + let remove_import_center = reorder_import_center + DVec2::new(-12., 0.); + let reorder_import = ClickTarget::new_with_subpath(Subpath::new_rect(reorder_import_center - DVec2::new(3., 4.), reorder_import_center + DVec2::new(3., 4.)), 0.); + let remove_import = ClickTarget::new_with_subpath(Subpath::new_rect(remove_import_center - DVec2::new(8., 8.), remove_import_center + DVec2::new(8., 8.)), 0.); + reorder_imports_exports.insert_custom_output_port(*import_index, reorder_import); + remove_imports_exports.insert_custom_output_port(*import_index, remove_import); + } } for (export_index, export_click_target) in import_exports.input_ports() { @@ -2154,13 +1861,18 @@ impl NodeNetworkInterface { continue; }; let reorder_export_center = (export_bounding_box[0] + export_bounding_box[1]) / 2. + DVec2::new(12., 0.); - let remove_export_center = reorder_export_center + DVec2::new(12., 0.); - let reorder_export = ClickTarget::new_with_subpath(Subpath::new_rect(reorder_export_center - DVec2::new(3., 4.), reorder_export_center + DVec2::new(3., 4.)), 0.); - let remove_export = ClickTarget::new_with_subpath(Subpath::new_rect(remove_export_center - DVec2::new(8., 8.), remove_export_center + DVec2::new(8., 8.)), 0.); - - reorder_imports_exports.insert_custom_input_port(*export_index, reorder_export); - remove_imports_exports.insert_custom_input_port(*export_index, remove_export); + if *export_index == 0 { + let remove_export_center = reorder_export_center + DVec2::new(4., 0.); + let remove_export = ClickTarget::new_with_subpath(Subpath::new_rect(remove_export_center - DVec2::new(8., 8.), remove_export_center + DVec2::new(8., 8.)), 0.); + remove_imports_exports.insert_custom_input_port(*export_index, remove_export); + } else { + let remove_export_center = reorder_export_center + DVec2::new(12., 0.); + let reorder_export = ClickTarget::new_with_subpath(Subpath::new_rect(reorder_export_center - DVec2::new(3., 4.), reorder_export_center + DVec2::new(3., 4.)), 0.); + let remove_export = ClickTarget::new_with_subpath(Subpath::new_rect(remove_export_center - DVec2::new(8., 8.), remove_export_center + DVec2::new(8., 8.)), 0.); + reorder_imports_exports.insert_custom_input_port(*export_index, reorder_export); + remove_imports_exports.insert_custom_input_port(*export_index, remove_export); + } } } @@ -2170,7 +1882,6 @@ impl NodeNetworkInterface { }; network_metadata.transient_metadata.modify_import_export = TransientMetadata::Loaded(ModifyImportExportClickTarget { - add_import_export, remove_imports_exports, reorder_imports_exports, }); @@ -2184,68 +1895,6 @@ impl NodeNetworkInterface { network_metadata.transient_metadata.modify_import_export.unload(); } - pub fn rounded_network_edge_distance(&mut self, network_path: &[NodeId]) -> Option<&NetworkEdgeDistance> { - let Some(network_metadata) = self.network_metadata(network_path) else { - log::error!("Could not get nested network_metadata in rounded_network_edge_distance"); - return None; - }; - if !network_metadata.transient_metadata.rounded_network_edge_distance.is_loaded() { - self.load_rounded_network_edge_distance(network_path); - } - let Some(network_metadata) = self.network_metadata(network_path) else { - log::error!("Could not get nested network_metadata in rounded_network_edge_distance"); - return None; - }; - let TransientMetadata::Loaded(rounded_network_edge_distance) = &network_metadata.transient_metadata.rounded_network_edge_distance else { - log::error!("could not load import rounded_network_edge_distance"); - return None; - }; - Some(rounded_network_edge_distance) - } - - fn load_rounded_network_edge_distance(&mut self, network_path: &[NodeId]) { - let Some(network_metadata) = self.network_metadata_mut(network_path) else { - log::error!("Could not get nested network in set_grid_aligned_edges"); - return; - }; - // When setting the edges to be grid aligned, update the pixel offset to ensure the next pan starts from the snapped import/export position - let node_graph_to_viewport = network_metadata.persistent_metadata.navigation_metadata.node_graph_to_viewport; - // TODO: Eventually replace node graph top right with the footprint when trying to get the network edge distance - let node_graph_top_right = network_metadata.persistent_metadata.navigation_metadata.node_graph_top_right; - let target_exports_distance = node_graph_to_viewport.inverse().transform_point2(DVec2::new( - node_graph_top_right.x - EXPORTS_TO_RIGHT_EDGE_PIXEL_GAP as f64, - node_graph_top_right.y + EXPORTS_TO_TOP_EDGE_PIXEL_GAP as f64, - )); - - let target_imports_distance = node_graph_to_viewport - .inverse() - .transform_point2(DVec2::new(IMPORTS_TO_LEFT_EDGE_PIXEL_GAP as f64, IMPORTS_TO_TOP_EDGE_PIXEL_GAP as f64)); - - let rounded_exports_distance = DVec2::new((target_exports_distance.x / 24. + 0.5).floor() * 24., (target_exports_distance.y / 24. + 0.5).floor() * 24.); - let rounded_imports_distance = DVec2::new((target_imports_distance.x / 24. + 0.5).floor() * 24., (target_imports_distance.y / 24. + 0.5).floor() * 24.); - - let rounded_viewport_exports_distance = node_graph_to_viewport.transform_point2(rounded_exports_distance); - let rounded_viewport_imports_distance = node_graph_to_viewport.transform_point2(rounded_imports_distance); - - let network_edge_distance = NetworkEdgeDistance { - exports_to_edge_distance: rounded_viewport_exports_distance, - imports_to_edge_distance: rounded_viewport_imports_distance, - }; - let Some(network_metadata) = self.network_metadata_mut(network_path) else { - log::error!("Could not get current network in load_export_ports"); - return; - }; - network_metadata.transient_metadata.rounded_network_edge_distance = TransientMetadata::Loaded(network_edge_distance); - } - - fn unload_rounded_network_edge_distance(&mut self, network_path: &[NodeId]) { - let Some(network_metadata) = self.network_metadata_mut(network_path) else { - log::error!("Could not get nested network_metadata in unload_export_ports"); - return; - }; - network_metadata.transient_metadata.rounded_network_edge_distance.unload(); - } - fn owned_nodes(&self, node_id: &NodeId, network_path: &[NodeId]) -> Option<&HashSet> { let layer_node = self.node_metadata(node_id, network_path)?; let NodeTypePersistentMetadata::Layer(LayerPersistentMetadata { owned_nodes, .. }) = &layer_node.persistent_metadata.node_type_metadata else { @@ -2355,7 +2004,7 @@ impl NodeNetworkInterface { ) }); outward_wires_entry.push(InputConnector::node(*current_node_id, input_index)); - } else if let NodeInput::Network { import_index, .. } = input { + } else if let NodeInput::Import { import_index, .. } = input { let outward_wires_entry = outward_wires .get_mut(&OutputConnector::Import(*import_index)) .unwrap_or_else(|| panic!("Output connector {:?} should be initialized for each import from a node", OutputConnector::Import(*import_index))); @@ -2372,7 +2021,7 @@ impl NodeNetworkInterface { ) }); outward_wires_entry.push(InputConnector::Export(export_index)); - } else if let NodeInput::Network { import_index, .. } = export { + } else if let NodeInput::Import { import_index, .. } = export { let outward_wires_entry = outward_wires .get_mut(&OutputConnector::Import(*import_index)) .unwrap_or_else(|| panic!("Output connector {:?} should be initialized between imports and exports", OutputConnector::Import(*import_index))); @@ -2426,19 +2075,19 @@ impl NodeNetworkInterface { } pub fn load_layer_width(&mut self, node_id: &NodeId, network_path: &[NodeId]) { + const GAP_WIDTH: f64 = 8.; + const FONT_SIZE: f64 = 14.; let left_thumbnail_padding = GRID_SIZE as f64 / 2.; let thumbnail_width = 3. * GRID_SIZE as f64; - let gap_width = 8.; - let text_width = self.text_width(node_id, network_path).unwrap_or_else(|| { - log::error!("Could not get text width for node {node_id}"); - 0. - }); + let layer_text = self.display_name(node_id, network_path); + + let text_width = text_width(&layer_text, FONT_SIZE); let grip_padding = 4.; let grip_width = 8.; let icon_overhang_width = GRID_SIZE as f64 / 2.; - let layer_width_pixels = left_thumbnail_padding + thumbnail_width + gap_width + text_width + grip_padding + grip_width + icon_overhang_width; + let layer_width_pixels = left_thumbnail_padding + thumbnail_width + GAP_WIDTH + text_width + grip_padding + grip_width + icon_overhang_width; let layer_width = ((layer_width_pixels / 24.).ceil() as u32).max(8); let Some(node_metadata) = self.node_metadata_mut(node_id, network_path) else { @@ -2470,10 +2119,8 @@ impl NodeNetworkInterface { }; // If the node is a layer, then the width and click targets need to be recalculated - if is_layer { - if let NodeTypeTransientMetadata::Layer(layer_metadata) = &mut node_metadata.transient_metadata.node_type_metadata { - layer_metadata.layer_width.unload(); - } + if is_layer && let NodeTypeTransientMetadata::Layer(layer_metadata) = &mut node_metadata.transient_metadata.node_type_metadata { + layer_metadata.layer_width.unload(); } } @@ -2522,7 +2169,7 @@ impl NodeNetworkInterface { InputConnector::Node { node_id, input_index } => { let input_metadata = self.transient_input_metadata(node_id, *input_index, network_path)?; let TransientMetadata::Loaded(wire) = &input_metadata.wire else { - log::error!("Could not load wire for input: {:?}", input); + log::error!("Could not load wire for input: {input:?}"); return None; }; wire.clone() @@ -2530,7 +2177,7 @@ impl NodeNetworkInterface { InputConnector::Export(export_index) => { let network_metadata = self.network_metadata(network_path)?; let Some(TransientMetadata::Loaded(wire)) = network_metadata.transient_metadata.wires.get(*export_index) else { - log::error!("Could not load wire for input: {:?}", input); + log::error!("Could not load wire for input: {input:?}"); return None; }; wire.clone() @@ -2569,13 +2216,14 @@ impl NodeNetworkInterface { Previewing::No => false, }; let Some(wire) = self.wire_path_from_input(input, graph_wire_style, dashed, network_path) else { + log::error!("Could not load wire path from input"); return; }; match input { InputConnector::Node { node_id, input_index } => { let Some(node_metadata) = self.node_metadata_mut(node_id, network_path) else { return }; let Some(input_metadata) = node_metadata.persistent_metadata.input_metadata.get_mut(*input_index) else { - log::error!("Node metadata must exist on node: {input:?}"); + // log::warn!("Node metadata must exist on node: {input:?}"); return; }; let wire_update = WirePathUpdate { @@ -2635,7 +2283,7 @@ impl NodeNetworkInterface { InputConnector::Node { node_id, input_index } => (*node_id, *input_index), InputConnector::Export(export_index) => (NodeId(u64::MAX), *export_index), }) - .chain(std::iter::once((NodeId(u64::MAX), usize::MAX))) + .chain(std::iter::once((NodeId(u64::MAX), u32::MAX as usize))) .collect() } @@ -2667,7 +2315,7 @@ impl NodeNetworkInterface { return; }; let Some(input_metadata) = node_metadata.persistent_metadata.input_metadata.get_mut(*input_index) else { - log::error!("Node metadata must exist on node: {input:?}"); + // log::warn!("Node metadata must exist on node: {input:?}"); return; }; input_metadata.transient_metadata.wire = TransientMetadata::Unloaded; @@ -2701,12 +2349,12 @@ impl NodeNetworkInterface { return None; } let Some(input_position) = self.get_input_center(&input, network_path) else { - log::error!("Could not get dom rect for wire end in root node: {:?}", input); + log::error!("Could not get input position for wire end in root node: {input:?}"); return None; }; let upstream_output = OutputConnector::node(root_node.node_id, root_node.output_index); let Some(output_position) = self.get_output_center(&upstream_output, network_path) else { - log::error!("Could not get dom rect for wire start in root node: {:?}", upstream_output); + log::error!("Could not get output position for wire start in root node: {upstream_output:?}"); return None; }; let vertical_end = input.node_id().is_some_and(|node_id| self.is_layer(&node_id, network_path) && input.input_index() == 0); @@ -2715,7 +2363,7 @@ impl NodeNetworkInterface { let vector_wire = build_vector_wire(output_position, input_position, vertical_start, vertical_end, graph_wire_style); let path_string = vector_wire.to_svg(); - let data_type = FrontendGraphDataType::from_type(&self.input_type(&input, network_path).0); + let data_type = self.input_type(&input, network_path).displayed_type(); let wire_path_update = Some(WirePath { path_string, data_type, @@ -2725,7 +2373,7 @@ impl NodeNetworkInterface { Some(WirePathUpdate { id: NodeId(u64::MAX), - input_index: usize::MAX, + input_index: u32::MAX as usize, wire_path_update, }) } @@ -2733,7 +2381,7 @@ impl NodeNetworkInterface { /// Returns the vector subpath and a boolean of whether the wire should be thick. pub fn vector_wire_from_input(&mut self, input: &InputConnector, wire_style: GraphWireStyle, network_path: &[NodeId]) -> Option<(BezPath, bool)> { let Some(input_position) = self.get_input_center(input, network_path) else { - log::error!("Could not get dom rect for wire end: {:?}", input); + log::error!("Could not get dom rect for wire end: {input:?}"); return None; }; // An upstream output could not be found, so the wire does not exist, but it should still be loaded as as empty vector @@ -2741,7 +2389,7 @@ impl NodeNetworkInterface { return Some((BezPath::new(), false)); }; let Some(output_position) = self.get_output_center(&upstream_output, network_path) else { - log::error!("Could not get dom rect for wire start: {:?}", upstream_output); + log::error!("Could not get output port for wire start: {:?}", upstream_output); return None; }; let vertical_end = input.node_id().is_some_and(|node_id| self.is_layer(&node_id, network_path) && input.input_index() == 0); @@ -2753,7 +2401,10 @@ impl NodeNetworkInterface { pub fn wire_path_from_input(&mut self, input: &InputConnector, graph_wire_style: GraphWireStyle, dashed: bool, network_path: &[NodeId]) -> Option { let (vector_wire, thick) = self.vector_wire_from_input(input, graph_wire_style, network_path)?; let path_string = vector_wire.to_svg(); - let data_type = FrontendGraphDataType::from_type(&self.input_type(input, network_path).0); + let data_type = self + .upstream_output_connector(input, network_path) + .map(|output| self.output_type(&output, network_path).displayed_type()) + .unwrap_or(FrontendGraphDataType::General); Some(WirePath { path_string, data_type, @@ -2819,20 +2470,19 @@ impl NodeNetworkInterface { DocumentNodeImplementation::Network(network) => network.exports.len(), _ => 1, }; - // If the node does not have a primary output, shift all ports down a row - let mut output_row_count = if !node_metadata.persistent_metadata.has_primary_output { 1 } else { 0 }; - for output_index in 0..number_of_outputs { - port_click_targets.insert_node_output(output_index, output_row_count, node_top_left); - output_row_count += 1; + // If the node has a hidden primary output, do not display the first output + let start_index = if self.hidden_primary_output(node_id, network_path) { 1 } else { 0 }; + for output_index in start_index..number_of_outputs { + port_click_targets.insert_node_output(output_index, node_top_left); } - let height = input_row_count.max(output_row_count).max(1) as u32 * crate::consts::GRID_SIZE; + let height = input_row_count.max(number_of_outputs).max(1) as u32 * crate::consts::GRID_SIZE; let width = 5 * crate::consts::GRID_SIZE; let node_click_target_top_left = node_top_left + DVec2::new(0., 12.); let node_click_target_bottom_right = node_click_target_top_left + DVec2::new(width as f64, height as f64); let radius = 3.; - let subpath = bezier_rs::Subpath::new_rounded_rect(node_click_target_top_left, node_click_target_bottom_right, [radius; 4]); + let subpath = Subpath::new_rounded_rect(node_click_target_top_left, node_click_target_bottom_right, [radius; 4]); let node_click_target = ClickTarget::new_with_subpath(subpath, 0.); DocumentNodeClickTargets { @@ -2871,7 +2521,7 @@ impl NodeNetworkInterface { let node_bottom_right = node_top_left + DVec2::new(width as f64, height as f64); let chain_top_left = node_top_left - DVec2::new((chain_width_grid_spaces * crate::consts::GRID_SIZE) as f64, 0.); let radius = 10.; - let subpath = bezier_rs::Subpath::new_rounded_rect(chain_top_left, node_bottom_right, [radius; 4]); + let subpath = Subpath::new_rounded_rect(chain_top_left, node_bottom_right, [radius; 4]); let node_click_target = ClickTarget::new_with_subpath(subpath, 0.); DocumentNodeClickTargets { @@ -3048,38 +2698,40 @@ impl NodeNetworkInterface { pub fn collect_frontend_click_targets(&mut self, network_path: &[NodeId]) -> FrontendClickTargets { let mut all_node_click_targets = Vec::new(); - let mut port_click_targets = Vec::new(); + let mut connector_click_targets = Vec::new(); let mut icon_click_targets = Vec::new(); let Some(network_metadata) = self.network_metadata(network_path) else { log::error!("Could not get nested network_metadata in collect_frontend_click_targets"); return FrontendClickTargets::default(); }; - network_metadata.persistent_metadata.node_metadata.keys().copied().collect::>().into_iter().for_each(|node_id| { - if let (Some(import_export_click_targets), Some(node_click_targets)) = (self.import_export_ports(network_path).cloned(), self.node_click_targets(&node_id, network_path)) { + let nodes = network_metadata.persistent_metadata.node_metadata.keys().copied().collect::>(); + if let Some(import_export_click_targets) = self.import_export_ports(network_path).cloned() { + for port in import_export_click_targets.click_targets() { + if let ClickTargetType::Subpath(subpath) = port.target_type() { + connector_click_targets.push(subpath.to_bezpath().to_svg()); + } + } + } + nodes.into_iter().for_each(|node_id| { + if let Some(node_click_targets) = self.node_click_targets(&node_id, network_path) { let mut node_path = String::new(); if let ClickTargetType::Subpath(subpath) = node_click_targets.node_click_target.target_type() { - let _ = subpath.subpath_to_svg(&mut node_path, DAffine2::IDENTITY); + node_path.push_str(subpath.to_bezpath().to_svg().as_str()) } all_node_click_targets.push((node_id, node_path)); - for port in node_click_targets.port_click_targets.click_targets().chain(import_export_click_targets.click_targets()) { + for port in node_click_targets.port_click_targets.click_targets() { if let ClickTargetType::Subpath(subpath) = port.target_type() { - let mut port_path = String::new(); - let _ = subpath.subpath_to_svg(&mut port_path, DAffine2::IDENTITY); - port_click_targets.push(port_path); + connector_click_targets.push(subpath.to_bezpath().to_svg()); } } if let NodeTypeClickTargets::Layer(layer_metadata) = &node_click_targets.node_type_metadata { if let ClickTargetType::Subpath(subpath) = layer_metadata.visibility_click_target.target_type() { - let mut port_path = String::new(); - let _ = subpath.subpath_to_svg(&mut port_path, DAffine2::IDENTITY); - icon_click_targets.push(port_path); + icon_click_targets.push(subpath.to_bezpath().to_svg()); } if let ClickTargetType::Subpath(subpath) = layer_metadata.grip_click_target.target_type() { - let mut port_path = String::new(); - let _ = subpath.subpath_to_svg(&mut port_path, DAffine2::IDENTITY); - icon_click_targets.push(port_path); + icon_click_targets.push(subpath.to_bezpath().to_svg()); } } } @@ -3095,60 +2747,27 @@ impl NodeNetworkInterface { }); let bounds = self.all_nodes_bounding_box(network_path).cloned().unwrap_or([DVec2::ZERO, DVec2::ZERO]); - let rect = bezier_rs::Subpath::::new_rect(bounds[0], bounds[1]); - let mut all_nodes_bounding_box = String::new(); - let _ = rect.subpath_to_svg(&mut all_nodes_bounding_box, DAffine2::IDENTITY); - - let Some(rounded_network_edge_distance) = self.rounded_network_edge_distance(network_path).cloned() else { - log::error!("Could not get rounded_network_edge_distance in collect_frontend_click_targets"); - return FrontendClickTargets::default(); - }; - let Some(network_metadata) = self.network_metadata(network_path) else { - log::error!("Could not get nested network_metadata in collect_frontend_click_targets"); - return FrontendClickTargets::default(); - }; - let import_exports_viewport_top_left = rounded_network_edge_distance.imports_to_edge_distance; - let import_exports_viewport_bottom_right = rounded_network_edge_distance.exports_to_edge_distance; - - let node_graph_top_left = network_metadata - .persistent_metadata - .navigation_metadata - .node_graph_to_viewport - .inverse() - .transform_point2(import_exports_viewport_top_left); - let node_graph_bottom_right = network_metadata - .persistent_metadata - .navigation_metadata - .node_graph_to_viewport - .inverse() - .transform_point2(import_exports_viewport_bottom_right); - - let import_exports_target = bezier_rs::Subpath::::new_rect(node_graph_top_left, node_graph_bottom_right); - let mut import_exports_bounding_box = String::new(); - let _ = import_exports_target.subpath_to_svg(&mut import_exports_bounding_box, DAffine2::IDENTITY); + let rect = Subpath::::new_rect(bounds[0], bounds[1]); + let all_nodes_bounding_box = rect.to_bezpath().to_svg(); let mut modify_import_export = Vec::new(); if let Some(modify_import_export_click_targets) = self.modify_import_export(network_path) { for click_target in modify_import_export_click_targets - .add_import_export + .remove_imports_exports .click_targets() - .chain(modify_import_export_click_targets.remove_imports_exports.click_targets()) .chain(modify_import_export_click_targets.reorder_imports_exports.click_targets()) { if let ClickTargetType::Subpath(subpath) = click_target.target_type() { - let mut remove_string = String::new(); - let _ = subpath.subpath_to_svg(&mut remove_string, DAffine2::IDENTITY); - modify_import_export.push(remove_string); + modify_import_export.push(subpath.to_bezpath().to_svg()); } } } FrontendClickTargets { node_click_targets, layer_click_targets, - port_click_targets, + connector_click_targets, icon_click_targets, all_nodes_bounding_box, - import_exports_bounding_box, modify_import_export, } } @@ -3166,11 +2785,7 @@ impl NodeNetworkInterface { let parameters_hidden = node.inputs.iter().skip(2).all(|input| !input.is_exposed()); let output_count = self.number_of_outputs(node_id, network_path); - self.node_metadata(node_id, network_path) - .is_some_and(|node_metadata| node_metadata.persistent_metadata.has_primary_output) - && output_count == 1 - && (input_count <= 2) - && parameters_hidden + !self.hidden_primary_output(node_id, network_path) && output_count == 1 && (input_count <= 2) && parameters_hidden } pub fn node_graph_ptz(&self, network_path: &[NodeId]) -> Option<&PTZ> { @@ -3272,19 +2887,18 @@ impl NodeNetworkInterface { .collect::>() .iter() .filter_map(|node_id| { - self.node_click_targets(node_id, network_path) - .and_then(|transient_node_metadata| { - transient_node_metadata - .port_click_targets - .clicked_input_port_from_point(point) - .map(|port| InputConnector::node(*node_id, port)) - }) - .or_else(|| { - self.import_export_ports(network_path) - .and_then(|import_export_ports| import_export_ports.clicked_input_port_from_point(point).map(InputConnector::Export)) - }) + self.node_click_targets(node_id, network_path).and_then(|transient_node_metadata| { + transient_node_metadata + .port_click_targets + .clicked_input_port_from_point(point) + .map(|port| InputConnector::node(*node_id, port)) + }) }) .next() + .or_else(|| { + self.import_export_ports(network_path) + .and_then(|import_export_ports| import_export_ports.clicked_input_port_from_point(point).map(InputConnector::Export)) + }) } pub fn output_connector_from_click(&mut self, click: DVec2, network_path: &[NodeId]) -> Option { @@ -3302,38 +2916,25 @@ impl NodeNetworkInterface { nodes .iter() .filter_map(|node_id| { - self.node_click_targets(node_id, network_path) - .and_then(|transient_node_metadata| { - transient_node_metadata - .port_click_targets - .clicked_output_port_from_point(point) - .map(|output_index| OutputConnector::node(*node_id, output_index)) - }) - .or_else(|| { - self.import_export_ports(network_path) - .and_then(|import_export_ports| import_export_ports.clicked_output_port_from_point(point).map(OutputConnector::Import)) - }) + self.node_click_targets(node_id, network_path).and_then(|transient_node_metadata| { + transient_node_metadata + .port_click_targets + .clicked_output_port_from_point(point) + .map(|output_index| OutputConnector::node(*node_id, output_index)) + }) }) .next() + .or_else(|| { + self.import_export_ports(network_path) + .and_then(|import_export_ports| import_export_ports.clicked_output_port_from_point(point).map(OutputConnector::Import)) + }) } pub fn input_position(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> Option { match input_connector { - InputConnector::Node { node_id, input_index } => { - // Get the displayed index from the input index - let Some(node) = self.document_node(node_id, network_path) else { - log::error!("Could not get node in input_position"); - return None; - }; - let mut displayed_index = 0; - for i in 0..*input_index { - if node.inputs[i].is_exposed() { - displayed_index += 1; - } - } - self.node_click_targets(node_id, network_path) - .and_then(|transient_node_metadata| transient_node_metadata.port_click_targets.input_port_position(displayed_index)) - } + InputConnector::Node { node_id, input_index } => self + .node_click_targets(node_id, network_path) + .and_then(|transient_node_metadata| transient_node_metadata.port_click_targets.input_port_position(*input_index)), InputConnector::Export(export_index) => self .import_export_ports(network_path) .and_then(|import_export_ports| import_export_ports.input_port_position(*export_index)), @@ -3367,7 +2968,7 @@ impl NodeNetworkInterface { self.selected_nodes() .0 .iter() - .filter(|node| self.is_layer(&node, &[])) + .filter(|node| self.is_layer(node, &[])) .filter_map(|layer| self.document_metadata.bounding_box_viewport(LayerNodeIdentifier::new(*layer, self))) .reduce(Quad::combine_bounds) } @@ -3376,7 +2977,7 @@ impl NodeNetworkInterface { self.selected_nodes() .0 .iter() - .filter(|node| self.is_layer(&node, &[]) && !self.is_locked(&node, &[])) + .filter(|node| self.is_layer(node, &[]) && !self.is_locked(node, &[])) .filter_map(|layer| self.document_metadata.bounding_box_viewport(LayerNodeIdentifier::new(*layer, self))) .reduce(Quad::combine_bounds) } @@ -3407,7 +3008,7 @@ impl NodeNetworkInterface { return None; }; - let bounding_box_subpath = bezier_rs::Subpath::::new_rect(bounds[0], bounds[1]); + let bounding_box_subpath = Subpath::::new_rect(bounds[0], bounds[1]); bounding_box_subpath.bounding_box_with_transform(network_metadata.persistent_metadata.navigation_metadata.node_graph_to_viewport) } @@ -3446,17 +3047,17 @@ impl NodeNetworkInterface { pub fn compute_modified_vector(&self, layer: LayerNodeIdentifier) -> Option { let graph_layer = graph_modification_utils::NodeGraphLayer::new(layer, self); - if let Some(path_node) = graph_layer.upstream_visible_node_id_from_name_in_layer("Path") { - if let Some(vector) = self.document_metadata.vector_modify.get(&path_node) { - let mut modified = vector.clone(); + if let Some(path_node) = graph_layer.upstream_visible_node_id_from_name_in_layer("Path") + && let Some(vector) = self.document_metadata.vector_modify.get(&path_node) + { + let mut modified = vector.clone(); - let path_node = self.document_network().nodes.get(&path_node); - let modification_input = path_node.and_then(|node: &DocumentNode| node.inputs.get(1)).and_then(|input| input.as_value()); - if let Some(TaggedValue::VectorModification(modification)) = modification_input { - modification.apply(&mut modified); - } - return Some(modified); + let path_node = self.document_network().nodes.get(&path_node); + let modification_input = path_node.and_then(|node: &DocumentNode| node.inputs.get(1)).and_then(|input| input.as_value()); + if let Some(TaggedValue::VectorModification(modification)) = modification_input { + modification.apply(&mut modified); } + return Some(modified); } self.document_metadata @@ -3618,13 +3219,12 @@ impl NodeNetworkInterface { } // This should be run whenever the pan ends, a zoom occurs, or the network is opened - pub fn set_grid_aligned_edges(&mut self, node_graph_top_right: DVec2, network_path: &[NodeId]) { + pub fn set_node_graph_width(&mut self, node_graph_width: f64, network_path: &[NodeId]) { let Some(network_metadata) = self.network_metadata_mut(network_path) else { - log::error!("Could not get nested network_metadata in set_grid_aligned_edges"); + log::error!("Could not get nested network in set_transform"); return; }; - network_metadata.persistent_metadata.navigation_metadata.node_graph_top_right = node_graph_top_right; - self.unload_rounded_network_edge_distance(network_path); + network_metadata.persistent_metadata.navigation_metadata.node_graph_width = node_graph_width; self.unload_import_export_ports(network_path); self.unload_modify_import_export(network_path); } @@ -3663,10 +3263,11 @@ impl NodeNetworkInterface { let mut encapsulating_path = network_path.to_vec(); // Set the parent node (if it exists) to be a non layer if it is no longer eligible to be a layer - if let Some(parent_id) = encapsulating_path.pop() { - if !self.is_eligible_to_be_layer(&parent_id, &encapsulating_path) && self.is_layer(&parent_id, &encapsulating_path) { - self.set_to_node_or_layer(&parent_id, &encapsulating_path, false); - } + if let Some(parent_id) = encapsulating_path.pop() + && !self.is_eligible_to_be_layer(&parent_id, &encapsulating_path) + && self.is_layer(&parent_id, &encapsulating_path) + { + self.set_to_node_or_layer(&parent_id, &encapsulating_path, false); }; // There will not be an encapsulating node if the network is the document network @@ -3823,13 +3424,12 @@ impl NodeNetworkInterface { // First disconnects the import, then removes it pub fn remove_import(&mut self, import_index: usize, network_path: &[NodeId]) { - let mut encapsulating_network_path = network_path.to_vec(); - let Some(parent_id) = encapsulating_network_path.pop() else { + let Some((parent_id, encapsulating_network_path)) = network_path.split_last() else { log::error!("Cannot remove export for document network"); return; }; - let number_of_inputs = self.number_of_inputs(&parent_id, &encapsulating_network_path); + let number_of_inputs = self.number_of_inputs(parent_id, encapsulating_network_path); let Some(outward_wires) = self.outward_wires(network_path) else { log::error!("Could not get outward wires in remove_import"); return; @@ -3858,11 +3458,11 @@ impl NodeNetworkInterface { self.create_wire(&output_connector, &input_wire, network_path); } - let Some(network) = self.network_mut(&encapsulating_network_path) else { + let Some(network) = self.network_mut(encapsulating_network_path) else { log::error!("Could not get parent node in remove_import"); return; }; - let Some(node) = network.nodes.get_mut(&parent_id) else { + let Some(node) = network.nodes.get_mut(parent_id) else { log::error!("Could not get node in remove_import"); return; }; @@ -3872,7 +3472,7 @@ impl NodeNetworkInterface { self.transaction_modified(); // There will not be an encapsulating node if the network is the document network - let Some(encapsulating_node_metadata) = self.node_metadata_mut(&parent_id, &encapsulating_network_path) else { + let Some(encapsulating_node_metadata) = self.node_metadata_mut(parent_id, encapsulating_network_path) else { log::error!("Could not get encapsulating node metadata in remove_export"); return; }; @@ -3880,11 +3480,11 @@ impl NodeNetworkInterface { encapsulating_node_metadata.persistent_metadata.reference = None; // Update the metadata for the encapsulating node - self.unload_outward_wires(&encapsulating_network_path); - self.unload_node_click_targets(&parent_id, &encapsulating_network_path); - self.unload_all_nodes_bounding_box(&encapsulating_network_path); - if !self.is_eligible_to_be_layer(&parent_id, &encapsulating_network_path) && self.is_layer(&parent_id, &encapsulating_network_path) { - self.set_to_node_or_layer(&parent_id, &encapsulating_network_path, false); + self.unload_outward_wires(encapsulating_network_path); + self.unload_node_click_targets(parent_id, encapsulating_network_path); + self.unload_all_nodes_bounding_box(encapsulating_network_path); + if !self.is_eligible_to_be_layer(parent_id, encapsulating_network_path) && self.is_layer(parent_id, encapsulating_network_path) { + self.set_to_node_or_layer(parent_id, encapsulating_network_path, false); } if encapsulating_network_path.is_empty() { self.load_structure(); @@ -4133,12 +3733,12 @@ impl NodeNetworkInterface { /// Used to ensure the display name is the reference name in case it is empty. pub fn validate_display_name_metadata(&mut self, node_id: &NodeId, network_path: &[NodeId]) { let Some(metadata) = self.node_metadata_mut(node_id, network_path) else { return }; - if metadata.persistent_metadata.display_name.is_empty() { - if let Some(reference) = metadata.persistent_metadata.reference.clone() { - // Keep the name for merge nodes as empty - if reference != "Merge" { - metadata.persistent_metadata.display_name = reference; - } + if metadata.persistent_metadata.display_name.is_empty() + && let Some(reference) = metadata.persistent_metadata.reference.clone() + { + // Keep the name for merge nodes as empty + if reference != "Merge" { + metadata.persistent_metadata.display_name = reference; } } } @@ -4148,7 +3748,7 @@ impl NodeNetworkInterface { if let DocumentNodeImplementation::Network(network) = &node.implementation { let number_of_exports = network.exports.len(); let Some(metadata) = self.node_metadata_mut(node_id, network_path) else { - log::error!("Could not get metadata for node: {:?}", node_id); + log::error!("Could not get metadata for node: {node_id:?}"); return; }; metadata.persistent_metadata.output_names.resize(number_of_exports, "".to_string()); @@ -4165,7 +3765,7 @@ impl NodeNetworkInterface { } /// Keep metadata in sync with the new implementation if this is used by anything other than the upgrade scripts - pub fn set_manual_compostion(&mut self, node_id: &NodeId, network_path: &[NodeId], manual_composition: Option) { + pub fn set_call_argument(&mut self, node_id: &NodeId, network_path: &[NodeId], call_argument: Type) { let Some(network) = self.network_mut(network_path) else { log::error!("Could not get nested network in set_implementation"); return; @@ -4174,12 +3774,24 @@ impl NodeNetworkInterface { log::error!("Could not get node in set_implementation"); return; }; - node.manual_composition = manual_composition; + node.call_argument = call_argument; + } + + pub fn set_context_features(&mut self, node_id: &NodeId, network_path: &[NodeId], context_features: ContextDependencies) { + let Some(network) = self.network_mut(network_path) else { + log::error!("Could not get nested network in set_context_features"); + return; + }; + let Some(node) = network.nodes.get_mut(node_id) else { + log::error!("Could not get node in set_context_features"); + return; + }; + node.context_features = context_features; } pub fn set_input(&mut self, input_connector: &InputConnector, new_input: NodeInput, network_path: &[NodeId]) { - if matches!(input_connector, InputConnector::Export(_)) && matches!(new_input, NodeInput::Network { .. }) { - // TODO: Add support for flattening NodeInput::Network exports in flatten_with_fns https://github.com/GraphiteEditor/Graphite/issues/1762 + if matches!(input_connector, InputConnector::Export(_)) && matches!(new_input, NodeInput::Import { .. }) { + // TODO: Add support for flattening NodeInput::Import exports in flatten_with_fns https://github.com/GraphiteEditor/Graphite/issues/1762 log::error!("Cannot connect a network to an export, see https://github.com/GraphiteEditor/Graphite/issues/1762"); return; } @@ -4196,10 +3808,10 @@ impl NodeNetworkInterface { } // If the previous input is connected to a chain node, then set all upstream chain nodes to absolute position - if let NodeInput::Node { node_id: previous_upstream_id, .. } = &previous_input { - if self.is_chain(previous_upstream_id, network_path) { - self.set_upstream_chain_to_absolute(previous_upstream_id, network_path); - } + if let NodeInput::Node { node_id: previous_upstream_id, .. } = &previous_input + && self.is_chain(previous_upstream_id, network_path) + { + self.set_upstream_chain_to_absolute(previous_upstream_id, network_path); } if let NodeInput::Node { node_id: new_upstream_id, .. } = &new_input { // If the new input is connected to a chain node, then break its chain @@ -4208,11 +3820,6 @@ impl NodeNetworkInterface { } } - let previous_metadata = match &previous_input { - NodeInput::Node { node_id, .. } => self.position(node_id, network_path).map(|position| (*node_id, position)), - _ => None, - }; - let Some(network) = self.network_mut(network_path) else { log::error!("Could not get nested network in set_input"); return; @@ -4249,13 +3856,25 @@ impl NodeNetworkInterface { return; } + // It is necessary to ensure the grpah is acyclic before calling `self.position` as it sometimes crashes with cyclic graphs #3227 + let previous_metadata = match &previous_input { + NodeInput::Node { node_id, .. } => self.position(node_id, network_path).map(|position| (*node_id, position)), + _ => None, + }; + self.transaction_modified(); // Ensure layer is toggled to non layer if it is no longer eligible to be a layer - if let InputConnector::Node { node_id, .. } = &input_connector { - if !self.is_eligible_to_be_layer(node_id, network_path) && self.is_layer(node_id, network_path) { - self.set_to_node_or_layer(node_id, network_path, false); - } + let layer_node_path = match input_connector { + InputConnector::Node { node_id, .. } => Some((node_id, network_path)), + InputConnector::Export(_) => network_path.split_last(), + }; + + if let Some((layer_id, layer_path)) = layer_node_path + && !self.is_eligible_to_be_layer(layer_id, layer_path) + && self.is_layer(layer_id, layer_path) + { + self.set_to_node_or_layer(layer_id, layer_path, false); } // Side effects @@ -4266,7 +3885,15 @@ impl NodeNetworkInterface { if new_exposed != old_exposed { self.unload_upstream_node_click_targets(vec![*node_id], network_path); self.unload_all_nodes_bounding_box(network_path); + + // Unload the interior imports ports + let nested_path = [network_path, &[*node_id]].concat(); + self.unload_import_export_ports(&nested_path); + self.unload_modify_import_export(&nested_path); } + } else { + self.unload_import_export_ports(network_path); + self.unload_modify_import_export(network_path); } } (_, NodeInput::Node { node_id: upstream_node_id, .. }) => { @@ -4335,12 +3962,12 @@ impl NodeNetworkInterface { self.try_set_upstream_to_chain(input_connector, network_path); } // If a connection is made to the imports - (NodeInput::Value { .. } | NodeInput::Scope { .. } | NodeInput::Inline { .. }, NodeInput::Network { .. }) => { + (NodeInput::Value { .. } | NodeInput::Scope { .. } | NodeInput::Inline { .. }, NodeInput::Import { .. }) => { self.unload_outward_wires(network_path); self.unload_wire(input_connector, network_path); } // If a connection to the imports is disconnected - (NodeInput::Network { .. }, NodeInput::Value { .. } | NodeInput::Scope { .. } | NodeInput::Inline { .. }) => { + (NodeInput::Import { .. }, NodeInput::Value { .. } | NodeInput::Scope { .. } | NodeInput::Inline { .. }) => { self.unload_outward_wires(network_path); self.unload_wire(input_connector, network_path); } @@ -4360,11 +3987,11 @@ impl NodeNetworkInterface { }; // If it is a layer and is connected to a single layer, set its position to stack at its previous y position if old_upstream_node_is_layer && outward_wires.len() == 1 && outward_wires[0].input_index() == 0 { - if let Some(downstream_node_id) = outward_wires[0].node_id() { - if self.is_layer(&downstream_node_id, network_path) { - self.set_stack_position_calculated_offset(&old_upstream_node_id, &downstream_node_id, network_path); - self.unload_upstream_node_click_targets(vec![old_upstream_node_id], network_path); - } + if let Some(downstream_node_id) = outward_wires[0].node_id() + && self.is_layer(&downstream_node_id, network_path) + { + self.set_stack_position_calculated_offset(&old_upstream_node_id, &downstream_node_id, network_path); + self.unload_upstream_node_click_targets(vec![old_upstream_node_id], network_path); } } // If it is a node and is eligible to be in a chain, then set it to chain positioning @@ -4424,23 +4051,21 @@ impl NodeNetworkInterface { return; }; let mut other_outward_wires = outward_wires.iter().filter(|outward_wire| *outward_wire != input_connector); - if let Some(other_outward_wire) = other_outward_wires.next().cloned() { - if other_outward_wires.next().is_none() { - if let InputConnector::Node { - node_id: downstream_node_id, - input_index, - } = other_outward_wire - { - if self.is_layer(&downstream_node_id, network_path) && input_index == 0 { - self.set_stack_position_calculated_offset(upstream_node_id, &downstream_node_id, network_path); - } - } - } + if let Some(other_outward_wire) = other_outward_wires.next().cloned() + && other_outward_wires.next().is_none() + && let InputConnector::Node { + node_id: downstream_node_id, + input_index, + } = other_outward_wire + && self.is_layer(&downstream_node_id, network_path) + && input_index == 0 + { + self.set_stack_position_calculated_offset(upstream_node_id, &downstream_node_id, network_path); } } } - let tagged_value = TaggedValue::from_type_or_none(&self.input_type(input_connector, network_path).0); + let tagged_value = self.tagged_value_from_input(input_connector, network_path); let value_input = NodeInput::value(tagged_value, true); @@ -4450,7 +4075,7 @@ impl NodeNetworkInterface { pub fn create_wire(&mut self, output_connector: &OutputConnector, input_connector: &InputConnector, network_path: &[NodeId]) { let input = match output_connector { OutputConnector::Node { node_id, output_index } => NodeInput::node(*node_id, *output_index), - OutputConnector::Import(import_index) => NodeInput::Network { + OutputConnector::Import(import_index) => NodeInput::Import { import_type: graph_craft::generic!(T), import_index: *import_index, }, @@ -4497,7 +4122,7 @@ impl NodeNetworkInterface { .document_node .inputs .iter() - .all(|input| !(matches!(input, NodeInput::Node { .. }) || matches!(input, NodeInput::Network { .. }))); + .all(|input| !(matches!(input, NodeInput::Node { .. }) || matches!(input, NodeInput::Import { .. }))); assert!(has_node_or_network_input, "Cannot insert node with node or network inputs. Use insert_node_group instead"); let Some(network) = self.network_mut(network_path) else { log::error!("Network not found in insert_node"); @@ -4541,42 +4166,59 @@ impl NodeNetworkInterface { continue; }; - for upstream_id in self.upstream_flow_back_from_nodes(vec![*node_id], network_path, FlowType::LayerChildrenUpstreamFlow) { - // This does a downstream traversal starting from the current node, and ending at either a node in the `delete_nodes` set or the output. - // If the traversal find as child node of a node in the `delete_nodes` set, then it is a sole dependent. If the output node is eventually reached, then it is not a sole dependent. - let mut stack = vec![OutputConnector::node(upstream_id, 0)]; - let mut can_delete = true; - while let Some(current_node) = stack.pop() { - let current_node_id = current_node.node_id().expect("The current node in the delete stack cannot be the export"); - let Some(downstream_nodes) = outward_wires.get(¤t_node) else { continue }; - for downstream_node in downstream_nodes { - if let InputConnector::Node { node_id: downstream_id, .. } = downstream_node { - if !delete_nodes.contains(downstream_id) { - can_delete = false; - break; - } - // Continue traversing over the downstream sibling, if the current node is a sibling to a node that will be deleted and it is a layer - else { - for deleted_node_id in &nodes_to_delete { - let Some(downstream_node) = self.document_node(deleted_node_id, network_path) else { continue }; - let Some(input) = downstream_node.inputs.first() else { continue }; - - if let NodeInput::Node { node_id, .. } = input { - if *node_id == current_node_id { - stack.push(OutputConnector::node(*deleted_node_id, 0)); - } - } - } - } - } - // If the traversal reaches the export, then the current node is not a sole dependent - else { - can_delete = false; - } + // Perform an upstream traversal to try delete children for secondary inputs + let mut upstream_nodes = (1..self.number_of_inputs(node_id, network_path)) + .filter_map(|input_index| self.upstream_output_connector(&InputConnector::node(*node_id, input_index), network_path).and_then(|oc| oc.node_id())) + .collect::>(); + while let Some(upstream_node) = upstream_nodes.pop() { + // Add the upstream nodes to the traversal + for input_connector in (0..self.number_of_inputs(&upstream_node, network_path)).map(|input_index| InputConnector::node(upstream_node, input_index)) { + if let Some(upstream_node) = self.upstream_output_connector(&input_connector, network_path).and_then(|oc| oc.node_id()) { + upstream_nodes.push(upstream_node); } } + // For each potential child perform a complete downstream traversal, ending at either a node in the `delete_nodes` set (excluding layer bottom inputs), the output, or a dead end. + // If the output node is eventually reached, then it is not a sole dependent and will not be deleted + let mut stack = vec![upstream_node]; + let mut can_delete = true; + while let Some(current_node) = stack.pop() { + let mut is_dead_end = true; + for output_connector in (0..self.number_of_outputs(¤t_node, network_path)).map(|output_index| OutputConnector::node(current_node, output_index)) { + let Some(downstream_nodes) = outward_wires.get(&output_connector) else { continue }; + if !downstream_nodes.is_empty() { + is_dead_end = false + } + for downstream_node in downstream_nodes { + if let InputConnector::Node { node_id: downstream_id, input_index } = downstream_node { + // If the downstream node is not in the delete nodes set, then continue iterating + // If the downstream node is the bottom input of a layer then continue iterating + if !delete_nodes.contains(downstream_id) || (*input_index == 0 && self.is_layer(downstream_id, network_path)) { + stack.push(*downstream_id); + } + // If the traversal reaches the primary input of the node to delete then do not delete it + if node_id == downstream_id && *input_index == 0 { + can_delete = false; + stack = Vec::new(); + break; + } + } + // If the traversal reaches the export, then the current node is not a sole dependent and cannot be deleted + else { + can_delete = false; + stack = Vec::new(); + break; + } + } + } + // If there are no outward wires, then we have reached a dead end, and the node cannot be deleted + if is_dead_end { + can_delete = false; + stack = Vec::new(); + } + } + if can_delete { - delete_nodes.insert(upstream_id); + delete_nodes.insert(upstream_node); } } } @@ -4634,7 +4276,7 @@ impl NodeNetworkInterface { node.inputs .iter() .find(|input| input.is_exposed()) - .filter(|input| matches!(input, NodeInput::Node { .. } | NodeInput::Network { .. })) + .filter(|input| matches!(input, NodeInput::Node { .. } | NodeInput::Import { .. })) .cloned() }); // Get all upstream references @@ -4655,12 +4297,12 @@ impl NodeNetworkInterface { for downstream_input in &downstream_inputs_to_disconnect { self.disconnect_input(downstream_input, network_path); // Prevent reconnecting export to import until https://github.com/GraphiteEditor/Graphite/issues/1762 is solved - if !(matches!(reconnect_to_input, Some(NodeInput::Network { .. })) && matches!(downstream_input, InputConnector::Export(_))) { - if let Some(reconnect_input) = &reconnect_to_input { - reconnect_node = reconnect_input.as_node().and_then(|node_id| if self.is_stack(&node_id, network_path) { Some(node_id) } else { None }); - self.disconnect_input(&InputConnector::node(*node_id, 0), network_path); - self.set_input(downstream_input, reconnect_input.clone(), network_path); - } + if !(matches!(reconnect_to_input, Some(NodeInput::Import { .. })) && matches!(downstream_input, InputConnector::Export(_))) + && let Some(reconnect_input) = &reconnect_to_input + { + reconnect_node = reconnect_input.as_node().and_then(|node_id| if self.is_stack(&node_id, network_path) { Some(node_id) } else { None }); + self.disconnect_input(&InputConnector::node(*node_id, 0), network_path); + self.set_input(downstream_input, reconnect_input.clone(), network_path); } } @@ -5166,10 +4808,7 @@ impl NodeNetworkInterface { .skip(1) .collect::>() { - if self.is_layer(&upstream_node, network_path) { - break; - } - if !self.has_primary_output(&upstream_node, network_path) { + if self.is_layer(&upstream_node, network_path) || self.hidden_primary_output(&upstream_node, network_path) { break; } let Some(outward_wires) = self.outward_wires(network_path).and_then(|outward_wires| outward_wires.get(&OutputConnector::node(upstream_node, 0))) else { @@ -5202,12 +4841,12 @@ impl NodeNetworkInterface { /// Input connector is the input to the layer pub fn try_set_upstream_to_chain(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) { // If the new input is to a non layer node on the same y position as the input connector, or the input connector is the side input of a layer, then set it to chain position - let valid_upstream_chain_nodes = self.valid_upstream_chain_nodes(input_connector, network_path); for node_id in &valid_upstream_chain_nodes { self.set_chain_position(node_id, network_path); } + // Reload click target of the layer which used to encapsulate the node if !valid_upstream_chain_nodes.is_empty() { let mut downstream_layer = Some(input_connector.node_id().unwrap()); @@ -5235,18 +4874,15 @@ impl NodeNetworkInterface { if let Some(outward_wires) = self .outward_wires(network_path) .and_then(|outward_wires| outward_wires.get(&OutputConnector::node(*node_id, 0))) - .cloned() + .cloned() && outward_wires.len() == 1 { - if outward_wires.len() == 1 { - self.try_set_upstream_to_chain(&outward_wires[0], network_path) - } + self.try_set_upstream_to_chain(&outward_wires[0], network_path) } } pub fn force_set_upstream_to_chain(&mut self, node_id: &NodeId, network_path: &[NodeId]) { for upstream_id in self.upstream_flow_back_from_nodes(vec![*node_id], network_path, FlowType::HorizontalFlow).collect::>().iter() { if !self.is_layer(upstream_id, network_path) - && self.has_primary_output(node_id, network_path) && self .outward_wires(network_path) .is_some_and(|outward_wires| outward_wires.get(&OutputConnector::node(*upstream_id, 0)).is_some_and(|outward_wires| outward_wires.len() == 1)) @@ -5340,13 +4976,13 @@ impl NodeNetworkInterface { }; if !shift_without_push { for node_id in node_ids.clone() { - if self.is_layer(&node_id, network_path) { - if let Some(owned_nodes) = self.owned_nodes(&node_id, network_path) { - for owned_node in owned_nodes { - node_ids.remove(owned_node); - } - }; - } + if self.is_layer(&node_id, network_path) + && let Some(owned_nodes) = self.owned_nodes(&node_id, network_path) + { + for owned_node in owned_nodes { + node_ids.remove(owned_node); + } + }; } } @@ -5368,22 +5004,22 @@ impl NodeNetworkInterface { log::error!("Could not get node metadata for node {node_id} in shift_selected_nodes"); return; }; - if let NodeTypePersistentMetadata::Layer(layer_metadata) = &node_metadata.persistent_metadata.node_type_metadata { - if let LayerPosition::Stack(offset) = layer_metadata.position { - // If the upstream layer is selected, then skip - let Some(outward_wires) = self.outward_wires(network_path).and_then(|outward_wires| outward_wires.get(&OutputConnector::node(*node_id, 0))) else { - log::error!("Could not get outward wires in shift_selected_nodes"); - return; - }; - if let Some(upstream_node) = outward_wires.first() { - if node_ids.contains(&upstream_node.node_id().expect("Stack layer should have downstream layer")) { - continue; - } - } - // Offset cannot be negative, so cancel the shift - if offset == 0 { - return; - } + if let NodeTypePersistentMetadata::Layer(layer_metadata) = &node_metadata.persistent_metadata.node_type_metadata + && let LayerPosition::Stack(offset) = layer_metadata.position + { + // If the upstream layer is selected, then skip + let Some(outward_wires) = self.outward_wires(network_path).and_then(|outward_wires| outward_wires.get(&OutputConnector::node(*node_id, 0))) else { + log::error!("Could not get outward wires in shift_selected_nodes"); + return; + }; + if let Some(upstream_node) = outward_wires.first() + && node_ids.contains(&upstream_node.node_id().expect("Stack layer should have downstream layer")) + { + continue; + } + // Offset cannot be negative, so cancel the shift + if offset == 0 { + return; } } } @@ -5468,11 +5104,11 @@ impl NodeNetworkInterface { log::error!("Could not get nested network_metadata in export_ports"); continue; }; - if let TransientMetadata::Loaded(stack_dependents) = &mut network_metadata.transient_metadata.stack_dependents { - if let Some(LayerOwner::None(offset)) = stack_dependents.get_mut(node_id) { - *offset += shift_sign; - self.transaction_modified(); - }; + if let TransientMetadata::Loaded(stack_dependents) = &mut network_metadata.transient_metadata.stack_dependents + && let Some(LayerOwner::None(offset)) = stack_dependents.get_mut(node_id) + { + *offset += shift_sign; + self.transaction_modified(); }; // Shift the upstream layer so that it stays in the same place @@ -5744,14 +5380,13 @@ impl NodeNetworkInterface { // A layer is considered to be the height of that layer plus the height to the upstream layer sibling // If a non artboard layer is attempted to be connected to the exports, and there is already an artboard connected, then connect the layer to the artboard. - if let Some(first_layer) = LayerNodeIdentifier::ROOT_PARENT.children(&self.document_metadata).next() { - if parent == LayerNodeIdentifier::ROOT_PARENT - && self.reference(&layer.to_node(), network_path).is_none_or(|reference| *reference != Some("Artboard".to_string())) - && self.is_artboard(&first_layer.to_node(), network_path) - { - parent = first_layer; - insert_index = 0; - } + if let Some(first_layer) = LayerNodeIdentifier::ROOT_PARENT.children(&self.document_metadata).next() + && parent == LayerNodeIdentifier::ROOT_PARENT + && self.reference(&layer.to_node(), network_path).is_none_or(|reference| *reference != Some("Artboard".to_string())) + && self.is_artboard(&first_layer.to_node(), network_path) + { + parent = first_layer; + insert_index = 0; } let Some(layer_to_move_position) = self.position(&layer.to_node(), network_path) else { @@ -5810,22 +5445,20 @@ impl NodeNetworkInterface { let mut downstream_height = 0; let inserting_into_stack = !(post_node.input_index() == 1 || matches!(post_node, InputConnector::Export(_)) || !post_node.node_id().is_some_and(|post_node_id| self.is_layer(&post_node_id, network_path))); - if inserting_into_stack { - if let Some(downstream_node) = post_node.node_id() { - let Some(downstream_node_position) = self.position(&downstream_node, network_path) else { - log::error!("Could not get downstream node position in move_layer_to_stack"); - return; - }; - let mut lowest_y_position = downstream_node_position.y + 3; + if inserting_into_stack && let Some(downstream_node) = post_node.node_id() { + let Some(downstream_node_position) = self.position(&downstream_node, network_path) else { + log::error!("Could not get downstream node position in move_layer_to_stack"); + return; + }; + let mut lowest_y_position = downstream_node_position.y + 3; - for bottom_position in self.upstream_nodes_below_layer(&downstream_node, network_path).iter().filter_map(|node_id| { - let is_layer = self.is_layer(node_id, network_path); - self.position(node_id, network_path).map(|position| position.y + if is_layer { 3 } else { 2 }) - }) { - lowest_y_position = lowest_y_position.max(bottom_position); - } - downstream_height = lowest_y_position - (downstream_node_position.y + 3); + for bottom_position in self.upstream_nodes_below_layer(&downstream_node, network_path).iter().filter_map(|node_id| { + let is_layer = self.is_layer(node_id, network_path); + self.position(node_id, network_path).map(|position| position.y + if is_layer { 3 } else { 2 }) + }) { + lowest_y_position = lowest_y_position.max(bottom_position); } + downstream_height = lowest_y_position - (downstream_node_position.y + 3); } let mut highest_y_position = layer_to_move_position.y; @@ -5873,53 +5506,53 @@ impl NodeNetworkInterface { } // If inserting into a stack with a parent, ensure the parent stack has enough space for the child stack - if parent != LayerNodeIdentifier::ROOT_PARENT { - if let Some(upstream_sibling) = parent.next_sibling(&self.document_metadata) { - let Some(parent_position) = self.position(&parent.to_node(), network_path) else { - log::error!("Could not get parent position in move_layer_to_stack"); - return; - }; - let last_child = parent.last_child(&self.document_metadata).unwrap_or(parent); + if parent != LayerNodeIdentifier::ROOT_PARENT + && let Some(upstream_sibling) = parent.next_sibling(&self.document_metadata) + { + let Some(parent_position) = self.position(&parent.to_node(), network_path) else { + log::error!("Could not get parent position in move_layer_to_stack"); + return; + }; + let last_child = parent.last_child(&self.document_metadata).unwrap_or(parent); - let Some(mut last_child_position) = self.position(&last_child.to_node(), network_path) else { - log::error!("Could not get last child position in move_layer_to_stack"); - return; - }; + let Some(mut last_child_position) = self.position(&last_child.to_node(), network_path) else { + log::error!("Could not get last child position in move_layer_to_stack"); + return; + }; - if self.is_layer(&last_child.to_node(), network_path) { - last_child_position.y += 3; - } else { - last_child_position.y += 2; - } - - // If inserting below the current last child, then the last child is layer to move - if post_node.node_id() == Some(last_child.to_node()) { - last_child_position += height_above_layer + 3 + height_below_layer; - } - - let Some(upstream_sibling_position) = self.position(&upstream_sibling.to_node(), network_path) else { - log::error!("Could not get upstream sibling position in move_layer_to_stack"); - return; - }; - - let target_gap = last_child_position.y - parent_position.y + 3; - let current_gap = upstream_sibling_position.y - parent_position.y; - - let upstream_nodes = self - .upstream_flow_back_from_nodes(vec![upstream_sibling.to_node()], network_path, FlowType::UpstreamFlow) - .collect::>(); - let Some(selected_nodes) = self.selected_nodes_mut(network_path) else { - log::error!("Could not get selected nodes in move_layer_to_stack"); - return; - }; - let old_selected_nodes = selected_nodes.replace_with(upstream_nodes); - - for _ in 0..(target_gap - current_gap).max(0) { - self.shift_selected_nodes(Direction::Down, true, network_path); - } - - let _ = self.selected_nodes_mut(network_path).unwrap().replace_with(old_selected_nodes); + if self.is_layer(&last_child.to_node(), network_path) { + last_child_position.y += 3; + } else { + last_child_position.y += 2; } + + // If inserting below the current last child, then the last child is layer to move + if post_node.node_id() == Some(last_child.to_node()) { + last_child_position += height_above_layer + 3 + height_below_layer; + } + + let Some(upstream_sibling_position) = self.position(&upstream_sibling.to_node(), network_path) else { + log::error!("Could not get upstream sibling position in move_layer_to_stack"); + return; + }; + + let target_gap = last_child_position.y - parent_position.y + 3; + let current_gap = upstream_sibling_position.y - parent_position.y; + + let upstream_nodes = self + .upstream_flow_back_from_nodes(vec![upstream_sibling.to_node()], network_path, FlowType::UpstreamFlow) + .collect::>(); + let Some(selected_nodes) = self.selected_nodes_mut(network_path) else { + log::error!("Could not get selected nodes in move_layer_to_stack"); + return; + }; + let old_selected_nodes = selected_nodes.replace_with(upstream_nodes); + + for _ in 0..(target_gap - current_gap).max(0) { + self.shift_selected_nodes(Direction::Down, true, network_path); + } + + let _ = self.selected_nodes_mut(network_path).unwrap().replace_with(old_selected_nodes); } // Connect the layer to a parent layer/node at the top of the stack, or a non layer node midway down the stack @@ -5945,7 +5578,7 @@ impl NodeNetworkInterface { self.shift_absolute_node_position(&layer.to_node(), shift, network_path); self.insert_node_between(&layer.to_node(), &post_node, 0, network_path); } - NodeInput::Network { .. } => { + NodeInput::Import { .. } => { log::error!("Cannot move post node to parent which connects to the imports") } } @@ -5964,7 +5597,7 @@ impl NodeNetworkInterface { self.shift_absolute_node_position(&layer.to_node(), shift, network_path); self.insert_node_between(&layer.to_node(), &post_node, 0, network_path); } - NodeInput::Network { .. } => { + NodeInput::Import { .. } => { log::error!("Cannot move post node to parent which connects to the imports") } } @@ -6047,7 +5680,7 @@ impl Iterator for FlowIter<'_> { } else { 0 }; - let take = if self.flow_type == FlowType::UpstreamFlow { usize::MAX } else { 1 }; + let take = if self.flow_type == FlowType::UpstreamFlow { u32::MAX as usize } else { 1 }; let inputs = document_node.inputs.iter().skip(skip).take(take); let node_ids = inputs.filter_map(|input| match input { @@ -6064,28 +5697,6 @@ impl Iterator for FlowIter<'_> { } } -// TODO: Refactor to be Unknown, Compiled(Type) for NodeInput::Node, or Value(Type) for NodeInput::Value -/// Represents the source of a resolved type (for debugging). -/// There will be two valid types list. One for the current valid types that will not cause a node graph error, -/// based on the other inputs to that node and returned during compilation. THe other list will be all potential -/// Valid types, based on the protonode implementation/downstream users. -#[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize, specta::Type)] -pub enum TypeSource { - Compiled, - RandomProtonodeImplementation, - DocumentNodeDefault, - TaggedValue, - OuterMostExportDefault, - - Error(&'static str), -} - -impl Default for TypeSource { - fn default() -> Self { - Self::Error("no source") - } -} - #[derive(Debug, Clone, Copy, PartialEq, Eq, serde::Serialize, serde::Deserialize, specta::Type)] pub enum ImportOrExport { Import(usize), @@ -6173,7 +5784,7 @@ impl OutputConnector { pub fn from_input(input: &NodeInput) -> Option { match input { - NodeInput::Network { import_index, .. } => Some(Self::Import(*import_index)), + NodeInput::Import { import_index, .. } => Some(Self::Import(*import_index)), NodeInput::Node { node_id, output_index, .. } => Some(Self::node(*node_id, *output_index)), _ => None, } @@ -6239,9 +5850,9 @@ impl Ports { self.insert_input_port_at_center(input_index, center); } - fn insert_node_output(&mut self, output_index: usize, row_index: usize, node_top_left: DVec2) { + fn insert_node_output(&mut self, output_index: usize, node_top_left: DVec2) { // The center of the click target is always 24 px down from the top left corner of the node - let center = node_top_left + DVec2::new(5. * 24., 24. + 24. * row_index as f64); + let center = node_top_left + DVec2::new(5. * 24., 24. + 24. * output_index as f64); self.insert_output_port_at_center(output_index, center); } @@ -6269,15 +5880,23 @@ impl Ports { } pub fn input_port_position(&self, index: usize) -> Option { - self.input_ports - .get(index) - .and_then(|(_, click_target)| click_target.bounding_box().map(|bounds| bounds[0] + DVec2::new(8., 8.))) + self.input_ports.iter().find_map(|(port_index, click_target)| { + if *port_index == index { + click_target.bounding_box().map(|bounds| bounds[0] + DVec2::new(8., 8.)) + } else { + None + } + }) } pub fn output_port_position(&self, index: usize) -> Option { - self.output_ports - .get(index) - .and_then(|(_, click_target)| click_target.bounding_box().map(|bounds| bounds[0] + DVec2::new(8., 8.))) + self.output_ports.iter().find_map(|(port_index, click_target)| { + if *port_index == index { + click_target.bounding_box().map(|bounds| bounds[0] + DVec2::new(8., 8.)) + } else { + None + } + }) } } @@ -6401,7 +6020,7 @@ pub struct NodeNetworkTransientMetadata { pub stack_dependents: TransientMetadata>, /// Cache for the bounding box around all nodes in node graph space. pub all_nodes_bounding_box: TransientMetadata<[DVec2; 2]>, - /// Cache bounding box for all "groups of nodes", which will be used to prevent overlapping nodes + // /// Cache bounding box for all "groups of nodes", which will be used to prevent overlapping nodes // node_group_bounding_box: Vec<(Subpath, Vec)>, /// Cache for all outward wire connections pub outward_wires: TransientMetadata>>, @@ -6409,16 +6028,13 @@ pub struct NodeNetworkTransientMetadata { pub import_export_ports: TransientMetadata, /// Click targets for adding, removing, and moving import/export ports pub modify_import_export: TransientMetadata, - // Distance to the edges of the network, where the import/export ports are displayed. Rounded to nearest grid space when the panning ends. - pub rounded_network_edge_distance: TransientMetadata, + // Wires from the exports pub wires: Vec>, } #[derive(Debug, Clone)] pub struct ModifyImportExportClickTarget { - // Plus icon that appears below all imports/exports, except in the document network - pub add_import_export: Ports, // Subtract icon that appears when hovering over an import/export pub remove_imports_exports: Ports, // Grip drag icon that appears when hovering over an import/export @@ -6441,12 +6057,6 @@ pub enum LayerOwner { None(i32), } -/// Utility function for providing a default boolean value to serde. -#[inline(always)] -fn return_true() -> bool { - true -} - #[derive(Debug, Default, serde::Serialize, serde::Deserialize)] pub struct DocumentNodeMetadata { #[serde(deserialize_with = "deserialize_node_persistent_metadata")] @@ -6530,7 +6140,7 @@ pub struct InputPersistentMetadata { pub widget_override: Option, /// An empty input name means to use the type as the name. pub input_name: String, - /// Displayed as the tooltip. + /// Displayed as the tooltip description. pub input_description: String, } @@ -6593,8 +6203,8 @@ impl InputPersistentMetadata { self } - pub fn with_description(mut self, tooltip: &str) -> Self { - self.input_description = tooltip.to_string(); + pub fn with_description(mut self, description: &str) -> Self { + self.input_description = description.to_string(); self } } @@ -6606,51 +6216,8 @@ struct InputTransientMetadata { // types: populated for each protonode after each } -// TODO: Eventually remove this migration document upgrade code -fn migrate_output_names<'de, D: serde::Deserializer<'de>>(deserializer: D) -> Result, D::Error> { - use serde::Deserialize; - - const REPLACEMENTS: &[(&str, &str)] = &[ - // Single to table data - ("VectorData", "Table"), - ("GraphicGroup", "Table"), - ("ImageFrame", "Table"), - // `ImageFrame` to `Image` rename - ("Instances", "Table"), - // `Instances` to `Table` rename - ("Instances", "Table"), - ("Instances", "Table"), - ("Instances", "Table"), - ("Instances", "Table"), - ("Table", "Table"), - ("Future>", "Future>"), - ("Future>", "Future>"), - ("Future>", "Future>"), - ("Future>", "Future>"), - ("Future>", "Future>"), - ("Future>", "Future>"), - ("Table", "Table"), - ("Table", "Table"), - ("Future>", "Future>"), - ("Table", "Table"), - ("Future>", "Future>"), - ]; - - let mut names = Vec::::deserialize(deserializer)?; - - for name in names.iter_mut() { - for (old, new) in REPLACEMENTS.iter() { - if name == old { - *name = new.to_string(); - } - } - } - - Ok(names) -} - /// Persistent metadata for each node in the network, which must be included when creating, serializing, and deserializing saving a node. -#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[derive(Default, Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub struct DocumentNodePersistentMetadata { /// The name of the node definition, as originally set by [`DocumentNodeDefinition`], used to display in the UI and to display the appropriate properties if no display name is set. // TODO: Used during serialization/deserialization to prevent storing implementation or inputs (and possible other fields) if they are the same as the definition. @@ -6663,12 +6230,7 @@ pub struct DocumentNodePersistentMetadata { /// Stores metadata to override the properties in the properties panel for each input. These can either be generated automatically based on the type, or with a custom function. /// Must match the length of node inputs pub input_metadata: Vec, - #[serde(deserialize_with = "migrate_output_names")] pub output_names: Vec, - /// Indicates to the UI if a primary output should be drawn for this node. - /// True for most nodes, but the Split Channels node is an example of a node that has multiple secondary outputs but no primary output. - #[serde(default = "return_true")] - pub has_primary_output: bool, /// Represents the lock icon for locking/unlocking the node in the graph UI. When locked, a node cannot be moved in the graph UI. #[serde(default)] pub locked: bool, @@ -6682,22 +6244,6 @@ pub struct DocumentNodePersistentMetadata { pub network_metadata: Option, } -impl Default for DocumentNodePersistentMetadata { - fn default() -> Self { - DocumentNodePersistentMetadata { - reference: None, - display_name: String::new(), - input_metadata: Vec::new(), - output_names: Vec::new(), - has_primary_output: true, - pinned: false, - locked: false, - node_type_metadata: NodeTypePersistentMetadata::default(), - network_metadata: None, - } - } -} - impl DocumentNodePersistentMetadata { pub fn is_layer(&self) -> bool { matches!(self.node_type_metadata, NodeTypePersistentMetadata::Layer(_)) @@ -6738,116 +6284,14 @@ impl From<(&str, &str)> for InputMetadata { } impl InputMetadata { - pub fn with_name_description_override(input_name: &str, tooltip: &str, widget_override: WidgetOverride) -> Self { + pub fn with_name_description_override(input_name: &str, description: &str, widget_override: WidgetOverride) -> Self { InputMetadata { - persistent_metadata: InputPersistentMetadata::default().with_name(input_name).with_description(tooltip).with_override(widget_override), + persistent_metadata: InputPersistentMetadata::default().with_name(input_name).with_description(description).with_override(widget_override), ..Default::default() } } } -/// Persistent metadata for each node in the network, which must be included when creating, serializing, and deserializing saving a node. -#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] -pub struct DocumentNodePersistentMetadataInputNames { - pub reference: Option, - #[serde(default)] - pub display_name: String, - pub input_names: Vec, - pub output_names: Vec, - #[serde(default = "return_true")] - pub has_primary_output: bool, - #[serde(default)] - pub locked: bool, - #[serde(default)] - pub pinned: bool, - pub node_type_metadata: NodeTypePersistentMetadata, - pub network_metadata: Option, -} - -impl From for DocumentNodePersistentMetadata { - fn from(old: DocumentNodePersistentMetadataInputNames) -> Self { - DocumentNodePersistentMetadata { - input_metadata: Vec::new(), - ..old.into() - } - } -} - -#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] -pub struct DocumentNodePersistentMetadataPropertiesRow { - pub reference: Option, - #[serde(default)] - pub display_name: String, - pub input_properties: Vec, - #[serde(deserialize_with = "migrate_output_names")] - pub output_names: Vec, - #[serde(default = "return_true")] - pub has_primary_output: bool, - #[serde(default)] - pub locked: bool, - #[serde(default)] - pub pinned: bool, - pub node_type_metadata: NodeTypePersistentMetadata, - pub network_metadata: Option, -} - -#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] -pub struct PropertiesRow { - pub input_data: HashMap, - pub widget_override: Option, - #[serde(skip)] - pub input_name: String, - #[serde(skip)] - pub input_description: String, -} - -impl From for DocumentNodePersistentMetadata { - fn from(old: DocumentNodePersistentMetadataPropertiesRow) -> Self { - let mut input_metadata = Vec::new(); - for properties_row in old.input_properties { - input_metadata.push(InputMetadata { - persistent_metadata: InputPersistentMetadata { - input_data: properties_row.input_data, - widget_override: properties_row.widget_override, - input_name: properties_row.input_name, - input_description: properties_row.input_description, - }, - ..Default::default() - }) - } - DocumentNodePersistentMetadata { - reference: old.reference, - display_name: old.display_name, - input_metadata: Vec::new(), - output_names: old.output_names, - has_primary_output: old.has_primary_output, - locked: old.locked, - pinned: old.pinned, - node_type_metadata: old.node_type_metadata, - network_metadata: old.network_metadata, - } - } -} - -fn deserialize_node_persistent_metadata<'de, D>(deserializer: D) -> Result -where - D: serde::Deserializer<'de>, -{ - use serde::Deserialize; - - let value = Value::deserialize(deserializer)?; - if let Ok(document) = serde_json::from_value::(value.clone()) { - return Ok(document); - }; - if let Ok(document) = serde_json::from_value::(value.clone()) { - return Ok(document.into()); - }; - match serde_json::from_value::(value.clone()) { - Ok(document) => Ok(document.into()), - Err(e) => Err(serde::de::Error::custom(e)), - } -} - #[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] pub enum NodeTypePersistentMetadata { Layer(LayerPersistentMetadata), @@ -6982,29 +6426,18 @@ pub enum LayerClickTargetTypes { // Preview, } -#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +#[derive(Debug, Clone, Default, PartialEq, serde::Serialize, serde::Deserialize)] pub struct NavigationMetadata { /// The current pan, and zoom state of the viewport's view of the node graph. /// Ensure `DocumentMessage::UpdateDocumentTransform` is called when the pan, zoom, or transform changes. pub node_graph_ptz: PTZ, - // TODO: Remove and replace with calculate_offset_transform from the node_graph_ptz. This will be difficult since it requires both the navigation message handler and the IPP + // TODO: Eventually remove once te click targets are extracted from the native render /// Transform from node graph space to viewport space. pub node_graph_to_viewport: DAffine2, - /// Top right of the node graph in viewport space + // TODO: Eventually remove once the import/export positions are extracted from the native render + /// The width of the node graph in viewport space #[serde(default)] - pub node_graph_top_right: DVec2, -} - -impl Default for NavigationMetadata { - fn default() -> NavigationMetadata { - // Default PTZ and transform - NavigationMetadata { - node_graph_ptz: PTZ::default(), - node_graph_to_viewport: DAffine2::IDENTITY, - // TODO: Eventually replace with footprint - node_graph_top_right: DVec2::ZERO, - } - } + pub node_graph_width: f64, } // PartialEq required by message handlers @@ -7022,3 +6455,34 @@ pub enum TransactionStatus { #[default] Finished, } + +#[cfg(test)] +mod network_interface_tests { + use crate::test_utils::test_prelude::*; + #[tokio::test] + async fn copy_isolated_node() { + let mut editor = EditorTestUtils::create(); + editor.new_document().await; + let rectangle = editor.create_node_by_name("Rectangle").await; + editor.handle_message(NodeGraphMessage::SelectedNodesSet { nodes: vec![rectangle] }).await; + let frontend_messages = editor.handle_message(NodeGraphMessage::Copy).await; + let serialized_nodes = frontend_messages + .into_iter() + .find_map(|msg| match msg { + FrontendMessage::TriggerClipboardWrite { content } => Some(content), + _ => None, + }) + .expect("copy message should be dispatched") + .strip_prefix("graphite/nodes: ") + .expect("should start with magic string") + .to_string(); + println!("Serialized: {serialized_nodes}"); + editor.handle_message(NodeGraphMessage::PasteNodes { serialized_nodes }).await; + let nodes = &mut editor.active_document_mut().network_interface.network_mut(&[]).unwrap().nodes; + let orignal = nodes.remove(&rectangle).expect("original node should exist"); + assert!( + nodes.values().any(|other| *other == orignal), + "duplicated node should exist\nother nodes: {nodes:#?}\norignal {orignal:#?}" + ); + } +} diff --git a/editor/src/messages/portfolio/document/utility_types/network_interface/deserialization.rs b/editor/src/messages/portfolio/document/utility_types/network_interface/deserialization.rs new file mode 100644 index 000000000..c1099a0f1 --- /dev/null +++ b/editor/src/messages/portfolio/document/utility_types/network_interface/deserialization.rs @@ -0,0 +1,142 @@ +use crate::messages::portfolio::document::utility_types::network_interface::{DocumentNodePersistentMetadata, InputMetadata, InputPersistentMetadata, NodeNetworkMetadata, NodeTypePersistentMetadata}; +use serde_json::Value; +use std::collections::HashMap; + +/// Persistent metadata for each node in the network, which must be included when creating, serializing, and deserializing saving a node. +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +pub struct DocumentNodePersistentMetadataInputNames { + pub reference: Option, + #[serde(default)] + pub display_name: String, + pub input_names: Vec, + pub output_names: Vec, + pub has_primary_output: bool, + #[serde(default)] + pub locked: bool, + #[serde(default)] + pub pinned: bool, + pub node_type_metadata: NodeTypePersistentMetadata, + pub network_metadata: Option, +} + +impl From for DocumentNodePersistentMetadata { + fn from(old: DocumentNodePersistentMetadataInputNames) -> Self { + DocumentNodePersistentMetadata { + input_metadata: Vec::new(), + reference: old.reference, + display_name: old.display_name, + output_names: old.output_names, + locked: old.locked, + pinned: old.pinned, + node_type_metadata: old.node_type_metadata, + network_metadata: old.network_metadata, + } + } +} + +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +pub struct DocumentNodePersistentMetadataPropertiesRow { + pub reference: Option, + #[serde(default)] + pub display_name: String, + pub input_properties: Vec, + pub output_names: Vec, + pub has_primary_output: bool, + #[serde(default)] + pub locked: bool, + #[serde(default)] + pub pinned: bool, + pub node_type_metadata: NodeTypePersistentMetadata, + pub network_metadata: Option, +} + +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +pub struct PropertiesRow { + pub input_data: HashMap, + pub widget_override: Option, + #[serde(skip)] + pub input_name: String, + #[serde(skip)] + pub input_description: String, +} + +impl From for DocumentNodePersistentMetadata { + fn from(old: DocumentNodePersistentMetadataPropertiesRow) -> Self { + let mut input_metadata = Vec::new(); + for properties_row in old.input_properties { + input_metadata.push(InputMetadata { + persistent_metadata: InputPersistentMetadata { + input_data: properties_row.input_data, + widget_override: properties_row.widget_override, + input_name: properties_row.input_name, + input_description: properties_row.input_description, + }, + ..Default::default() + }) + } + DocumentNodePersistentMetadata { + reference: old.reference, + display_name: old.display_name, + input_metadata: Vec::new(), + output_names: old.output_names, + locked: old.locked, + pinned: old.pinned, + node_type_metadata: old.node_type_metadata, + network_metadata: old.network_metadata, + } + } +} + +/// Persistent metadata for each node in the network, which must be included when creating, serializing, and deserializing saving a node. +#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)] +pub struct DocumentNodePersistentMetadataHasPrimaryOutput { + pub reference: Option, + #[serde(default)] + pub display_name: String, + pub input_metadata: Vec, + pub output_names: Vec, + pub has_primary_output: bool, + #[serde(default)] + pub locked: bool, + #[serde(default)] + pub pinned: bool, + pub node_type_metadata: NodeTypePersistentMetadata, + pub network_metadata: Option, +} + +impl From for DocumentNodePersistentMetadata { + fn from(old: DocumentNodePersistentMetadataHasPrimaryOutput) -> Self { + DocumentNodePersistentMetadata { + reference: old.reference, + display_name: old.display_name, + input_metadata: old.input_metadata, + output_names: old.output_names, + locked: old.locked, + pinned: old.pinned, + node_type_metadata: old.node_type_metadata, + network_metadata: old.network_metadata, + } + } +} + +pub fn deserialize_node_persistent_metadata<'de, D>(deserializer: D) -> Result +where + D: serde::Deserializer<'de>, +{ + use serde::Deserialize; + + let value = Value::deserialize(deserializer)?; + if let Ok(document) = serde_json::from_value::(value.clone()) { + return Ok(document.into()); + }; + if let Ok(document) = serde_json::from_value::(value.clone()) { + return Ok(document); + }; + if let Ok(document) = serde_json::from_value::(value.clone()) { + return Ok(document.into()); + }; + match serde_json::from_value::(value.clone()) { + Ok(document) => Ok(document.into()), + Err(e) => Err(serde::de::Error::custom(e)), + } +} diff --git a/editor/src/messages/portfolio/document/utility_types/network_interface/memo_network.rs b/editor/src/messages/portfolio/document/utility_types/network_interface/memo_network.rs new file mode 100644 index 000000000..e6f7b126f --- /dev/null +++ b/editor/src/messages/portfolio/document/utility_types/network_interface/memo_network.rs @@ -0,0 +1,57 @@ +use graph_craft::document::NodeNetwork; +use std::cell::Cell; +use std::hash::{Hash, Hasher}; + +#[derive(Debug, Default, Clone, PartialEq)] +pub struct MemoNetwork { + network: NodeNetwork, + hash_code: Cell>, +} + +impl<'de> serde::Deserialize<'de> for MemoNetwork { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + Ok(Self::new(NodeNetwork::deserialize(deserializer)?)) + } +} + +impl serde::Serialize for MemoNetwork { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + self.network.serialize(serializer) + } +} + +impl Hash for MemoNetwork { + fn hash(&self, state: &mut H) { + self.current_hash().hash(state); + } +} + +impl MemoNetwork { + pub fn network(&self) -> &NodeNetwork { + &self.network + } + + pub fn network_mut(&mut self) -> &mut NodeNetwork { + self.hash_code.set(None); + &mut self.network + } + + pub fn new(network: NodeNetwork) -> Self { + Self { network, hash_code: None.into() } + } + + pub fn current_hash(&self) -> u64 { + let mut hash_code = self.hash_code.get(); + if hash_code.is_none() { + hash_code = Some(self.network.current_hash()); + self.hash_code.set(hash_code); + } + hash_code.unwrap() + } +} diff --git a/editor/src/messages/portfolio/document/utility_types/network_interface/resolved_types.rs b/editor/src/messages/portfolio/document/utility_types/network_interface/resolved_types.rs new file mode 100644 index 000000000..97eb99ac1 --- /dev/null +++ b/editor/src/messages/portfolio/document/utility_types/network_interface/resolved_types.rs @@ -0,0 +1,379 @@ +use std::collections::{HashMap, HashSet}; + +use graph_craft::document::value::TaggedValue; +use graph_craft::document::{DocumentNodeImplementation, InlineRust, NodeInput}; +use graph_craft::proto::{GraphErrorType, GraphErrors}; +use graph_craft::{Type, concrete}; +use graphene_std::uuid::NodeId; +use interpreted_executor::dynamic_executor::{NodeTypes, ResolvedDocumentNodeTypesDelta}; +use interpreted_executor::node_registry::NODE_REGISTRY; + +use crate::messages::portfolio::document::node_graph::utility_types::FrontendGraphDataType; +use crate::messages::portfolio::document::utility_types::network_interface::{InputConnector, NodeNetworkInterface, OutputConnector}; + +// This file contains utility methods for interfacing with the resolved types returned from the compiler +#[derive(Debug, Default)] +pub struct ResolvedDocumentNodeTypes { + pub types: HashMap, NodeTypes>, + pub node_graph_errors: GraphErrors, +} + +impl ResolvedDocumentNodeTypes { + pub fn update(&mut self, delta: ResolvedDocumentNodeTypesDelta, errors: GraphErrors) { + for (path, node_type) in delta.add { + self.types.insert(path.to_vec(), node_type); + } + for path in delta.remove { + self.types.remove(&path.to_vec()); + } + self.node_graph_errors = errors; + } +} + +/// Represents the result of a type query for an input or output connector. +#[derive(Debug, Clone, PartialEq)] +pub enum TypeSource { + /// A type that has been compiled based on all upstream types. + Compiled(Type), + /// The type of value inputs. + TaggedValue(Type), + /// When the input/output is not compiled. The Type is from the document node definition, or () if it doesn't exist. + Unknown, + /// When there is a node graph error for the inputs to a node. The Type is from the document node definition, or () if it doesn't exist. + Invalid, + /// When there is an error in the algorithm for determining the input/output type (indicates a bug in the editor). + Error(&'static str), +} + +impl TypeSource { + /// The reduced set of frontend types for displaying color. + pub fn displayed_type(&self) -> FrontendGraphDataType { + if matches!(self, TypeSource::Invalid) { + return FrontendGraphDataType::Invalid; + }; + match self.compiled_nested_type() { + Some(nested_type) => match TaggedValue::from_type_or_none(nested_type) { + TaggedValue::U32(_) + | TaggedValue::U64(_) + | TaggedValue::F32(_) + | TaggedValue::F64(_) + | TaggedValue::DVec2(_) + | TaggedValue::F64Array4(_) + | TaggedValue::VecF64(_) + | TaggedValue::VecDVec2(_) + | TaggedValue::DAffine2(_) => FrontendGraphDataType::Number, + TaggedValue::Artboard(_) => FrontendGraphDataType::Artboard, + TaggedValue::Graphic(_) => FrontendGraphDataType::Graphic, + TaggedValue::Raster(_) => FrontendGraphDataType::Raster, + TaggedValue::Vector(_) => FrontendGraphDataType::Vector, + TaggedValue::Color(_) => FrontendGraphDataType::Color, + TaggedValue::Gradient(_) | TaggedValue::GradientStops(_) | TaggedValue::GradientTable(_) => FrontendGraphDataType::Gradient, + TaggedValue::String(_) => FrontendGraphDataType::Typography, + _ => FrontendGraphDataType::General, + }, + None => FrontendGraphDataType::General, + } + } + + pub fn compiled_nested_type(&self) -> Option<&Type> { + match self { + TypeSource::Compiled(compiled_type) => Some(compiled_type.nested_type()), + TypeSource::TaggedValue(value_type) => Some(value_type.nested_type()), + _ => None, + } + } + + /// Used when searching for nodes in the add Node popup. + pub fn add_node_string(self) -> Option { + self.compiled_nested_type().map(|ty| format!("type:{ty}")) + } + + /// The type to display in the tooltip label. + pub fn resolved_type_tooltip_string(&self) -> String { + match self { + TypeSource::Compiled(compiled_type) => format!("Data Type: {:?}", compiled_type.nested_type().to_string()), + TypeSource::TaggedValue(value_type) => format!("Data Type: {:?}", value_type.nested_type().to_string()), + TypeSource::Unknown => "Unknown Data Type".to_string(), + TypeSource::Invalid => "Invalid Type Combination".to_string(), + TypeSource::Error(_) => "Error Getting Data Type".to_string(), + } + } + + /// The type to display in the node row. + pub fn resolved_type_node_string(&self) -> String { + match self { + TypeSource::Compiled(compiled_type) => compiled_type.nested_type().to_string(), + TypeSource::TaggedValue(value_type) => value_type.nested_type().to_string(), + TypeSource::Unknown => "Unknown".to_string(), + TypeSource::Invalid => "Invalid".to_string(), + TypeSource::Error(_) => "Error".to_string(), + } + } +} + +impl NodeNetworkInterface { + fn input_has_error(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> bool { + match input_connector { + InputConnector::Node { node_id, input_index } => { + let Some(implementation) = self.implementation(node_id, network_path) else { + log::error!("Could not get implementation in input_has_error"); + return false; + }; + let node_path = [network_path, &[*node_id]].concat(); + match implementation { + DocumentNodeImplementation::Network(_) => { + let Some(map) = self.outward_wires(&node_path) else { return false }; + let Some(outward_wires) = map.get(&OutputConnector::Import(*input_index)) else { return false }; + outward_wires.clone().iter().any(|connector| match connector { + InputConnector::Node { node_id, input_index } => self.input_has_error(&InputConnector::node(*node_id, *input_index), &node_path), + InputConnector::Export(_) => false, + }) + } + DocumentNodeImplementation::ProtoNode(_) => self.resolved_types.node_graph_errors.iter().any(|error| { + error.node_path == node_path + && match &error.error { + GraphErrorType::InvalidImplementations { error_inputs, .. } => error_inputs.iter().any(|solution| solution.iter().any(|(index, _)| index == input_index)), + _ => true, + } + }), + + DocumentNodeImplementation::Extract => false, + } + } + InputConnector::Export(_) => false, + } + } + + pub fn input_type_not_invalid(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> TypeSource { + let Some(input) = self.input_from_connector(input_connector, network_path) else { + return TypeSource::Error("Could not get input from connector"); + }; + + match input { + NodeInput::Node { node_id, output_index } => { + let output_connector = OutputConnector::node(*node_id, *output_index); + + self.output_type(&output_connector, network_path) + } + + NodeInput::Value { tagged_value, .. } => TypeSource::TaggedValue(tagged_value.ty()), + NodeInput::Import { import_index, .. } => { + // Get the input type of the encapsulating node input + let Some((encapsulating_node, encapsulating_path)) = network_path.split_last() else { + return TypeSource::Error("Could not get type of import in document network since it has no imports"); + }; + self.input_type(&InputConnector::node(*encapsulating_node, *import_index), encapsulating_path) + } + NodeInput::Scope(_) => TypeSource::Compiled(concrete!(())), + NodeInput::Reflection(document_node_metadata) => TypeSource::Compiled(document_node_metadata.ty()), + NodeInput::Inline(_) => TypeSource::Compiled(concrete!(InlineRust)), + } + } + + /// Get the [`TypeSource`] for any InputConnector. + /// If the input is not compiled, then an Unknown or default from the definition is returned. + pub fn input_type(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> TypeSource { + // First check if there is an error with this node or any protonodes it is connected to + if self.input_has_error(input_connector, network_path) { + return TypeSource::Invalid; + } + self.input_type_not_invalid(input_connector, network_path) + } + + // Gets the default tagged value for an input. If its not compiled, then it tries to get a valid type. If there are no valid types, then it picks a random implementation + pub fn tagged_value_from_input(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> TaggedValue { + let guaranteed_type = match self.input_type(input_connector, network_path) { + TypeSource::Compiled(compiled) => compiled, + TypeSource::TaggedValue(value) => value, + TypeSource::Unknown | TypeSource::Invalid => { + // Pick a random type from the complete valid types + // TODO: Add a NodeInput::Indeterminate which can be resolved at compile time to be any type that prevents an error. This may require bidirectional typing. + self.complete_valid_input_types(input_connector, network_path) + .into_iter() + .min_by_key(|ty| ty.nested_type().to_string()) + // Pick a random type from the potential valid types + .or_else(|| { + self.potential_valid_input_types(input_connector, network_path) + .into_iter() + .min_by_key(|ty| ty.nested_type().to_string()) + }).unwrap_or(concrete!(())) + } + TypeSource::Error(e) => { + log::error!("Error getting tagged_value_from_input for {input_connector:?} {e}"); + concrete!(()) + } + }; + TaggedValue::from_type_or_none(&guaranteed_type) + } + + /// A list of all valid input types for this specific node. + pub fn potential_valid_input_types(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> Vec { + let InputConnector::Node { node_id, input_index } = input_connector else { + // An export can have any type connected to it + return vec![graph_craft::generic!(T)]; + }; + let Some(implementation) = self.implementation(node_id, network_path) else { + log::error!("Could not get node implementation in potential_valid_input_types"); + return Vec::new(); + }; + match implementation { + DocumentNodeImplementation::Network(_) => { + let nested_path = [network_path, &[*node_id]].concat(); + let Some(outward_wires) = self.outward_wires(&nested_path) else { + log::error!("Could not get outward wires in potential_valid_input_types"); + return Vec::new(); + }; + let Some(inputs_from_import) = outward_wires.get(&OutputConnector::Import(*input_index)) else { + log::error!("Could not get inputs from import in potential_valid_input_types"); + return Vec::new(); + }; + + let intersection: HashSet = inputs_from_import + .clone() + .iter() + .map(|input_connector| self.potential_valid_input_types(input_connector, &nested_path).into_iter().collect::>()) + .fold(None, |acc: Option>, set| match acc { + Some(acc_set) => Some(acc_set.intersection(&set).cloned().collect()), + None => Some(set), + }) + .unwrap_or_default(); + + intersection.into_iter().collect::>() + } + DocumentNodeImplementation::ProtoNode(proto_node_identifier) => { + let Some(implementations) = NODE_REGISTRY.get(proto_node_identifier) else { + log::error!("Protonode {proto_node_identifier:?} not found in registry in potential_valid_input_types"); + return Vec::new(); + }; + let number_of_inputs = self.number_of_inputs(node_id, network_path); + implementations + .iter() + .filter_map(|(node_io, _)| { + // Check if this NodeIOTypes implementation is valid for the other inputs + let valid_implementation = (0..number_of_inputs).filter(|iterator_index| iterator_index != input_index).all(|iterator_index| { + let input_type = self.input_type_not_invalid(&InputConnector::node(*node_id, iterator_index), network_path); + // TODO: Fix type checking for different call arguments + // For example a node input of (Footprint) -> Vector would not be compatible with a node that is called with () and returns Vector + node_io.inputs.get(iterator_index).map(|ty| ty.nested_type()) == input_type.compiled_nested_type() + }); + + // If so, then return the input at the chosen index + if valid_implementation { node_io.inputs.get(*input_index).cloned() } else { None } + }) + .collect::>() + } + DocumentNodeImplementation::Extract => { + log::error!("Input types for extract node not supported"); + Vec::new() + } + } + } + + /// Performs a downstream traversal to ensure input type will work in the full context of the graph. + pub fn complete_valid_input_types(&mut self, input_connector: &InputConnector, network_path: &[NodeId]) -> Vec { + match input_connector { + InputConnector::Node { node_id, input_index } => { + let Some(implementation) = self.implementation(node_id, network_path) else { + log::error!("Could not get node implementation for {:?} {} in complete_valid_input_types", network_path, *node_id); + return Vec::new(); + }; + match implementation { + DocumentNodeImplementation::Network(_) => self.valid_output_types(&OutputConnector::Import(input_connector.input_index()), &[network_path, &[*node_id]].concat()), + DocumentNodeImplementation::ProtoNode(proto_node_identifier) => { + let Some(implementations) = NODE_REGISTRY.get(proto_node_identifier) else { + log::error!("Protonode {proto_node_identifier:?} not found in registry in complete_valid_input_types"); + return Vec::new(); + }; + let valid_output_types = self.valid_output_types(&OutputConnector::node(*node_id, 0), network_path); + + implementations + .iter() + .filter_map(|(node_io, _)| { + if !valid_output_types.iter().any(|output_type| output_type.nested_type() == node_io.return_value.nested_type()) { + return None; + } + + let valid_inputs = (0..node_io.inputs.len()).filter(|iterator_index| iterator_index != input_index).all(|iterator_index| { + let input_type = self.input_type_not_invalid(&InputConnector::node(*node_id, iterator_index), network_path); + match input_type.compiled_nested_type() { + Some(input_type) => node_io.inputs.get(iterator_index).is_some_and(|node_io_input_type| node_io_input_type.nested_type() == input_type), + None => true, + } + }); + if valid_inputs { node_io.inputs.get(*input_index).cloned() } else { None } + }) + .collect::>() + } + DocumentNodeImplementation::Extract => Vec::new(), + } + } + InputConnector::Export(export_index) => { + match network_path.split_last() { + Some((encapsulating_node, encapsulating_path)) => self.valid_output_types(&OutputConnector::node(*encapsulating_node, *export_index), encapsulating_path), + None => { + // Valid types for the export are all types that can be fed into the render node + let render_node = graphene_std::render_node::render::IDENTIFIER; + let Some(implementations) = NODE_REGISTRY.get(&render_node) else { + log::error!("Protonode {render_node:?} not found in registry"); + return Vec::new(); + }; + implementations.keys().map(|types| types.inputs[1].clone()).collect() + } + } + } + } + } + + pub fn output_type(&mut self, output_connector: &OutputConnector, network_path: &[NodeId]) -> TypeSource { + match output_connector { + OutputConnector::Node { node_id, output_index } => { + // First try iterating upstream to the first protonode and try get its compiled type + let Some(implementation) = self.implementation(node_id, network_path) else { + return TypeSource::Error("Could not get implementation"); + }; + match implementation { + DocumentNodeImplementation::Network(_) => self.input_type(&InputConnector::Export(*output_index), &[network_path, &[*node_id]].concat()), + DocumentNodeImplementation::ProtoNode(_) => match self.resolved_types.types.get(&[network_path, &[*node_id]].concat()) { + Some(resolved_type) => TypeSource::Compiled(resolved_type.output.clone()), + None => TypeSource::Unknown, + }, + DocumentNodeImplementation::Extract => TypeSource::Compiled(concrete!(())), + } + } + OutputConnector::Import(import_index) => { + let Some((encapsulating_node, encapsulating_path)) = network_path.split_last() else { + return TypeSource::Error("Cannot get import type in document network since it has no imports"); + }; + let mut input_type = self.input_type(&InputConnector::node(*encapsulating_node, *import_index), encapsulating_path); + if matches!(input_type, TypeSource::Invalid) { + input_type = TypeSource::Unknown + } + input_type + } + } + } + + /// The valid output types are all types that are valid for each downstream connection. + fn valid_output_types(&mut self, output_connector: &OutputConnector, network_path: &[NodeId]) -> Vec { + let Some(outward_wires) = self.outward_wires(network_path) else { + log::error!("Could not get outward wires in valid_output_types"); + return Vec::new(); + }; + let Some(inputs_from_import) = outward_wires.get(output_connector) else { + log::error!("Could not get inputs from import in valid_output_types"); + return Vec::new(); + }; + + let intersection = inputs_from_import + .clone() + .iter() + .map(|input_connector| self.potential_valid_input_types(input_connector, network_path).into_iter().collect::>()) + .fold(None, |acc: Option>, set| match acc { + Some(acc_set) => Some(acc_set.intersection(&set).cloned().collect()), + None => Some(set), + }) + .unwrap_or_default(); + + intersection.into_iter().collect::>() + } +} diff --git a/editor/src/messages/portfolio/document/utility_types/nodes.rs b/editor/src/messages/portfolio/document/utility_types/nodes.rs index c120938a8..b98b9e919 100644 --- a/editor/src/messages/portfolio/document/utility_types/nodes.rs +++ b/editor/src/messages/portfolio/document/utility_types/nodes.rs @@ -35,7 +35,6 @@ impl serde::Serialize for JsRawBuffer { pub struct LayerPanelEntry { pub id: NodeId, pub alias: String, - pub tooltip: String, #[serde(rename = "inSelectedNetwork")] pub in_selected_network: bool, #[serde(rename = "childrenAllowed")] @@ -167,8 +166,8 @@ impl SelectedNodes { std::mem::replace(&mut self.0, new) } - pub fn filtered_selected_nodes(&self, node_ids: std::collections::HashSet) -> SelectedNodes { - SelectedNodes(self.0.iter().filter(|node_id| node_ids.contains(node_id)).cloned().collect()) + pub fn filtered_selected_nodes(&self, filter: impl Fn(&NodeId) -> bool) -> SelectedNodes { + SelectedNodes(self.0.iter().copied().filter(filter).collect()) } } diff --git a/editor/src/messages/portfolio/document/utility_types/transformation.rs b/editor/src/messages/portfolio/document/utility_types/transformation.rs index 36d7d734a..63e1b8baa 100644 --- a/editor/src/messages/portfolio/document/utility_types/transformation.rs +++ b/editor/src/messages/portfolio/document/utility_types/transformation.rs @@ -5,13 +5,13 @@ use crate::messages::portfolio::document::graph_operation::utility_types::{Modif use crate::messages::portfolio::document::utility_types::document_metadata::{DocumentMetadata, LayerNodeIdentifier}; use crate::messages::prelude::*; use crate::messages::tool::common_functionality::shape_editor::ShapeState; +use crate::messages::tool::transform_layer::transform_layer_message_handler::TransformationState; use crate::messages::tool::utility_types::ToolType; use glam::{DAffine2, DMat2, DVec2}; use graphene_std::renderer::Quad; use graphene_std::vector::misc::{HandleId, ManipulatorPointId}; use graphene_std::vector::{HandleExt, PointId, VectorModificationType}; use std::collections::{HashMap, VecDeque}; -use std::f64::consts::PI; #[derive(Debug, PartialEq, Clone, Copy)] struct AnchorPoint { @@ -156,22 +156,25 @@ pub struct Translation { } impl Translation { - pub fn to_dvec(self, transform: DAffine2, increment_mode: bool) -> DVec2 { + pub fn to_dvec(self, state: &TransformationState, document: &DocumentMessageHandler) -> DVec2 { + let document_to_viewport = document.metadata().document_to_viewport; let displacement = if let Some(value) = self.typed_distance { match self.constraint { - Axis::X => transform.transform_vector2(DVec2::new(value, 0.)), - Axis::Y => transform.transform_vector2(DVec2::new(0., value)), + Axis::X => DVec2::X * value, + Axis::Y => DVec2::Y * value, Axis::Both => self.dragged_distance, } } else { match self.constraint { Axis::Both => self.dragged_distance, - Axis::X => DVec2::new(self.dragged_distance.x, 0.), - Axis::Y => DVec2::new(0., self.dragged_distance.y), + Axis::X => DVec2::X * self.dragged_distance.dot(state.constraint_axis(self.constraint).unwrap_or_default()), + Axis::Y => DVec2::Y * self.dragged_distance.dot(state.constraint_axis(self.constraint).unwrap_or_default()), } }; - let displacement = transform.inverse().transform_vector2(displacement); - if increment_mode { displacement.round() } else { displacement } + let displacement_viewport = displacement * document_to_viewport.matrix2.y_axis.length(); // Values are local to the viewport but scaled so values are relative to the current scale. + let displacement_document = document_to_viewport.inverse().transform_vector2(displacement_viewport); + let displacement_document = if state.is_rounded_to_intervals { displacement_document.round() } else { displacement_document }; // It rounds in document space? + document_to_viewport.transform_vector2(displacement_document) } #[must_use] @@ -327,36 +330,19 @@ impl TransformType { impl TransformOperation { #[allow(clippy::too_many_arguments)] - pub fn apply_transform_operation(&self, selected: &mut Selected, increment_mode: bool, local: bool, quad: Quad, transform: DAffine2, pivot: DVec2, local_transform: DAffine2) { - let local_axis_transform_angle = (quad.top_left() - quad.top_right()).to_angle(); + pub fn apply_transform_operation(&self, selected: &mut Selected, state: &TransformationState, document: &DocumentMessageHandler) { if self != &TransformOperation::None { - let transformation = match self { - TransformOperation::Grabbing(translation) => { - let translate = DAffine2::from_translation(transform.transform_vector2(translation.to_dvec(local_transform, increment_mode))); - if local { - let resolved_angle = if local_axis_transform_angle > 0. { - local_axis_transform_angle - } else { - local_axis_transform_angle - PI - }; - DAffine2::from_angle(resolved_angle) * translate * DAffine2::from_angle(-resolved_angle) - } else { - translate - } - } - TransformOperation::Rotating(rotation) => DAffine2::from_angle(rotation.to_f64(increment_mode)), - TransformOperation::Scaling(scale) => { - if local { - DAffine2::from_angle(local_axis_transform_angle) * DAffine2::from_scale(scale.to_dvec(increment_mode)) * DAffine2::from_angle(-local_axis_transform_angle) - } else { - DAffine2::from_scale(scale.to_dvec(increment_mode)) - } - } + let mut transformation = match self { + TransformOperation::Grabbing(translation) => DAffine2::from_translation(translation.to_dvec(state, document)), + TransformOperation::Rotating(rotation) => DAffine2::from_angle(rotation.to_f64(state.is_rounded_to_intervals)), + TransformOperation::Scaling(scale) => DAffine2::from_scale(scale.to_dvec(state.is_rounded_to_intervals)), TransformOperation::None => unreachable!(), }; + let normalized_transform = state.local_to_viewport_transform(); + transformation = normalized_transform * transformation * normalized_transform.inverse(); - selected.update_transforms(transformation, Some(pivot), Some(*self)); - self.hints(selected.responses, local); + selected.update_transforms(transformation, Some(state.pivot_viewport(document)), Some(*self)); + self.hints(selected.responses, state.is_transforming_in_local_space); } } @@ -373,24 +359,27 @@ impl TransformOperation { } #[allow(clippy::too_many_arguments)] - pub fn constrain_axis(&mut self, axis: Axis, selected: &mut Selected, increment_mode: bool, mut local: bool, quad: Quad, transform: DAffine2, pivot: DVec2, local_transform: DAffine2) -> bool { - (*self, local) = match self { + pub fn constrain_axis(&mut self, axis: Axis, selected: &mut Selected, state: &TransformationState, document: &DocumentMessageHandler) -> bool { + let resulting_local; + (*self, resulting_local) = match self { TransformOperation::Grabbing(translation) => { - let (translation, local) = translation.with_constraint(axis, local); - (TransformOperation::Grabbing(translation), local) + let (translation, resulting_local) = translation.with_constraint(axis, state.is_transforming_in_local_space); + (TransformOperation::Grabbing(translation), resulting_local) } TransformOperation::Scaling(scale) => { - let (scale, local) = scale.with_constraint(axis, local); - (TransformOperation::Scaling(scale), local) + let (scale, resulting_local) = scale.with_constraint(axis, state.is_transforming_in_local_space); + (TransformOperation::Scaling(scale), resulting_local) } _ => (*self, false), }; - self.apply_transform_operation(selected, increment_mode, local, quad, transform, pivot, local_transform); - local + + self.apply_transform_operation(selected, state, document); + + resulting_local } #[allow(clippy::too_many_arguments)] - pub fn grs_typed(&mut self, typed: Option, selected: &mut Selected, increment_mode: bool, local: bool, quad: Quad, transform: DAffine2, pivot: DVec2, local_transform: DAffine2) { + pub fn grs_typed(&mut self, typed: Option, selected: &mut Selected, state: &TransformationState, document: &DocumentMessageHandler) { match self { TransformOperation::None => (), TransformOperation::Grabbing(translation) => translation.typed_distance = typed, @@ -398,7 +387,7 @@ impl TransformOperation { TransformOperation::Scaling(scale) => scale.typed_factor = typed, }; - self.apply_transform_operation(selected, increment_mode, local, quad, transform, pivot, local_transform); + self.apply_transform_operation(selected, state, document); } pub fn hints(&self, responses: &mut VecDeque, local: bool) { @@ -456,15 +445,14 @@ impl TransformOperation { } let mut typing_hints = vec![HintInfo::keys([Key::Minus], "Negate Direction")]; if self.can_begin_typing() { - typing_hints.push(HintInfo::keys([Key::NumKeys], "Enter Number")); + typing_hints.push(HintInfo::keys([Key::FakeKeyNumbers], "Enter Number")); if self.is_typing() { typing_hints.push(HintInfo::keys([Key::Backspace], "Delete Digit")); } } hint_groups.push(HintGroup(typing_hints)); - let hint_data = HintData(hint_groups); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + HintData(hint_groups).send_layout(responses); } pub fn is_constraint_to_axis(&self) -> bool { @@ -481,7 +469,7 @@ impl TransformOperation { } #[allow(clippy::too_many_arguments)] - pub fn negate(&mut self, selected: &mut Selected, increment_mode: bool, local: bool, quad: Quad, transform: DAffine2, pivot: DVec2, local_transform: DAffine2) { + pub fn negate(&mut self, selected: &mut Selected, state: &TransformationState, document: &DocumentMessageHandler) { if *self != TransformOperation::None { *self = match self { TransformOperation::Scaling(scale) => TransformOperation::Scaling(scale.negate()), @@ -489,7 +477,8 @@ impl TransformOperation { TransformOperation::Grabbing(translation) => TransformOperation::Grabbing(translation.negate()), _ => *self, }; - self.apply_transform_operation(selected, increment_mode, local, quad, transform, pivot, local_transform); + + self.apply_transform_operation(selected, state, document); } } } diff --git a/editor/src/messages/portfolio/document/utility_types/wires.rs b/editor/src/messages/portfolio/document/utility_types/wires.rs index ad6ab3284..7aad6977d 100644 --- a/editor/src/messages/portfolio/document/utility_types/wires.rs +++ b/editor/src/messages/portfolio/document/utility_types/wires.rs @@ -42,8 +42,8 @@ impl std::fmt::Display for GraphWireStyle { impl GraphWireStyle { pub fn tooltip_description(&self) -> &'static str { match self { - GraphWireStyle::GridAligned => "Wires follow the grid, running in straight lines between nodes", - GraphWireStyle::Direct => "Wires bend to run at an angle directly between nodes", + GraphWireStyle::GridAligned => "Wires follow the grid, running in straight lines between nodes.", + GraphWireStyle::Direct => "Wires bend to run at an angle directly between nodes.", } } diff --git a/editor/src/messages/portfolio/document_migration.rs b/editor/src/messages/portfolio/document_migration.rs index e18255863..3ffe8a943 100644 --- a/editor/src/messages/portfolio/document_migration.rs +++ b/editor/src/messages/portfolio/document_migration.rs @@ -5,21 +5,28 @@ use crate::messages::portfolio::document::node_graph::document_node_definitions: use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::network_interface::{InputConnector, NodeTemplate, OutputConnector}; use crate::messages::prelude::DocumentMessageHandler; -use bezier_rs::Subpath; -use glam::IVec2; +use glam::{DVec2, IVec2}; use graph_craft::document::DocumentNode; use graph_craft::document::{DocumentNodeImplementation, NodeInput, value::TaggedValue}; use graphene_std::ProtoNodeIdentifier; +use graphene_std::subpath::Subpath; use graphene_std::table::Table; use graphene_std::text::{TextAlign, TypesettingConfig}; use graphene_std::uuid::NodeId; use graphene_std::vector::Vector; use graphene_std::vector::style::{PaintOrder, StrokeAlign}; use std::collections::HashMap; +use std::f64::consts::PI; const TEXT_REPLACEMENTS: &[(&str, &str)] = &[ ("graphene_core::vector::vector_nodes::SamplePointsNode", "graphene_core::vector::SamplePolylineNode"), ("graphene_core::vector::vector_nodes::SubpathSegmentLengthsNode", "graphene_core::vector::SubpathSegmentLengthsNode"), + ("\"manual_composition\":null", "\"manual_composition\":{\"Generic\":\"T\"}"), + ( + "core::option::Option>", + "core::option::Option>", + ), + ("graphene_core::transform::Footprint", "graphene_core::transform::Footprint"), ]; pub struct NodeReplacement<'a> { @@ -28,232 +35,81 @@ pub struct NodeReplacement<'a> { } const NODE_REPLACEMENTS: &[NodeReplacement<'static>] = &[ - // artboard + // ================================ + // blending + // ================================ NodeReplacement { - node: graphene_std::artboard::create_artboard::IDENTIFIER, + node: graphene_std::blending_nodes::blending::IDENTIFIER, + aliases: &["graphene_core::raster::BlendingNode", "graphene_core::blending_nodes::BlendingNode"], + }, + NodeReplacement { + node: graphene_std::blending_nodes::blend_mode::IDENTIFIER, + aliases: &["graphene_core::raster::BlendModeNode", "graphene_core::blending_nodes::BlendModeNode"], + }, + NodeReplacement { + node: graphene_std::blending_nodes::opacity::IDENTIFIER, + aliases: &["graphene_core::raster::OpacityNode", "graphene_core::blending_nodes::OpacityNode"], + }, + // ================================ + // brush + // ================================ + NodeReplacement { + node: graphene_std::brush::brush::blit::IDENTIFIER, + aliases: &["graphene_brush::BlitNode", "graphene_std::brush::BlitNode", "graphene_brush::brush::BlitNode"], + }, + NodeReplacement { + node: graphene_std::brush::brush::brush::IDENTIFIER, + aliases: &["graphene_brush::BrushNode", "graphene_std::brush::BrushNode", "graphene_brush::brush::BrushNode"], + }, + NodeReplacement { + node: graphene_std::brush::brush::brush_stamp_generator::IDENTIFIER, aliases: &[ - "graphene_core::ConstructArtboardNode", - "graphene_core::graphic_element::ToArtboardNode", - "graphene_core::artboard::ToArtboardNode", + "graphene_brush::BrushStampGeneratorNode", + "graphene_std::brush::BrushStampGeneratorNode", + "graphene_brush::brush::BrushStampGeneratorNode", ], }, - // graphic + // ================================ + // gcore + // ================================ NodeReplacement { - node: graphene_std::graphic::to_graphic::IDENTIFIER, + node: graphene_std::animation::animation_time::IDENTIFIER, + aliases: &["graphene_core::animation::AnimationTimeNode"], + }, + NodeReplacement { + node: graphene_std::debug::clone::IDENTIFIER, + aliases: &["graphene_core::ops::CloneNode"], + }, + NodeReplacement { + node: graphene_std::extract_xy::extract_xy::IDENTIFIER, + aliases: &["graphene_core::ops::ExtractXyNode"], + }, + NodeReplacement { + node: graphene_std::ops::identity::IDENTIFIER, aliases: &[ - "graphene_core::ToGraphicGroupNode", - "graphene_core::graphic_element::ToGroupNode", - "graphene_core::graphic::ToGroupNode", + "graphene_core::transform::CullNode", + "graphene_core::transform::BoundlessFootprintNode", + "graphene_core::transform::FreezeRealTimeNode", + "graphene_core::transform_nodes::BoundlessFootprintNode", + "graphene_core::transform_nodes::FreezeRealTimeNode", ], }, NodeReplacement { - node: graphene_std::graphic::wrap_graphic::IDENTIFIER, - aliases: &[ - // Converted from "To Element" - "graphene_core::ToGraphicElementNode", - "graphene_core::graphic_element::ToElementNode", - "graphene_core::graphic::ToElementNode", - ], + node: graphene_std::memo::monitor::IDENTIFIER, + aliases: &["graphene_core::memo::MonitorNode"], }, NodeReplacement { - node: graphene_std::graphic::legacy_layer_extend::IDENTIFIER, - aliases: &[ - "graphene_core::graphic_element::LayerNode", - "graphene_core::graphic::LayerNode", - // Converted from "Append Artboard" - "graphene_core::AddArtboardNode", - "graphene_core::graphic_element::AppendArtboardNode", - "graphene_core::graphic::AppendArtboardNode", - "graphene_core::artboard::AppendArtboardNode", - ], + node: graphene_std::memo::memo::IDENTIFIER, + aliases: &["graphene_core::memo::MemoNode", "graphene_core::memo::ImpureMemoNode"], }, NodeReplacement { - node: graphene_std::graphic::flatten_graphic::IDENTIFIER, - aliases: &["graphene_core::graphic_element::FlattenGroupNode", "graphene_core::graphic::FlattenGroupNode"], + node: graphene_std::animation::real_time::IDENTIFIER, + aliases: &["graphene_core::animation::RealTimeNode"], }, NodeReplacement { - node: graphene_std::graphic::flatten_vector::IDENTIFIER, - aliases: &["graphene_core::graphic_element::FlattenVectorNode"], + node: graphene_std::logic::serialize::IDENTIFIER, + aliases: &["graphene_core::logic::SerializeNode"], }, - NodeReplacement { - node: graphene_std::graphic::index::IDENTIFIER, - aliases: &["graphene_core::graphic_element::IndexNode"], - }, - // math_nodes - NodeReplacement { - node: graphene_std::math_nodes::math::IDENTIFIER, - aliases: &["graphene_core::ops::MathNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::add::IDENTIFIER, - aliases: &["graphene_core::ops::AddNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::subtract::IDENTIFIER, - aliases: &["graphene_core::ops::SubtractNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::multiply::IDENTIFIER, - aliases: &["graphene_core::ops::MultiplyNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::divide::IDENTIFIER, - aliases: &["graphene_core::ops::DivideNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::modulo::IDENTIFIER, - aliases: &["graphene_core::ops::ModuloNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::exponent::IDENTIFIER, - aliases: &["graphene_core::ops::ExponentNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::root::IDENTIFIER, - aliases: &["graphene_core::ops::RootNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::logarithm::IDENTIFIER, - aliases: &["graphene_core::ops::LogarithmNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::sine::IDENTIFIER, - aliases: &["graphene_core::ops::SineNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::cosine::IDENTIFIER, - aliases: &["graphene_core::ops::CosineNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::tangent::IDENTIFIER, - aliases: &["graphene_core::ops::TangentNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::sine_inverse::IDENTIFIER, - aliases: &["graphene_core::ops::SineInverseNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::cosine_inverse::IDENTIFIER, - aliases: &["graphene_core::ops::CosineInverseNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::tangent_inverse::IDENTIFIER, - aliases: &["graphene_core::ops::TangentInverseNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::random::IDENTIFIER, - aliases: &["graphene_core::ops::RandomNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::to_u_32::IDENTIFIER, - aliases: &["graphene_core::ops::ToU32Node"], - }, - NodeReplacement { - node: graphene_std::math_nodes::to_u_64::IDENTIFIER, - aliases: &["graphene_core::ops::ToU64Node"], - }, - NodeReplacement { - node: graphene_std::math_nodes::to_f_64::IDENTIFIER, - aliases: &["graphene_core::ops::ToF64Node"], - }, - NodeReplacement { - node: graphene_std::math_nodes::round::IDENTIFIER, - aliases: &["graphene_core::ops::RoundNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::floor::IDENTIFIER, - aliases: &["graphene_core::ops::FloorNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::ceiling::IDENTIFIER, - aliases: &["graphene_core::ops::CeilingNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::min::IDENTIFIER, - aliases: &["graphene_core::ops::MinNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::max::IDENTIFIER, - aliases: &["graphene_core::ops::MaxNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::clamp::IDENTIFIER, - aliases: &["graphene_core::ops::ClampNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::equals::IDENTIFIER, - aliases: &["graphene_core::ops::EqualsNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::not_equals::IDENTIFIER, - aliases: &["graphene_core::ops::NotEqualsNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::less_than::IDENTIFIER, - aliases: &["graphene_core::ops::LessThanNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::greater_than::IDENTIFIER, - aliases: &["graphene_core::ops::GreaterThanNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::logical_or::IDENTIFIER, - aliases: &["graphene_core::ops::LogicalOrNode", "graphene_core::ops::LogicAndNode", "graphene_core::logic::LogicAndNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::logical_and::IDENTIFIER, - aliases: &["graphene_core::ops::LogicalAndNode", "graphene_core::ops::LogicNotNode", "graphene_core::logic::LogicNotNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::logical_not::IDENTIFIER, - aliases: &["graphene_core::ops::LogicalNotNode", "graphene_core::ops::LogicOrNode", "graphene_core::logic::LogicOrNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::bool_value::IDENTIFIER, - aliases: &["graphene_core::ops::BoolValueNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::number_value::IDENTIFIER, - aliases: &["graphene_core::ops::NumberValueNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::percentage_value::IDENTIFIER, - aliases: &["graphene_core::ops::PercentageValueNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::vec_2_value::IDENTIFIER, - aliases: &[ - "graphene_core::ops::ConstructVector2", - "graphene_core::ops::Vector2ValueNode", - "graphene_core::ops::CoordinateValueNode", - "graphene_math_nodes::CoordinateValueNode", - ], - }, - NodeReplacement { - node: graphene_std::vector::vec_2_to_point::IDENTIFIER, - aliases: &["graphene_core::vector::PositionToPointNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::color_value::IDENTIFIER, - aliases: &["graphene_core::ops::ColorValueNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::gradient_value::IDENTIFIER, - aliases: &["graphene_core::ops::GradientValueNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::sample_gradient::IDENTIFIER, - aliases: &["graphene_core::ops::SampleGradientNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::string_value::IDENTIFIER, - aliases: &["graphene_core::ops::StringValueNode"], - }, - NodeReplacement { - node: graphene_std::math_nodes::dot_product::IDENTIFIER, - aliases: &["graphene_core::ops::DotProductNode"], - }, - // debug NodeReplacement { node: graphene_std::debug::size_of::IDENTIFIER, aliases: &["graphene_core::ops::SizeOfNode"], @@ -262,250 +118,844 @@ const NODE_REPLACEMENTS: &[NodeReplacement<'static>] = &[ node: graphene_std::debug::some::IDENTIFIER, aliases: &["graphene_core::ops::SomeNode"], }, + NodeReplacement { + node: graphene_std::logic::string_concatenate::IDENTIFIER, + aliases: &["graphene_core::logic::StringConcatenateNode"], + }, + NodeReplacement { + node: graphene_std::logic::string_length::IDENTIFIER, + aliases: &["graphene_core::logic::StringLengthNode"], + }, + NodeReplacement { + node: graphene_std::logic::string_replace::IDENTIFIER, + aliases: &["graphene_core::logic::StringReplaceNode"], + }, + NodeReplacement { + node: graphene_std::logic::string_slice::IDENTIFIER, + aliases: &["graphene_core::logic::StringSliceNode"], + }, + NodeReplacement { + node: graphene_std::logic::string_split::IDENTIFIER, + aliases: &["graphene_core::logic::StringSplitNode"], + }, + NodeReplacement { + node: graphene_std::logic::switch::IDENTIFIER, + aliases: &["graphene_core::logic::SwitchNode"], + }, + NodeReplacement { + node: graphene_std::logic::to_string::IDENTIFIER, + aliases: &["graphene_core::logic::ToStringNode"], + }, NodeReplacement { node: graphene_std::debug::unwrap_option::IDENTIFIER, aliases: &["graphene_core::ops::UnwrapNode", "graphene_core::debug::UnwrapNode"], }, + // ================================ + // graphic + // ================================ NodeReplacement { - node: graphene_std::debug::clone::IDENTIFIER, - aliases: &["graphene_core::ops::CloneNode"], - }, - // ??? - NodeReplacement { - node: graphene_std::extract_xy::extract_xy::IDENTIFIER, - aliases: &["graphene_core::ops::ExtractXyNode"], + node: graphene_std::artboard::create_artboard::IDENTIFIER, + aliases: &[ + "graphene_core::artboard::CreateArtboardNode", + "graphene_core::ConstructArtboardNode", + "graphene_core::graphic_element::ToArtboardNode", + "graphene_core::artboard::ToArtboardNode", + ], }, NodeReplacement { - node: graphene_std::blending_nodes::blend_mode::IDENTIFIER, - aliases: &["graphene_core::raster::BlendModeNode"], + node: graphene_std::graphic::extend::IDENTIFIER, + aliases: &["graphene_core::graphic::graphic::ExtendNode", "graphene_core::graphic::ExtendNode"], }, NodeReplacement { - node: graphene_std::blending_nodes::opacity::IDENTIFIER, - aliases: &["graphene_core::raster::OpacityNode"], + node: graphene_std::graphic::flatten_graphic::IDENTIFIER, + aliases: &[ + "graphene_core::graphic::FlattenGraphicNode", + "graphene_core::graphic_element::FlattenGroupNode", + "graphene_core::graphic_types::FlattenGroupNode", + ], }, NodeReplacement { - node: graphene_std::blending_nodes::blending::IDENTIFIER, - aliases: &["graphene_core::raster::BlendingNode"], + node: graphene_std::graphic::flatten_vector::IDENTIFIER, + aliases: &["graphene_core::graphic::FlattenVectorNode", "graphene_core::graphic_element::FlattenVectorNode"], }, NodeReplacement { - node: graphene_std::vector::auto_tangents::IDENTIFIER, - aliases: &["graphene_core::vector::GenerateHandlesNode", "graphene_core::vector::RemoveHandlesNode"], + node: graphene_std::graphic::index_elements::IDENTIFIER, + aliases: &[ + "graphene_core::graphic_element::IndexNode", + "graphene_core::graphic::IndexNode", + "graphene_core::graphic::IndexElementsNode", + ], + }, + NodeReplacement { + node: graphene_std::graphic::legacy_layer_extend::IDENTIFIER, + aliases: &[ + "graphene_core::graphic_element::LayerNode", + "graphene_core::graphic_types::LayerNode", + // Converted from "Append Artboard" + "graphene_core::AddArtboardNode", + "graphene_core::graphic_element::AppendArtboardNode", + "graphene_core::graphic_types::AppendArtboardNode", + "graphene_core::artboard::AppendArtboardNode", + "graphene_core::graphic::LegacyLayerExtendNode", + ], + }, + NodeReplacement { + node: graphene_std::graphic_nodes::source_node_id::IDENTIFIER, + aliases: &["graphene_core::graphic::graphic::SourceNodeIdNode", "graphene_core::graphic::SourceNodeIdNode"], + }, + NodeReplacement { + node: graphene_std::graphic::to_graphic::IDENTIFIER, + aliases: &[ + "graphene_core::ToGraphicGroupNode", + "graphene_core::graphic_element::ToGroupNode", + "graphene_core::graphic_types::ToGroupNode", + "graphene_core::graphic::ToGraphicNode", + ], + }, + NodeReplacement { + node: graphene_std::graphic::wrap_graphic::IDENTIFIER, + aliases: &[ + // Converted from "To Element" + "graphene_core::ToGraphicElementNode", + "graphene_core::graphic_element::ToElementNode", + "graphene_core::graphic_types::ToElementNode", + "graphene_core::graphic::WrapGraphicNode", + ], + }, + // ================================ + // math + // ================================ + NodeReplacement { + node: graphene_std::math_nodes::absolute_value::IDENTIFIER, + aliases: &["graphene_math_nodes::AbsoluteValueNode", "graphene_core::ops::AbsoluteValueNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::add::IDENTIFIER, + aliases: &["graphene_math_nodes::AddNode", "graphene_core::ops::AddNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::bool_value::IDENTIFIER, + aliases: &["graphene_math_nodes::BoolValueNode", "graphene_core::ops::BoolValueNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::ceiling::IDENTIFIER, + aliases: &["graphene_math_nodes::CeilingNode", "graphene_core::ops::CeilingNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::clamp::IDENTIFIER, + aliases: &["graphene_math_nodes::ClampNode", "graphene_core::ops::ClampNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::color_value::IDENTIFIER, + aliases: &["graphene_math_nodes::ColorValueNode", "graphene_core::ops::ColorValueNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::cosine::IDENTIFIER, + aliases: &["graphene_math_nodes::CosineNode", "graphene_core::ops::CosineNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::cosine_inverse::IDENTIFIER, + aliases: &["graphene_math_nodes::CosineInverseNode", "graphene_core::ops::CosineInverseNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::divide::IDENTIFIER, + aliases: &["graphene_math_nodes::DivideNode", "graphene_core::ops::DivideNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::dot_product::IDENTIFIER, + aliases: &["graphene_math_nodes::DotProductNode", "graphene_core::ops::DotProductNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::equals::IDENTIFIER, + aliases: &["graphene_math_nodes::EqualsNode", "graphene_core::ops::EqualsNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::exponent::IDENTIFIER, + aliases: &["graphene_math_nodes::ExponentNode", "graphene_core::ops::ExponentNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::floor::IDENTIFIER, + aliases: &["graphene_math_nodes::FloorNode", "graphene_core::ops::FloorNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::footprint_value::IDENTIFIER, + aliases: &["graphene_math_nodes::FootprintValueNode", "graphene_core::ops::FootprintValueNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::gradient_table_value::IDENTIFIER, + aliases: &["graphene_math_nodes::GradientTableValueNode", "graphene_core::ops::GradientTableValueNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::gradient_value::IDENTIFIER, + aliases: &["graphene_math_nodes::GradientValueNode", "graphene_core::ops::GradientValueNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::greater_than::IDENTIFIER, + aliases: &["graphene_math_nodes::GreaterThanNode", "graphene_core::ops::GreaterThanNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::greatest_common_divisor::IDENTIFIER, + aliases: &[ + "graphene_math_nodes::GreatestCommonDivisor", + "graphene_core::ops::GreatestCommonDivisor", + "graphene_math_nodes::GreatestCommonDivisorNode", + ], + }, + NodeReplacement { + node: graphene_std::math_nodes::least_common_multiple::IDENTIFIER, + aliases: &[ + "graphene_math_nodes::LeastCommonMultiple", + "graphene_core::ops::LeastCommonMultiple", + "graphene_math_nodes::LeastCommonMultipleNode", + ], + }, + NodeReplacement { + node: graphene_std::math_nodes::length::IDENTIFIER, + aliases: &["graphene_math_nodes::LengthNode", "graphene_core::ops::LenghtNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::less_than::IDENTIFIER, + aliases: &["graphene_math_nodes::LessThanNode", "graphene_core::ops::LessThanNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::logarithm::IDENTIFIER, + aliases: &["graphene_math_nodes::LogarithmNode", "graphene_core::ops::LogarithmNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::logical_and::IDENTIFIER, + aliases: &[ + "graphene_core::ops::LogicalAndNode", + "graphene_core::ops::LogicNotNode", + "graphene_core::logic::LogicNotNode", + "graphene_math_nodes::LogicalAndNode", + ], + }, + NodeReplacement { + node: graphene_std::math_nodes::logical_not::IDENTIFIER, + aliases: &[ + "graphene_core::ops::LogicalNotNode", + "graphene_core::ops::LogicOrNode", + "graphene_core::logic::LogicOrNode", + "graphene_math_nodes::LogicalNotNode", + ], + }, + NodeReplacement { + node: graphene_std::math_nodes::logical_or::IDENTIFIER, + aliases: &[ + "graphene_core::ops::LogicalOrNode", + "graphene_core::ops::LogicAndNode", + "graphene_core::logic::LogicAndNode", + "graphene_math_nodes::LogicalOrNode", + ], + }, + NodeReplacement { + node: graphene_std::math_nodes::math::IDENTIFIER, + aliases: &["graphene_math_nodes::MathNode", "graphene_core::ops::MathNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::max::IDENTIFIER, + aliases: &["graphene_math_nodes::MaxNode", "graphene_core::ops::MaxNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::min::IDENTIFIER, + aliases: &["graphene_math_nodes::MinNode", "graphene_core::ops::MinNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::modulo::IDENTIFIER, + aliases: &["graphene_math_nodes::ModuloNode", "graphene_core::ops::ModuloNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::multiply::IDENTIFIER, + aliases: &["graphene_math_nodes::MultiplyNode", "graphene_core::ops::MultiplyNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::normalize::IDENTIFIER, + aliases: &["graphene_math_nodes::NormalizeNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::not_equals::IDENTIFIER, + aliases: &["graphene_math_nodes::NotEqualsNode", "graphene_core::ops::NotEqualsNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::number_value::IDENTIFIER, + aliases: &["graphene_math_nodes::NumberValueNode", "graphene_core::ops::NumberValueNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::percentage_value::IDENTIFIER, + aliases: &["graphene_math_nodes::PercentageValueNode", "graphene_core::ops::PercentageValueNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::random::IDENTIFIER, + aliases: &["graphene_math_nodes::RandomNode", "graphene_core::ops::RandomNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::remap::IDENTIFIER, + aliases: &["graphene_math_nodes::RemapNode", "graphene_core::ops::RemapNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::root::IDENTIFIER, + aliases: &["graphene_math_nodes::RootNode", "graphene_core::ops::RootNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::round::IDENTIFIER, + aliases: &["graphene_math_nodes::RoundNode", "graphene_core::ops::RoundNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::sample_gradient::IDENTIFIER, + aliases: &["graphene_math_nodes::SampleGradientNode", "graphene_core::ops::SampleGradientNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::sine::IDENTIFIER, + aliases: &["graphene_math_nodes::SineNode", "graphene_core::ops::SineNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::sine_inverse::IDENTIFIER, + aliases: &["graphene_math_nodes::SineInverseNode", "graphene_core::ops::SineInverseNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::string_value::IDENTIFIER, + aliases: &["graphene_math_nodes::StringValueNode", "graphene_core::ops::StringValueNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::subtract::IDENTIFIER, + aliases: &["graphene_math_nodes::SubtractNode", "graphene_core::ops::SubtractNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::tangent::IDENTIFIER, + aliases: &["graphene_math_nodes::TangentNode", "graphene_core::ops::TangentNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::tangent_inverse::IDENTIFIER, + aliases: &["graphene_math_nodes::TangentInverseNode", "graphene_core::ops::TangentInverseNode"], + }, + NodeReplacement { + node: graphene_std::math_nodes::to_f_64::IDENTIFIER, + aliases: &["graphene_math_nodes::ToF64Node", "graphene_core::ops::ToF64Node"], + }, + NodeReplacement { + node: graphene_std::math_nodes::to_u_32::IDENTIFIER, + aliases: &["graphene_math_nodes::ToU32Node", "graphene_core::ops::ToU32Node", "math_nodes::ToU32Node"], + }, + NodeReplacement { + node: graphene_std::math_nodes::to_u_64::IDENTIFIER, + aliases: &["graphene_math_nodes::ToU64Node", "graphene_core::ops::ToU64Node"], + }, + NodeReplacement { + node: graphene_std::math_nodes::vec_2_value::IDENTIFIER, + aliases: &[ + "graphene_math_nodes::Vec2ValueNode", + "graphene_core::ops::ConstructVector2", + "graphene_core::ops::Vector2ValueNode", + "graphene_core::ops::CoordinateValueNode", + "graphene_math_nodes::CoordinateValueNode", + ], + }, + // ================================ + // path-bool + // ================================ + NodeReplacement { + node: graphene_std::path_bool::boolean_operation::IDENTIFIER, + aliases: &["graphene_path_bool::BooleanOperationNode", "graphene_std::vector::BooleanOperationNode"], + }, + // ================================ + // raster + // ================================ + NodeReplacement { + node: graphene_std::raster_nodes::adjustments::black_and_white::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::adjustments::BlackAndWhiteNode", + "graphene_core::raster::adjustments::BlackAndWhiteNode", + "graphene_core::raster::BlackAndWhiteNode", + ], }, - // graphene_raster_nodes::blending_nodes NodeReplacement { node: graphene_std::raster_nodes::blending_nodes::blend::IDENTIFIER, aliases: &[ "graphene_raster_nodes::adjustments::BlendNode", + "raster_nodes::adjustments::BlendNode", "graphene_core::raster::adjustments::BlendNode", "graphene_core::raster::BlendNode", + "graphene_raster_nodes::blending_nodes::BlendNode", ], }, NodeReplacement { - node: graphene_std::raster_nodes::blending_nodes::blend_color_pair::IDENTIFIER, - aliases: &["graphene_raster_nodes::adjustments::BlendColorPairNode", "graphene_core::raster::BlendColorPairNode"], + node: graphene_std::raster_nodes::filter::blur::IDENTIFIER, + aliases: &["graphene_raster_nodes::filter::BlurNode", "graphene_std::filter::BlurNode"], + }, + NodeReplacement { + node: graphene_std::raster_nodes::adjustments::brightness_contrast::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::adjustments::BrightnessContrastNode", + "graphene_core::raster::adjustments::BrightnessContrastNode", + ], + }, + NodeReplacement { + node: graphene_std::raster_nodes::adjustments::brightness_contrast_classic::IDENTIFIER, + aliases: &["graphene_raster_nodes::adjustments::BrightnessContrastClassicNode"], + }, + NodeReplacement { + node: graphene_std::raster_nodes::adjustments::channel_mixer::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::adjustments::ChannelMixerNode", + "graphene_core::raster::adjustments::ChannelMixerNode", + "graphene_core::raster::ChannelMixerNode", + ], }, NodeReplacement { node: graphene_std::raster_nodes::blending_nodes::color_overlay::IDENTIFIER, aliases: &[ "graphene_raster_nodes::adjustments::ColorOverlayNode", - "graphene_core::raster::adjustments::ColorOverlayNode", "graphene_raster_nodes::generate_curves::ColorOverlayNode", + "raster_nodes::adjustments::ColorOverlayNode", + "graphene_core::raster::adjustments::ColorOverlayNode", + "raster_nodes::generate_curves::ColorOverlayNode", + "graphene_raster_nodes::blending_nodes::ColorOverlayNode", ], }, - // graphene_raster_nodes::adjustments NodeReplacement { - node: graphene_std::raster_nodes::adjustments::luminance::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::LuminanceNode", "graphene_core::raster::LuminanceNode"], + node: graphene_std::raster_nodes::std_nodes::combine_channels::IDENTIFIER, + aliases: &["graphene_raster_nodes::std_nodes::CombineChannelsNode", "graphene_std::raster::CombineChannelsNode"], + }, + NodeReplacement { + node: graphene_std::raster_nodes::dehaze::dehaze::IDENTIFIER, + aliases: &["graphene_raster_nodes::dehaze::DehazeNode", "graphene_std::dehaze::DehazeNode"], + }, + NodeReplacement { + node: graphene_std::raster_nodes::std_nodes::empty_image::IDENTIFIER, + aliases: &["graphene_raster_nodes::std_nodes::EmptyImageNode", "graphene_std::raster::EmptyImageNode"], + }, + NodeReplacement { + node: graphene_std::raster_nodes::adjustments::exposure::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::adjustments::ExposureNode", + "graphene_core::raster::adjustments::ExposureNode", + "graphene_core::raster::ExposureNode", + ], + }, + NodeReplacement { + node: graphene_std::raster_nodes::std_nodes::extend_image_to_bounds::IDENTIFIER, + aliases: &["graphene_raster_nodes::std_nodes::ExtendImageToBoundsNode", "graphene_std::raster::ExtendImageToBoundsNode"], }, NodeReplacement { node: graphene_std::raster_nodes::adjustments::extract_channel::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::ExtractChannelNode", "graphene_core::raster::ExtractChannelNode"], + aliases: &[ + "graphene_raster_nodes::adjustments::ExtractChannelNode", + "graphene_core::raster::adjustments::ExtractChannelNode", + "graphene_core::raster::ExtractChannelNode", + ], }, NodeReplacement { - node: graphene_std::raster_nodes::adjustments::make_opaque::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::MakeOpaqueNode", "graphene_core::raster::ExtractOpaqueNode"], + node: graphene_std::raster_nodes::adjustments::gamma_correction::IDENTIFIER, + aliases: &["graphene_raster_nodes::adjustments::GammaCorrectionNode", "graphene_core::raster::adjustments::GammaCorrectionNode"], }, NodeReplacement { - node: graphene_std::raster_nodes::adjustments::brightness_contrast::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::BrightnessContrastNode"], + node: graphene_std::raster_nodes::generate_curves::generate_curves::IDENTIFIER, + aliases: &["graphene_raster_nodes::generate_curves::GenerateCurvesNode", "graphene_core::raster::adjustments::GenerateCurvesNode"], }, NodeReplacement { - node: graphene_std::raster_nodes::adjustments::levels::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::LevelsNode", "graphene_core::raster::LevelsNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::adjustments::black_and_white::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::BlackAndWhiteNode", "graphene_core::raster::BlackAndWhiteNode"], + node: graphene_std::raster_nodes::gradient_map::gradient_map::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::gradient_map::GradientMapNode", + "graphene_raster_nodes::adjustments::GradientMapNode", + "raster_nodes::gradient_map::GradientMapNode", + "raster_nodes::adjustments::GradientMapNode", + "graphene_core::raster::adjustments::GradientMapNode", + "graphene_core::raster::GradientMapNode", + ], }, NodeReplacement { node: graphene_std::raster_nodes::adjustments::hue_saturation::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::HueSaturationNode", "graphene_core::raster::HueSaturationNode"], + aliases: &[ + "graphene_raster_nodes::adjustments::HueSaturationNode", + "graphene_core::raster::adjustments::HueSaturationNode", + "graphene_core::raster::HueSaturationNode", + ], + }, + NodeReplacement { + node: graphene_std::raster_nodes::image_color_palette::image_color_palette::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::image_color_palette::ImageColorPaletteNode", + "graphene_std::image_color_palette::ImageColorPaletteNode", + ], + }, + NodeReplacement { + node: graphene_std::raster_nodes::std_nodes::image_value::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::std_nodes::ImageValueNode", + "graphene_std::raster::ImageValueNode", + "graphene_std::raster::ImageNode", + ], }, NodeReplacement { node: graphene_std::raster_nodes::adjustments::invert::IDENTIFIER, aliases: &[ + "graphene_raster_nodes::adjustments::InvertNode", "graphene_core::raster::adjustments::InvertNode", "graphene_core::raster::InvertNode", "graphene_core::raster::InvertRGBNode", ], }, NodeReplacement { - node: graphene_std::raster_nodes::adjustments::threshold::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::ThresholdNode", "graphene_core::raster::ThresholdNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::adjustments::vibrance::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::VibranceNode", "graphene_core::raster::VibranceNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::adjustments::channel_mixer::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::ChannelMixerNode", "graphene_core::raster::ChannelMixerNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::adjustments::selective_color::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::SelectiveColorNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::adjustments::posterize::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::PosterizeNode", "graphene_core::raster::PosterizeNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::adjustments::exposure::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::ExposureNode", "graphene_core::raster::ExposureNode"], - }, - // graphene_raster_nodes::* - NodeReplacement { - node: graphene_std::raster_nodes::gradient_map::gradient_map::IDENTIFIER, + node: graphene_std::raster_nodes::adjustments::levels::IDENTIFIER, aliases: &[ - "graphene_raster_nodes::gradient_map::GradientMapNode", - "graphene_raster_nodes::adjustments::GradientMapNode", - "graphene_core::raster::adjustments::GradientMapNode", - "graphene_core::raster::GradientMapNode", + "graphene_raster_nodes::adjustments::LevelsNode", + "graphene_core::raster::adjustments::LevelsNode", + "graphene_core::raster::LevelsNode", ], }, NodeReplacement { - node: graphene_std::raster_nodes::generate_curves::generate_curves::IDENTIFIER, - aliases: &["graphene_core::raster::adjustments::GenerateCurvesNode"], + node: graphene_std::raster_nodes::adjustments::luminance::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::adjustments::LuminanceNode", + "graphene_core::raster::adjustments::LuminanceNode", + "graphene_core::raster::LuminanceNode", + ], }, NodeReplacement { - node: graphene_std::raster_nodes::dehaze::dehaze::IDENTIFIER, - aliases: &["graphene_std::dehaze::DehazeNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::filter::blur::IDENTIFIER, - aliases: &["graphene_std::filter::BlurNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::image_color_palette::image_color_palette::IDENTIFIER, - aliases: &["graphene_std::image_color_palette::ImageColorPaletteNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::std_nodes::sample_image::IDENTIFIER, - aliases: &["graphene_std::raster::SampleImageNode", "graphene_std::raster::SampleNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::std_nodes::combine_channels::IDENTIFIER, - aliases: &["graphene_std::raster::CombineChannelsNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::std_nodes::mask::IDENTIFIER, - aliases: &["graphene_std::raster::MaskNode", "graphene_std::raster::MaskImageNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::std_nodes::extend_image_to_bounds::IDENTIFIER, - aliases: &["graphene_std::raster::ExtendImageToBoundsNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::std_nodes::empty_image::IDENTIFIER, - aliases: &["graphene_std::raster::EmptyImageNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::std_nodes::image_value::IDENTIFIER, - aliases: &["graphene_std::raster::ImageValueNode", "graphene_std::raster::ImageNode"], - }, - NodeReplacement { - node: graphene_std::raster_nodes::std_nodes::noise_pattern::IDENTIFIER, - aliases: &["graphene_std::raster::NoisePatternNode"], + node: graphene_std::raster_nodes::adjustments::make_opaque::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::adjustments::MakeOpaqueNode", + "graphene_core::raster::adjustments::MakeOpaqueNode", + "graphene_core::raster::ExtractOpaqueNode", + ], }, NodeReplacement { node: graphene_std::raster_nodes::std_nodes::mandelbrot::IDENTIFIER, - aliases: &["graphene_std::raster::MandelbrotNode"], + aliases: &["graphene_raster_nodes::std_nodes::MandelbrotNode", "graphene_std::raster::MandelbrotNode"], }, + NodeReplacement { + node: graphene_std::raster_nodes::std_nodes::mask::IDENTIFIER, + aliases: &["graphene_raster_nodes::std_nodes::MaskNode", "graphene_std::raster::MaskNode", "graphene_std::raster::MaskImageNode"], + }, + NodeReplacement { + node: graphene_std::raster_nodes::adjustments::posterize::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::adjustments::PosterizeNode", + "graphene_core::raster::adjustments::PosterizeNode", + "graphene_core::raster::PosterizeNode", + ], + }, + NodeReplacement { + node: graphene_std::raster_nodes::std_nodes::noise_pattern::IDENTIFIER, + aliases: &["graphene_raster_nodes::std_nodes::NoisePatternNode", "graphene_std::raster::NoisePatternNode"], + }, + NodeReplacement { + node: graphene_std::raster_nodes::std_nodes::sample_image::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::std_nodes::SampleImageNode", + "graphene_std::raster::SampleImageNode", + "graphene_std::raster::SampleNode", + ], + }, + NodeReplacement { + node: graphene_std::raster_nodes::adjustments::selective_color::IDENTIFIER, + aliases: &["graphene_raster_nodes::adjustments::SelectiveColorNode", "graphene_core::raster::adjustments::SelectiveColorNode"], + }, + NodeReplacement { + node: graphene_std::raster_nodes::adjustments::threshold::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::adjustments::ThresholdNode", + "graphene_core::raster::adjustments::ThresholdNode", + "graphene_core::raster::ThresholdNode", + ], + }, + NodeReplacement { + node: graphene_std::raster_nodes::adjustments::vibrance::IDENTIFIER, + aliases: &[ + "graphene_raster_nodes::adjustments::VibranceNode", + "graphene_core::raster::adjustments::VibranceNode", + "graphene_core::raster::VibranceNode", + ], + }, + // ================================ // text + // ================================ NodeReplacement { node: graphene_std::text::text::IDENTIFIER, - aliases: &["graphene_core::text::TextGeneratorNode"], + aliases: &["graphene_core::text::text::TextNode", "graphene_core::text::TextGeneratorNode", "graphene_core::text::TextNode"], }, + // ================================ // transform + // ================================ + NodeReplacement { + node: graphene_std::transform_nodes::decompose_rotation::IDENTIFIER, + aliases: &[ + "graphene_core::transform_nodes::RotationScaleNode", + "graphene_core::transform::RotationScaleNode", + "graphene_core::transform_nodes::DecomposeRotationNode", + ], + }, + NodeReplacement { + node: graphene_std::transform_nodes::decompose_scale::IDENTIFIER, + aliases: &["graphene_core::transform_nodes::DecomposeScaleNode", "graphene_core::transform::DecomposeScaleNode"], + }, + NodeReplacement { + node: graphene_std::transform_nodes::decompose_translation::IDENTIFIER, + aliases: &["graphene_core::transform_nodes::DecomposeTranslationNode", "graphene_core::transform::DecomposeTranslationNode"], + }, + NodeReplacement { + node: graphene_std::transform_nodes::extract_transform::IDENTIFIER, + aliases: &[ + "graphene_core::transform_nodes::ExtractTransformNode", + "graphene_core::transform::ExtractTransformNode", + "graphene_core::vector::ExtractTransformNode", + ], + }, + NodeReplacement { + node: graphene_std::transform_nodes::invert_transform::IDENTIFIER, + aliases: &["graphene_core::transform_nodes::InvertTransformNode", "graphene_core::transform::InvertTransformNode"], + }, NodeReplacement { node: graphene_std::transform_nodes::replace_transform::IDENTIFIER, - aliases: &["graphene_core::transform::SetTransformNode", "graphene_core::transform::ReplaceTransformNode"], + aliases: &[ + "graphene_core::transform_nodes::ReplaceTransformNode", + "graphene_core::transform::SetTransformNode", + "graphene_core::transform::ReplaceTransformNode", + ], }, NodeReplacement { node: graphene_std::transform_nodes::transform::IDENTIFIER, - aliases: &["graphene_core::transform::TransformNode"], + aliases: &["graphene_core::transform_nodes::TransformNode", "graphene_core::transform::TransformNode"], + }, + // ================================ + // vector + // ================================ + NodeReplacement { + node: graphene_std::vector::apply_transform::IDENTIFIER, + aliases: &["graphene_core::vector::ApplyTransformNode", "graphene_core::vector::vector_modification::ApplyTransformNode"], }, NodeReplacement { - node: graphene_std::transform_nodes::boundless_footprint::IDENTIFIER, - aliases: &["graphene_core::transform::BoundlessFootprintNode"], + node: graphene_std::vector::area::IDENTIFIER, + aliases: &["graphene_core::vector::AreaNode"], }, NodeReplacement { - node: graphene_std::transform_nodes::freeze_real_time::IDENTIFIER, - aliases: &["graphene_core::transform::FreezeRealTimeNode"], - }, - // ??? - NodeReplacement { - node: graphene_std::vector::spline::IDENTIFIER, - aliases: &["graphene_core::vector::SplinesFromPointsNode"], + node: graphene_std::vector::assign_colors::IDENTIFIER, + aliases: &["graphene_core::vector::AssignColorsNode"], }, NodeReplacement { - node: graphene_std::vector::generator_nodes::ellipse::IDENTIFIER, - aliases: &["graphene_core::vector::generator_nodes::EllipseGenerator"], + node: graphene_std::vector::auto_tangents::IDENTIFIER, + aliases: &[ + "graphene_core::vector::vector_nodes::AutoTangentsNode", + "graphene_core::vector::AutoTangentsNode", + "graphene_core::vector::GenerateHandlesNode", + "graphene_core::vector::RemoveHandlesNode", + ], }, NodeReplacement { - node: graphene_std::vector::generator_nodes::line::IDENTIFIER, - aliases: &["graphene_core::vector::generator_nodes::LineGenerator"], + node: graphene_std::vector::bevel::IDENTIFIER, + aliases: &["graphene_core::vector::BevelNode"], }, NodeReplacement { - node: graphene_std::vector::generator_nodes::rectangle::IDENTIFIER, - aliases: &["graphene_core::vector::generator_nodes::RectangleGenerator"], + node: graphene_std::vector::bounding_box::IDENTIFIER, + aliases: &["graphene_core::vector::BoundingBoxNode"], }, NodeReplacement { - node: graphene_std::vector::generator_nodes::regular_polygon::IDENTIFIER, - aliases: &["graphene_core::vector::generator_nodes::RegularPolygonGenerator"], + node: graphene_std::vector::box_warp::IDENTIFIER, + aliases: &["graphene_core::vector::BoxWarpNode"], }, NodeReplacement { - node: graphene_std::vector::generator_nodes::star::IDENTIFIER, - aliases: &["graphene_core::vector::generator_nodes::StarGenerator"], + node: graphene_std::vector::centroid::IDENTIFIER, + aliases: &["graphene_core::vector::CentroidNode"], }, NodeReplacement { - node: graphene_std::ops::identity::IDENTIFIER, - aliases: &["graphene_core::transform::CullNode"], + node: graphene_std::vector::circular_repeat::IDENTIFIER, + aliases: &["graphene_core::vector::CircularRepeatNode"], + }, + NodeReplacement { + node: graphene_std::vector::close_path::IDENTIFIER, + aliases: &["graphene_core::vector::ClosePathNode"], + }, + NodeReplacement { + node: graphene_std::vector::copy_to_points::IDENTIFIER, + aliases: &["graphene_core::vector::CopyToPointsNode"], + }, + NodeReplacement { + node: graphene_std::vector::count_elements::IDENTIFIER, + aliases: &["graphene_core::vector::CountElementsNode"], + }, + NodeReplacement { + node: graphene_std::vector::cut_path::IDENTIFIER, + aliases: &["graphene_core::vector::vector_nodes::SplitPathNode", "graphene_core::vector::SplitPathNode"], + }, + NodeReplacement { + node: graphene_std::vector::cut_segments::IDENTIFIER, + aliases: &[ + "graphene_core::vector::vector_nodes::SplitSegmentsNode", + "graphene_core::vector::SplitSegmentsNode", + "graphene_core::vector::CutSegmentsNode", + ], + }, + NodeReplacement { + node: graphene_std::vector::dimensions::IDENTIFIER, + aliases: &["graphene_core::vector::DimensionsNode"], + }, + NodeReplacement { + node: graphene_std::vector_nodes::fill::IDENTIFIER, + aliases: &["graphene_core::vector::vector_nodes::FillNode", "graphene_core::vector::FillNode"], }, NodeReplacement { node: graphene_std::vector::flatten_path::IDENTIFIER, - aliases: &["graphene_core::vector::FlattenVectorElementsNode"], + aliases: &[ + "graphene_core::vector::vector_nodes::FlattenPathNode", + "graphene_core::vector::FlattenVectorElementsNode", + "graphene_core::vector::FlattenPathNode", + ], }, NodeReplacement { - node: graphene_std::path_bool::boolean_operation::IDENTIFIER, - aliases: &["graphene_std::vector::BooleanOperationNode"], + node: graphene_std::vector::generator_nodes::arc::IDENTIFIER, + aliases: &["graphene_core::vector::generator_nodes::ArcNode"], + }, + NodeReplacement { + node: graphene_std::vector::generator_nodes::circle::IDENTIFIER, + aliases: &["graphene_core::vector::generator_nodes::CircleNode"], + }, + NodeReplacement { + node: graphene_std::vector::generator_nodes::ellipse::IDENTIFIER, + aliases: &["graphene_core::vector::generator_nodes::EllipseNode"], + }, + NodeReplacement { + node: graphene_std::vector::generator_nodes::grid::IDENTIFIER, + aliases: &["graphene_core::vector::generator_nodes::GridNode"], + }, + NodeReplacement { + node: graphene_std::vector::generator_nodes::line::IDENTIFIER, + aliases: &["graphene_core::vector::generator_nodes::LineNode"], + }, + NodeReplacement { + node: graphene_std::vector::generator_nodes::rectangle::IDENTIFIER, + aliases: &["graphene_core::vector::generator_nodes::RectangleNode"], + }, + NodeReplacement { + node: graphene_std::vector::generator_nodes::regular_polygon::IDENTIFIER, + aliases: &["graphene_core::vector::generator_nodes::RegularPolygonNode"], + }, + NodeReplacement { + node: graphene_std::vector::generator_nodes::spiral::IDENTIFIER, + aliases: &["graphene_core::vector::generator_nodes::SpiralNode"], + }, + NodeReplacement { + node: graphene_std::vector::generator_nodes::star::IDENTIFIER, + aliases: &["graphene_core::vector::generator_nodes::StarNode"], + }, + NodeReplacement { + node: graphene_std::vector::instance_index::IDENTIFIER, + aliases: &["graphene_core::vector::InstanceIndexNode"], + }, + NodeReplacement { + node: graphene_std::vector::instance_map::IDENTIFIER, + aliases: &["graphene_core::vector::InstanceMapNode"], + }, + NodeReplacement { + node: graphene_std::vector::instance_on_points::IDENTIFIER, + aliases: &["graphene_core::vector::InstanceOnPointsNode"], + }, + NodeReplacement { + node: graphene_std::vector::instance_position::IDENTIFIER, + aliases: &["graphene_core::vector::InstancePositionNode"], + }, + NodeReplacement { + node: graphene_std::vector::instance_repeat::IDENTIFIER, + aliases: &["graphene_core::vector::InstanceRepeatNode"], + }, + NodeReplacement { + node: graphene_std::vector::instance_vector::IDENTIFIER, + aliases: &["graphene_core::vector::InstanceVectorNode"], + }, + NodeReplacement { + node: graphene_std::vector::jitter_points::IDENTIFIER, + aliases: &["graphene_core::vector::JitterPointsNode"], + }, + NodeReplacement { + node: graphene_std::vector::merge_by_distance::IDENTIFIER, + aliases: &["graphene_core::vector::MergeByDistanceNode"], + }, + NodeReplacement { + node: graphene_std::vector::mirror::IDENTIFIER, + aliases: &["graphene_core::vector::MirrorNode"], + }, + NodeReplacement { + node: graphene_std::vector::morph::IDENTIFIER, + aliases: &["graphene_core::vector::MorphNode"], + }, + NodeReplacement { + node: graphene_std::vector::offset_path::IDENTIFIER, + aliases: &["graphene_core::vector::OffsetPathNode"], + }, + NodeReplacement { + node: graphene_std::vector::path_length::IDENTIFIER, + aliases: &["graphene_core::vector::PathLengthNode"], }, NodeReplacement { node: graphene_std::vector::path_modify::IDENTIFIER, - aliases: &["graphene_core::vector::vector_data::modification::PathModifyNode"], - }, - // brush - NodeReplacement { - node: graphene_std::brush::brush::brush_stamp_generator::IDENTIFIER, - aliases: &["graphene_std::brush::BrushStampGeneratorNode"], + aliases: &[ + "graphene_core::vector::vector_modification_nodes::PathModifyNode", + "graphene_core::vector::vector_data::modification::PathModifyNode", + "graphene_core::vector::vector_modification::PathModifyNode", + ], }, NodeReplacement { - node: graphene_std::brush::brush::blit::IDENTIFIER, - aliases: &["graphene_std::brush::BlitNode"], + node: graphene_std::vector::point_inside::IDENTIFIER, + aliases: &["graphene_core::vector::PointInsideNode"], }, NodeReplacement { - node: graphene_std::brush::brush::brush::IDENTIFIER, - aliases: &["graphene_std::brush::BrushNode"], + node: graphene_std::vector::points_to_polyline::IDENTIFIER, + aliases: &["graphene_core::vector::PointsToPolylineNode"], + }, + NodeReplacement { + node: graphene_std::vector::poisson_disk_points::IDENTIFIER, + aliases: &["graphene_core::vector::PoissonDiskPointsNode"], + }, + NodeReplacement { + node: graphene_std::vector::position_on_path::IDENTIFIER, + aliases: &["graphene_core::vector::PositionOnPathNode"], + }, + NodeReplacement { + node: graphene_std::vector::repeat::IDENTIFIER, + aliases: &["graphene_core::vector::RepeatNode"], + }, + NodeReplacement { + node: graphene_std::vector::round_corners::IDENTIFIER, + aliases: &["graphene_core::vector::RoundCornersNode"], + }, + NodeReplacement { + node: graphene_std::vector::sample_polyline::IDENTIFIER, + aliases: &["graphene_core::vector::SamplePolylineNode"], + }, + NodeReplacement { + node: graphene_std::vector::separate_subpaths::IDENTIFIER, + aliases: &["graphene_core::vector::SeparateSubpathsNode"], + }, + NodeReplacement { + node: graphene_std::vector::solidify_stroke::IDENTIFIER, + aliases: &["graphene_core::vector::SolidifyStrokeNode"], + }, + NodeReplacement { + node: graphene_std::vector::spline::IDENTIFIER, + aliases: &[ + "graphene_core::vector::vector_nodes::SplineNode", + "graphene_core::vector::SplinesFromPointsNode", + "graphene_core::vector::SplineNode", + ], + }, + NodeReplacement { + node: graphene_std::vector::stroke::IDENTIFIER, + aliases: &["graphene_core::vector::StrokeNode"], + }, + NodeReplacement { + node: graphene_std::vector::subpath_segment_lengths::IDENTIFIER, + aliases: &["graphene_core::vector::SubpathSegmentLengthsNode"], + }, + NodeReplacement { + node: graphene_std::vector::tangent_on_path::IDENTIFIER, + aliases: &["graphene_core::vector::TangentOnPathNode"], + }, + NodeReplacement { + node: graphene_std::vector::vec_2_to_point::IDENTIFIER, + aliases: &[ + "graphene_core::vector::vector_nodes::PositionToPointNode", + "graphene_core::vector::PositionToPointNode", + "graphene_core::vector::Vec2ToPointNode", + ], }, ]; @@ -555,7 +1005,7 @@ pub fn document_migration_upgrades(document: &mut DocumentMessageHandler, reset_ let mut default_template = NodeTemplate::default(); default_template.document_node.implementation = DocumentNodeImplementation::ProtoNode(new.clone()); document.network_interface.replace_implementation(node_id, &network_path, &mut default_template); - document.network_interface.set_manual_compostion(node_id, &network_path, Some(graph_craft::Type::Generic("T".into()))); + document.network_interface.set_call_argument(node_id, &network_path, default_template.document_node.call_argument); } } } @@ -573,18 +1023,14 @@ pub fn document_migration_upgrades(document: &mut DocumentMessageHandler, reset_ } fn migrate_node(node_id: &NodeId, node: &DocumentNode, network_path: &[NodeId], document: &mut DocumentMessageHandler, reset_node_definitions_on_open: bool) -> Option<()> { - if reset_node_definitions_on_open { - if let Some(Some(reference)) = document.network_interface.reference(node_id, network_path) { - let node_definition = resolve_document_node_type(reference)?; - document.network_interface.replace_implementation(node_id, network_path, &mut node_definition.default_node_template()); - } + if reset_node_definitions_on_open && let Some(Some(reference)) = document.network_interface.reference(node_id, network_path) { + let node_definition = resolve_document_node_type(reference)?; + document.network_interface.replace_implementation(node_id, network_path, &mut node_definition.default_node_template()); } - // Upgrade old nodes to use `Context` instead of `()` or `Footprint` for manual composition - if node.manual_composition == Some(graph_craft::concrete!(())) || node.manual_composition == Some(graph_craft::concrete!(graphene_std::transform::Footprint)) { - document - .network_interface - .set_manual_compostion(node_id, network_path, graph_craft::concrete!(graphene_std::Context).into()); + // Upgrade old nodes to use `Context` instead of `()` or `Footprint` as their call argument + if node.call_argument == graph_craft::concrete!(()) || node.call_argument == graph_craft::concrete!(graphene_std::transform::Footprint) { + document.network_interface.set_call_argument(node_id, network_path, graph_craft::concrete!(graphene_std::Context)); } // Only nodes that have not been modified and still refer to a definition can be updated @@ -637,9 +1083,9 @@ fn migrate_node(node_id: &NodeId, node: &DocumentNode, network_path: &[NodeId], }; let vector = Vector::from_subpath(Subpath::from_anchors_linear(points.to_vec(), false)); - // Retrieve the output connectors linked to the "Spline" node's output port + // Retrieve the output connectors linked to the "Spline" node's output connector let Some(spline_outputs) = document.network_interface.outward_wires(network_path)?.get(&OutputConnector::node(*node_id, 0)).cloned() else { - log::error!("Vec of InputConnector Spline node is connected to its output port 0."); + log::error!("Vec of InputConnector Spline node is connected to its output connector 0."); return None; }; @@ -684,7 +1130,7 @@ fn migrate_node(node_id: &NodeId, node: &DocumentNode, network_path: &[NodeId], // Reposition the new "Path" node with an offset relative to the original "Spline" node's position document.network_interface.shift_node(&new_path_id, node_position + IVec2::new(-7, 0), network_path); - // Redirect each output connection from the old node to the new "Spline" node's output port + // Redirect each output connection from the old node to the new "Spline" node's output connector for input_connector in spline_outputs { document.network_interface.set_input(&input_connector, NodeInput::node(new_spline_id, 0), network_path); } @@ -778,6 +1224,22 @@ fn migrate_node(node_id: &NodeId, node: &DocumentNode, network_path: &[NodeId], .set_input(&InputConnector::node(*node_id, 1), NodeInput::value(TaggedValue::Bool(true), false), network_path); } + // Upgrade the 'Tangent on Path' node to include a boolean input for whether the output should be in radians, which was previously the only option but is now not the default + if (reference == "Tangent on Path") && inputs_count == 4 { + let mut node_template = resolve_document_node_type(reference)?.default_node_template(); + document.network_interface.replace_implementation(node_id, network_path, &mut node_template); + + let old_inputs = document.network_interface.replace_inputs(node_id, network_path, &mut node_template)?; + + document.network_interface.set_input(&InputConnector::node(*node_id, 0), old_inputs[0].clone(), network_path); + document.network_interface.set_input(&InputConnector::node(*node_id, 1), old_inputs[1].clone(), network_path); + document.network_interface.set_input(&InputConnector::node(*node_id, 2), old_inputs[2].clone(), network_path); + document.network_interface.set_input(&InputConnector::node(*node_id, 3), old_inputs[3].clone(), network_path); + document + .network_interface + .set_input(&InputConnector::node(*node_id, 4), NodeInput::value(TaggedValue::Bool(true), false), network_path); + } + // Upgrade the Modulo node to include a boolean input for whether the output should be always positive, which was previously not an option if reference == "Modulo" && inputs_count == 2 { let mut node_template = resolve_document_node_type(reference)?.default_node_template(); @@ -996,11 +1458,11 @@ fn migrate_node(node_id: &NodeId, node: &DocumentNode, network_path: &[NodeId], .network_interface .input_from_connector(&InputConnector::Node { node_id: *node_id, input_index: 3 }, network_path)?; - if let NodeInput::Value { tagged_value, exposed } = quantity_value { - if let TaggedValue::F64(value) = **tagged_value { - let new_quantity_value = NodeInput::value(TaggedValue::U32(value as u32), *exposed); - document.network_interface.set_input(&InputConnector::node(*node_id, 3), new_quantity_value, network_path); - } + if let NodeInput::Value { tagged_value, exposed } = quantity_value + && let TaggedValue::F64(value) = **tagged_value + { + let new_quantity_value = NodeInput::value(TaggedValue::U32(value as u32), *exposed); + document.network_interface.set_input(&InputConnector::node(*node_id, 3), new_quantity_value, network_path); } } @@ -1015,18 +1477,18 @@ fn migrate_node(node_id: &NodeId, node: &DocumentNode, network_path: &[NodeId], let mut upgraded = false; - if let Some(NodeInput::Value { tagged_value, exposed: _ }) = index_3_value { - if matches!(*tagged_value, TaggedValue::DVec2(_)) { - // Move index 3 to the end - document.network_interface.set_input(&InputConnector::node(*node_id, 0), old_inputs[0].clone(), network_path); - document.network_interface.set_input(&InputConnector::node(*node_id, 1), old_inputs[1].clone(), network_path); - document.network_interface.set_input(&InputConnector::node(*node_id, 2), old_inputs[2].clone(), network_path); - document.network_interface.set_input(&InputConnector::node(*node_id, 3), old_inputs[4].clone(), network_path); - document.network_interface.set_input(&InputConnector::node(*node_id, 4), old_inputs[5].clone(), network_path); - document.network_interface.set_input(&InputConnector::node(*node_id, 5), old_inputs[3].clone(), network_path); + if let Some(NodeInput::Value { tagged_value, exposed: _ }) = index_3_value + && matches!(*tagged_value, TaggedValue::DVec2(_)) + { + // Move index 3 to the end + document.network_interface.set_input(&InputConnector::node(*node_id, 0), old_inputs[0].clone(), network_path); + document.network_interface.set_input(&InputConnector::node(*node_id, 1), old_inputs[1].clone(), network_path); + document.network_interface.set_input(&InputConnector::node(*node_id, 2), old_inputs[2].clone(), network_path); + document.network_interface.set_input(&InputConnector::node(*node_id, 3), old_inputs[4].clone(), network_path); + document.network_interface.set_input(&InputConnector::node(*node_id, 4), old_inputs[5].clone(), network_path); + document.network_interface.set_input(&InputConnector::node(*node_id, 5), old_inputs[3].clone(), network_path); - upgraded = true; - } + upgraded = true; } if !upgraded { @@ -1038,6 +1500,7 @@ fn migrate_node(node_id: &NodeId, node: &DocumentNode, network_path: &[NodeId], if reference == "Instance Index" && inputs_count == 0 { let mut node_template = resolve_document_node_type(reference)?.default_node_template(); document.network_interface.replace_implementation(node_id, network_path, &mut node_template); + document.network_interface.set_display_name(node_id, "Instance Index".to_string(), network_path); let mut node_path = network_path.to_vec(); node_path.push(*node_id); @@ -1046,6 +1509,135 @@ fn migrate_node(node_id: &NodeId, node: &DocumentNode, network_path: &[NodeId], document.network_interface.add_import(TaggedValue::U32(0), false, 1, "Loop Level", "TODO", &node_path); } + // Migrate the Transform node to use degrees instead of radians + if reference == "Transform" && node.inputs.get(6).is_none() { + let mut node_template = resolve_document_node_type("Transform")?.default_node_template(); + document.network_interface.replace_implementation(node_id, network_path, &mut node_template); + + let old_inputs = document.network_interface.replace_inputs(node_id, network_path, &mut node_template)?; + + // Value + document.network_interface.set_input(&InputConnector::node(*node_id, 0), old_inputs[0].clone(), network_path); + // Translation + document.network_interface.set_input(&InputConnector::node(*node_id, 1), old_inputs[1].clone(), network_path); + // Rotation + document.network_interface.set_input(&InputConnector::node(*node_id, 2), old_inputs[2].clone(), network_path); + // Scale + document.network_interface.set_input(&InputConnector::node(*node_id, 3), old_inputs[3].clone(), network_path); + // Skew + document.network_interface.set_input(&InputConnector::node(*node_id, 4), old_inputs[4].clone(), network_path); + // Origin Offset + document + .network_interface + .set_input(&InputConnector::node(*node_id, 5), NodeInput::value(TaggedValue::DVec2(DVec2::ZERO), false), network_path); + // Scale Appearance + document + .network_interface + .set_input(&InputConnector::node(*node_id, 6), NodeInput::value(TaggedValue::Bool(true), false), network_path); + + // Migrate rotation from radians to degrees + match node.inputs.get(2)? { + NodeInput::Value { tagged_value, exposed } => { + // Read the existing Properties panel number value, which used to be in radians + let TaggedValue::F64(radians) = *tagged_value.clone().into_inner() else { return None }; + + // Convert the radians to degrees and set it back as the new input value + let degrees = NodeInput::value(TaggedValue::F64(radians.to_degrees()), *exposed); + document.network_interface.set_input(&InputConnector::node(*node_id, 2), degrees, network_path); + } + NodeInput::Node { .. } => { + // Construct a new Multiply node for converting from degrees to radians + let Some(multiply_node) = resolve_document_node_type("Multiply") else { + log::error!("Could not get multiply node from definition when upgrading transform"); + return None; + }; + let mut multiply_template = multiply_node.default_node_template(); + multiply_template.document_node.inputs[1] = NodeInput::value(TaggedValue::F64(180. / PI), false); + + // Decide on the placement position of the new Multiply node + let multiply_node_id = NodeId::new(); + let Some(transform_position) = document.network_interface.position_from_downstream_node(node_id, network_path) else { + log::error!("Could not get positon for transform node {node_id}"); + return None; + }; + let multiply_position = transform_position + IVec2::new(-7, 1); + + // Insert the new Multiply node into the network directly before it's used + document.network_interface.insert_node(multiply_node_id, multiply_template, network_path); + document.network_interface.shift_absolute_node_position(&multiply_node_id, multiply_position, network_path); + document.network_interface.insert_node_between(&multiply_node_id, &InputConnector::node(*node_id, 2), 0, network_path); + } + _ => {} + }; + + // Migrate skew from radians to degrees + if let NodeInput::Value { tagged_value, exposed } = node.inputs.get(4)? { + // Read the existing Properties panel number value, which used to be in radians + let TaggedValue::DVec2(old_value) = *tagged_value.clone().into_inner() else { return None }; + + // The previous value stored the tangent of the displayed degrees. Now it stores the degrees, so take the arctan of it and convert to degrees. + let new_value = DVec2::new(old_value.x.atan().to_degrees(), old_value.y.atan().to_degrees()); + let new_input = NodeInput::value(TaggedValue::DVec2(new_value), *exposed); + document.network_interface.set_input(&InputConnector::node(*node_id, 4), new_input, network_path); + } + } + + // Migrate from the old source/target "Morph" node to the new vector table based "Morph" node. + // This doesn't produce exactly equivalent results in cases involving input vector tables with multiple rows. + // The old version would zip the source and target table rows, interpoleating each pair together. + // The migrated version will instead deeply flatten both merged tables and morph sequentially between all source vectors and all target vector elements. + // This migration assumes most usages didn't involve multiple parallel vector elements, and instead morphed from a single source to a single target vector element. + if reference == "Morph" && inputs_count == 3 { + // Old signature: + // async fn morph(_: impl Ctx, source: Table, #[expose] target: Table, #[default(0.5)] time: Fraction) -> Table { ... } + // + // New signature: + // async fn morph(_: impl Ctx, content: #[implementations(Table, Table)] content: I, progression: Progression) -> Table { ... } + + let mut node_template = resolve_document_node_type(reference)?.default_node_template(); + let old_inputs = document.network_interface.replace_inputs(node_id, network_path, &mut node_template)?; + + // Create a new Merge node + let Some(merge_node_type) = resolve_document_node_type("Merge") else { + log::error!("Could not get merge node from definition when upgrading morph"); + return None; + }; + let merge_template = merge_node_type.default_node_template(); + let merge_node_id = NodeId::new(); + + // Decide on the placement position of the new Merge node + let Some(morph_position) = document.network_interface.position_from_downstream_node(node_id, network_path) else { + log::error!("Could not get position for morph node {node_id}"); + return None; + }; + let merge_position = morph_position + IVec2::new(-7, 0); + + // Insert the new Merge node into the network + document.network_interface.insert_node(merge_node_id, merge_template, network_path); + document.network_interface.set_to_node_or_layer(&merge_node_id, network_path, false); + document.network_interface.shift_absolute_node_position(&merge_node_id, merge_position, network_path); + + // Connect the old 'source' and 'target' inputs to the new Merge node + document.network_interface.set_input(&InputConnector::node(merge_node_id, 0), old_inputs[0].clone(), network_path); + document.network_interface.set_input(&InputConnector::node(merge_node_id, 1), old_inputs[1].clone(), network_path); + + // Connect the new Merge node to the 'content' input of the Morph node + document + .network_interface + .set_input(&InputConnector::node(*node_id, 0), NodeInput::node(merge_node_id, 0), network_path); + // Connect the old 'progression' input to the new 'progression' input of the Morph node + document.network_interface.set_input(&InputConnector::node(*node_id, 1), old_inputs[2].clone(), network_path); + } + + // Add context features to nodes that don't have them (fine-grained context caching migration) + if node.context_features == graphene_std::ContextDependencies::default() + && let Some(reference) = document.network_interface.reference(node_id, network_path).cloned().flatten() + && let Some(node_definition) = resolve_document_node_type(&reference) + { + let context_features = node_definition.node_template.document_node.context_features; + document.network_interface.set_context_features(node_id, network_path, context_features); + } + // ================================== // PUT ALL MIGRATIONS ABOVE THIS LINE // ================================== @@ -1087,8 +1679,8 @@ mod tests { *hashmap.entry(node.node.clone()).or_default() += 1; }); let duplicates = hashmap.iter().filter(|(_, count)| **count > 1).map(|(node, _)| &node.name).collect::>(); - if duplicates.len() > 0 { - panic!("Duplicate entries in `NODE_REPLACEMENTS`: {:?}", duplicates); + if !duplicates.is_empty() { + panic!("Duplicate entries in `NODE_REPLACEMENTS`: {duplicates:?}"); } } } diff --git a/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs b/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs deleted file mode 100644 index 0f4b574de..000000000 --- a/editor/src/messages/portfolio/menu_bar/menu_bar_message_handler.rs +++ /dev/null @@ -1,707 +0,0 @@ -use crate::messages::debug::utility_types::MessageLoggingVerbosity; -use crate::messages::input_mapper::utility_types::macros::action_keys; -use crate::messages::layout::utility_types::widget_prelude::*; -use crate::messages::portfolio::document::utility_types::clipboards::Clipboard; -use crate::messages::portfolio::document::utility_types::misc::{AlignAggregate, AlignAxis, FlipAxis, GroupFolderType}; -use crate::messages::prelude::*; -use graphene_std::path_bool::BooleanOperation; - -#[derive(Debug, Clone, Default, ExtractField)] -pub struct MenuBarMessageHandler { - pub has_active_document: bool, - pub canvas_tilted: bool, - pub canvas_flipped: bool, - pub rulers_visible: bool, - pub node_graph_open: bool, - pub has_selected_nodes: bool, - pub has_selected_layers: bool, - pub has_selection_history: (bool, bool), - pub spreadsheet_view_open: bool, - pub message_logging_verbosity: MessageLoggingVerbosity, - pub reset_node_definitions_on_open: bool, - pub make_path_editable_is_allowed: bool, -} - -#[message_handler_data] -impl MessageHandler for MenuBarMessageHandler { - fn process_message(&mut self, message: MenuBarMessage, responses: &mut VecDeque, _: ()) { - match message { - MenuBarMessage::SendLayout => self.send_layout(responses, LayoutTarget::MenuBar), - } - } - - fn actions(&self) -> ActionList { - actions!(MenuBarMessageDiscriminant;) - } -} - -impl LayoutHolder for MenuBarMessageHandler { - fn layout(&self) -> Layout { - let no_active_document = !self.has_active_document; - let node_graph_open = self.node_graph_open; - let has_selected_nodes = self.has_selected_nodes; - let has_selected_layers = self.has_selected_layers; - let has_selection_history = self.has_selection_history; - let message_logging_verbosity_off = self.message_logging_verbosity == MessageLoggingVerbosity::Off; - let message_logging_verbosity_names = self.message_logging_verbosity == MessageLoggingVerbosity::Names; - let message_logging_verbosity_contents = self.message_logging_verbosity == MessageLoggingVerbosity::Contents; - let reset_node_definitions_on_open = self.reset_node_definitions_on_open; - let make_path_editable_is_allowed = self.make_path_editable_is_allowed; - - let menu_bar_entries = vec![ - MenuBarEntry { - icon: Some("GraphiteLogo".into()), - action: MenuBarEntry::create_action(|_| FrontendMessage::TriggerVisitLink { url: "https://graphite.rs".into() }.into()), - ..Default::default() - }, - MenuBarEntry::new_root( - "File".into(), - false, - MenuBarEntryChildren(vec![ - vec![ - MenuBarEntry { - label: "Newโ€ฆ".into(), - icon: Some("File".into()), - action: MenuBarEntry::create_action(|_| DialogMessage::RequestNewDocumentDialog.into()), - shortcut: action_keys!(DialogMessageDiscriminant::RequestNewDocumentDialog), - children: MenuBarEntryChildren::empty(), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Openโ€ฆ".into(), - icon: Some("Folder".into()), - shortcut: action_keys!(PortfolioMessageDiscriminant::OpenDocument), - action: MenuBarEntry::create_action(|_| PortfolioMessage::OpenDocument.into()), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Open Demo Artworkโ€ฆ".into(), - icon: Some("Image".into()), - action: MenuBarEntry::create_action(|_| DialogMessage::RequestDemoArtworkDialog.into()), - ..MenuBarEntry::default() - }, - ], - vec![ - MenuBarEntry { - label: "Close".into(), - icon: Some("Close".into()), - shortcut: action_keys!(PortfolioMessageDiscriminant::CloseActiveDocumentWithConfirmation), - action: MenuBarEntry::create_action(|_| PortfolioMessage::CloseActiveDocumentWithConfirmation.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Close All".into(), - icon: Some("CloseAll".into()), - shortcut: action_keys!(PortfolioMessageDiscriminant::CloseAllDocumentsWithConfirmation), - action: MenuBarEntry::create_action(|_| PortfolioMessage::CloseAllDocumentsWithConfirmation.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - ], - vec![MenuBarEntry { - label: "Save".into(), - icon: Some("Save".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::SaveDocument), - action: MenuBarEntry::create_action(|_| DocumentMessage::SaveDocument.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }], - vec![ - MenuBarEntry { - label: "Importโ€ฆ".into(), - icon: Some("FileImport".into()), - shortcut: action_keys!(PortfolioMessageDiscriminant::Import), - action: MenuBarEntry::create_action(|_| PortfolioMessage::Import.into()), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Exportโ€ฆ".into(), - icon: Some("FileExport".into()), - shortcut: action_keys!(DialogMessageDiscriminant::RequestExportDialog), - action: MenuBarEntry::create_action(|_| DialogMessage::RequestExportDialog.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - ], - vec![MenuBarEntry { - label: "Preferencesโ€ฆ".into(), - icon: Some("Settings".into()), - shortcut: action_keys!(DialogMessageDiscriminant::RequestPreferencesDialog), - action: MenuBarEntry::create_action(|_| DialogMessage::RequestPreferencesDialog.into()), - ..MenuBarEntry::default() - }], - ]), - ), - MenuBarEntry::new_root( - "Edit".into(), - false, - MenuBarEntryChildren(vec![ - vec![ - MenuBarEntry { - label: "Undo".into(), - icon: Some("HistoryUndo".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::Undo), - action: MenuBarEntry::create_action(|_| DocumentMessage::Undo.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Redo".into(), - icon: Some("HistoryRedo".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::Redo), - action: MenuBarEntry::create_action(|_| DocumentMessage::Redo.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - ], - vec![ - MenuBarEntry { - label: "Cut".into(), - icon: Some("Cut".into()), - shortcut: action_keys!(PortfolioMessageDiscriminant::Cut), - action: MenuBarEntry::create_action(|_| PortfolioMessage::Cut { clipboard: Clipboard::Device }.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Copy".into(), - icon: Some("Copy".into()), - shortcut: action_keys!(PortfolioMessageDiscriminant::Copy), - action: MenuBarEntry::create_action(|_| PortfolioMessage::Copy { clipboard: Clipboard::Device }.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Paste".into(), - icon: Some("Paste".into()), - shortcut: action_keys!(FrontendMessageDiscriminant::TriggerPaste), - action: MenuBarEntry::create_action(|_| FrontendMessage::TriggerPaste.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - ], - vec![ - MenuBarEntry { - label: "Duplicate".into(), - icon: Some("Copy".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::DuplicateSelectedLayers), - action: MenuBarEntry::create_action(|_| DocumentMessage::DuplicateSelectedLayers.into()), - disabled: no_active_document || !has_selected_nodes, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Delete".into(), - icon: Some("Trash".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::DeleteSelectedLayers), - action: MenuBarEntry::create_action(|_| DocumentMessage::DeleteSelectedLayers.into()), - disabled: no_active_document || !has_selected_nodes, - ..MenuBarEntry::default() - }, - ], - vec![MenuBarEntry { - label: "Convert to Infinite Canvas".into(), - icon: Some("Artboard".into()), - action: MenuBarEntry::create_action(|_| DocumentMessage::RemoveArtboards.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }], - ]), - ), - MenuBarEntry::new_root( - "Layer".into(), - no_active_document, - MenuBarEntryChildren(vec![ - vec![MenuBarEntry { - label: "New".into(), - icon: Some("NewLayer".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::CreateEmptyFolder), - action: MenuBarEntry::create_action(|_| DocumentMessage::CreateEmptyFolder.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }], - vec![ - MenuBarEntry { - label: "Group".into(), - icon: Some("Folder".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::GroupSelectedLayers), - action: MenuBarEntry::create_action(|_| { - DocumentMessage::GroupSelectedLayers { - group_folder_type: GroupFolderType::Layer, - } - .into() - }), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Ungroup".into(), - icon: Some("FolderOpen".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::UngroupSelectedLayers), - action: MenuBarEntry::create_action(|_| DocumentMessage::UngroupSelectedLayers.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - ], - vec![ - MenuBarEntry { - label: "Hide/Show".into(), - icon: Some("EyeHide".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::ToggleSelectedVisibility), - action: MenuBarEntry::create_action(|_| DocumentMessage::ToggleSelectedVisibility.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Lock/Unlock".into(), - icon: Some("PadlockLocked".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::ToggleSelectedLocked), - action: MenuBarEntry::create_action(|_| DocumentMessage::ToggleSelectedLocked.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - ], - vec![ - MenuBarEntry { - label: "Grab".into(), - icon: Some("TransformationGrab".into()), - shortcut: action_keys!(TransformLayerMessageDiscriminant::BeginGrab), - action: MenuBarEntry::create_action(|_| TransformLayerMessage::BeginGrab.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Rotate".into(), - icon: Some("TransformationRotate".into()), - shortcut: action_keys!(TransformLayerMessageDiscriminant::BeginRotate), - action: MenuBarEntry::create_action(|_| TransformLayerMessage::BeginRotate.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Scale".into(), - icon: Some("TransformationScale".into()), - shortcut: action_keys!(TransformLayerMessageDiscriminant::BeginScale), - action: MenuBarEntry::create_action(|_| TransformLayerMessage::BeginScale.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - ], - vec![ - MenuBarEntry { - label: "Arrange".into(), - icon: Some("StackHollow".into()), - action: MenuBarEntry::no_action(), - disabled: no_active_document || !has_selected_layers, - children: MenuBarEntryChildren(vec![ - vec![ - MenuBarEntry { - label: "Raise To Front".into(), - icon: Some("Stack".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::SelectedLayersRaiseToFront), - action: MenuBarEntry::create_action(|_| DocumentMessage::SelectedLayersRaiseToFront.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Raise".into(), - icon: Some("StackRaise".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::SelectedLayersRaise), - action: MenuBarEntry::create_action(|_| DocumentMessage::SelectedLayersRaise.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Lower".into(), - icon: Some("StackLower".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::SelectedLayersLower), - action: MenuBarEntry::create_action(|_| DocumentMessage::SelectedLayersLower.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Lower to Back".into(), - icon: Some("StackBottom".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::SelectedLayersLowerToBack), - action: MenuBarEntry::create_action(|_| DocumentMessage::SelectedLayersLowerToBack.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - ], - vec![MenuBarEntry { - label: "Reverse".into(), - icon: Some("StackReverse".into()), - action: MenuBarEntry::create_action(|_| DocumentMessage::SelectedLayersReverse.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }], - ]), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Align".into(), - icon: Some("AlignVerticalCenter".into()), - action: MenuBarEntry::no_action(), - disabled: no_active_document || !has_selected_layers, - children: MenuBarEntryChildren({ - let choices = [ - [ - (AlignAxis::X, AlignAggregate::Min, "AlignLeft", "Align Left"), - (AlignAxis::X, AlignAggregate::Center, "AlignHorizontalCenter", "Align Horizontal Center"), - (AlignAxis::X, AlignAggregate::Max, "AlignRight", "Align Right"), - ], - [ - (AlignAxis::Y, AlignAggregate::Min, "AlignTop", "Align Top"), - (AlignAxis::Y, AlignAggregate::Center, "AlignVerticalCenter", "Align Vertical Center"), - (AlignAxis::Y, AlignAggregate::Max, "AlignBottom", "Align Bottom"), - ], - ]; - - choices - .into_iter() - .map(|section| { - section - .into_iter() - .map(|(axis, aggregate, icon, name)| MenuBarEntry { - label: name.into(), - icon: Some(icon.into()), - action: MenuBarEntry::create_action(move |_| DocumentMessage::AlignSelectedLayers { axis, aggregate }.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }) - .collect() - }) - .collect() - }), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Flip".into(), - icon: Some("FlipVertical".into()), - action: MenuBarEntry::no_action(), - disabled: no_active_document || !has_selected_layers, - children: MenuBarEntryChildren(vec![{ - [(FlipAxis::X, "FlipHorizontal", "Horizontal"), (FlipAxis::Y, "FlipVertical", "Vertical")] - .into_iter() - .map(|(flip_axis, icon, name)| MenuBarEntry { - label: name.into(), - icon: Some(icon.into()), - action: MenuBarEntry::create_action(move |_| DocumentMessage::FlipSelectedLayers { flip_axis }.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }) - .collect() - }]), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Turn".into(), - icon: Some("TurnPositive90".into()), - action: MenuBarEntry::no_action(), - disabled: no_active_document || !has_selected_layers, - children: MenuBarEntryChildren(vec![{ - [(-90., "TurnNegative90", "Turn -90ยฐ"), (90., "TurnPositive90", "Turn 90ยฐ")] - .into_iter() - .map(|(degrees, icon, name)| MenuBarEntry { - label: name.into(), - icon: Some(icon.into()), - action: MenuBarEntry::create_action(move |_| DocumentMessage::RotateSelectedLayers { degrees }.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }) - .collect() - }]), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Boolean".into(), - icon: Some("BooleanSubtractFront".into()), - action: MenuBarEntry::no_action(), - disabled: no_active_document || !has_selected_layers, - children: MenuBarEntryChildren(vec![{ - let list = ::list(); - list.iter() - .flat_map(|i| i.iter()) - .map(move |(operation, info)| MenuBarEntry { - label: info.label.to_string(), - icon: info.icon.as_ref().map(|i| i.to_string()), - action: MenuBarEntry::create_action(move |_| { - let group_folder_type = GroupFolderType::BooleanOperation(*operation); - DocumentMessage::GroupSelectedLayers { group_folder_type }.into() - }), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }) - .collect() - }]), - ..MenuBarEntry::default() - }, - ], - vec![MenuBarEntry { - label: "Make Path Editable".into(), - icon: Some("NodeShape".into()), - shortcut: None, - action: MenuBarEntry::create_action(|_| NodeGraphMessage::AddPathNode.into()), - disabled: !make_path_editable_is_allowed, - ..MenuBarEntry::default() - }], - ]), - ), - MenuBarEntry::new_root( - "Select".into(), - no_active_document, - MenuBarEntryChildren(vec![ - vec![ - MenuBarEntry { - label: "Select All".into(), - icon: Some("SelectAll".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::SelectAllLayers), - action: MenuBarEntry::create_action(|_| DocumentMessage::SelectAllLayers.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Deselect All".into(), - icon: Some("DeselectAll".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::DeselectAllLayers), - action: MenuBarEntry::create_action(|_| DocumentMessage::DeselectAllLayers.into()), - disabled: no_active_document || !has_selected_nodes, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Select Parent".into(), - icon: Some("SelectParent".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::SelectParentLayer), - action: MenuBarEntry::create_action(|_| DocumentMessage::SelectParentLayer.into()), - disabled: no_active_document || !has_selected_nodes, - ..MenuBarEntry::default() - }, - ], - vec![ - MenuBarEntry { - label: "Previous Selection".into(), - icon: Some("HistoryUndo".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::SelectionStepBack), - action: MenuBarEntry::create_action(|_| DocumentMessage::SelectionStepBack.into()), - disabled: !has_selection_history.0, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Next Selection".into(), - icon: Some("HistoryRedo".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::SelectionStepForward), - action: MenuBarEntry::create_action(|_| DocumentMessage::SelectionStepForward.into()), - disabled: !has_selection_history.1, - ..MenuBarEntry::default() - }, - ], - ]), - ), - MenuBarEntry::new_root( - "View".into(), - no_active_document, - MenuBarEntryChildren(vec![ - vec![ - MenuBarEntry { - label: "Tilt".into(), - icon: Some("Tilt".into()), - shortcut: action_keys!(NavigationMessageDiscriminant::BeginCanvasTilt), - action: MenuBarEntry::create_action(|_| NavigationMessage::BeginCanvasTilt { was_dispatched_from_menu: true }.into()), - disabled: no_active_document || node_graph_open, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Reset Tilt".into(), - icon: Some("TiltReset".into()), - shortcut: action_keys!(NavigationMessageDiscriminant::CanvasTiltSet), - action: MenuBarEntry::create_action(|_| NavigationMessage::CanvasTiltSet { angle_radians: 0.into() }.into()), - disabled: no_active_document || node_graph_open || !self.canvas_tilted, - ..MenuBarEntry::default() - }, - ], - vec![ - MenuBarEntry { - label: "Zoom In".into(), - icon: Some("ZoomIn".into()), - shortcut: action_keys!(NavigationMessageDiscriminant::CanvasZoomIncrease), - action: MenuBarEntry::create_action(|_| NavigationMessage::CanvasZoomIncrease { center_on_mouse: false }.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Zoom Out".into(), - icon: Some("ZoomOut".into()), - shortcut: action_keys!(NavigationMessageDiscriminant::CanvasZoomDecrease), - action: MenuBarEntry::create_action(|_| NavigationMessage::CanvasZoomDecrease { center_on_mouse: false }.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Zoom to Selection".into(), - icon: Some("FrameSelected".into()), - shortcut: action_keys!(NavigationMessageDiscriminant::FitViewportToSelection), - action: MenuBarEntry::create_action(|_| NavigationMessage::FitViewportToSelection.into()), - disabled: no_active_document || !has_selected_layers, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Zoom to Fit".into(), - icon: Some("FrameAll".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::ZoomCanvasToFitAll), - action: MenuBarEntry::create_action(|_| DocumentMessage::ZoomCanvasToFitAll.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Zoom to 100%".into(), - icon: Some("Zoom1x".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::ZoomCanvasTo100Percent), - action: MenuBarEntry::create_action(|_| DocumentMessage::ZoomCanvasTo100Percent.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Zoom to 200%".into(), - icon: Some("Zoom2x".into()), - shortcut: action_keys!(DocumentMessageDiscriminant::ZoomCanvasTo200Percent), - action: MenuBarEntry::create_action(|_| DocumentMessage::ZoomCanvasTo200Percent.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }, - ], - vec![MenuBarEntry { - label: "Flip".into(), - icon: Some(if self.canvas_flipped { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()), - shortcut: action_keys!(NavigationMessageDiscriminant::CanvasFlip), - action: MenuBarEntry::create_action(|_| NavigationMessage::CanvasFlip.into()), - disabled: no_active_document || node_graph_open, - ..MenuBarEntry::default() - }], - vec![MenuBarEntry { - label: "Rulers".into(), - icon: Some(if self.rulers_visible { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()), - shortcut: action_keys!(PortfolioMessageDiscriminant::ToggleRulers), - action: MenuBarEntry::create_action(|_| PortfolioMessage::ToggleRulers.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }], - vec![MenuBarEntry { - label: "Window: Spreadsheet".into(), - icon: Some(if self.spreadsheet_view_open { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()), - action: MenuBarEntry::create_action(|_| SpreadsheetMessage::ToggleOpen.into()), - disabled: no_active_document, - ..MenuBarEntry::default() - }], - ]), - ), - MenuBarEntry::new_root( - "Help".into(), - true, - MenuBarEntryChildren(vec![ - vec![MenuBarEntry { - label: "About Graphiteโ€ฆ".into(), - icon: Some("GraphiteLogo".into()), - action: MenuBarEntry::create_action(|_| DialogMessage::RequestAboutGraphiteDialog.into()), - ..MenuBarEntry::default() - }], - vec![ - MenuBarEntry { - label: "Donate to Graphite".into(), - icon: Some("Heart".into()), - action: MenuBarEntry::create_action(|_| { - FrontendMessage::TriggerVisitLink { - url: "https://graphite.rs/donate/".into(), - } - .into() - }), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "User Manual".into(), - icon: Some("UserManual".into()), - action: MenuBarEntry::create_action(|_| { - FrontendMessage::TriggerVisitLink { - url: "https://graphite.rs/learn/".into(), - } - .into() - }), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Report a Bug".into(), - icon: Some("Bug".into()), - action: MenuBarEntry::create_action(|_| { - FrontendMessage::TriggerVisitLink { - url: "https://github.com/GraphiteEditor/Graphite/issues/new".into(), - } - .into() - }), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Visit on GitHub".into(), - icon: Some("Website".into()), - action: MenuBarEntry::create_action(|_| { - FrontendMessage::TriggerVisitLink { - url: "https://github.com/GraphiteEditor/Graphite".into(), - } - .into() - }), - ..MenuBarEntry::default() - }, - ], - vec![MenuBarEntry { - label: "Developer Debug".into(), - icon: Some("Code".into()), - action: MenuBarEntry::no_action(), - children: MenuBarEntryChildren(vec![ - vec![MenuBarEntry { - label: "Reset Nodes to Definitions on Open".into(), - icon: Some(if reset_node_definitions_on_open { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()), - action: MenuBarEntry::create_action(|_| PortfolioMessage::ToggleResetNodesToDefinitionsOnOpen.into()), - ..MenuBarEntry::default() - }], - vec![ - MenuBarEntry { - label: "Print Trace Logs".into(), - icon: Some(if log::max_level() == log::LevelFilter::Trace { "CheckboxChecked" } else { "CheckboxUnchecked" }.into()), - action: MenuBarEntry::create_action(|_| DebugMessage::ToggleTraceLogs.into()), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Print Messages: Off".into(), - icon: message_logging_verbosity_off.then_some("SmallDot".into()), - shortcut: action_keys!(DebugMessageDiscriminant::MessageOff), - action: MenuBarEntry::create_action(|_| DebugMessage::MessageOff.into()), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Print Messages: Only Names".into(), - icon: message_logging_verbosity_names.then_some("SmallDot".into()), - shortcut: action_keys!(DebugMessageDiscriminant::MessageNames), - action: MenuBarEntry::create_action(|_| DebugMessage::MessageNames.into()), - ..MenuBarEntry::default() - }, - MenuBarEntry { - label: "Print Messages: Full Contents".into(), - icon: message_logging_verbosity_contents.then_some("SmallDot".into()), - shortcut: action_keys!(DebugMessageDiscriminant::MessageContents), - action: MenuBarEntry::create_action(|_| DebugMessage::MessageContents.into()), - ..MenuBarEntry::default() - }, - ], - vec![MenuBarEntry { - label: "Trigger a Crash".into(), - icon: Some("Warning".into()), - action: MenuBarEntry::create_action(|_| panic!()), - ..MenuBarEntry::default() - }], - ]), - ..MenuBarEntry::default() - }], - ]), - ), - ]; - Layout::MenuLayout(MenuLayout::new(menu_bar_entries)) - } -} diff --git a/editor/src/messages/portfolio/mod.rs b/editor/src/messages/portfolio/mod.rs index 364dcdfdd..3c9d53e22 100644 --- a/editor/src/messages/portfolio/mod.rs +++ b/editor/src/messages/portfolio/mod.rs @@ -3,8 +3,6 @@ mod portfolio_message_handler; pub mod document; pub mod document_migration; -pub mod menu_bar; -pub mod spreadsheet; pub mod utility_types; #[doc(inline)] diff --git a/editor/src/messages/portfolio/portfolio_message.rs b/editor/src/messages/portfolio/portfolio_message.rs index 153ad6c03..b601e3f55 100644 --- a/editor/src/messages/portfolio/portfolio_message.rs +++ b/editor/src/messages/portfolio/portfolio_message.rs @@ -2,21 +2,19 @@ use super::document::utility_types::document_metadata::LayerNodeIdentifier; use super::utility_types::PanelType; use crate::messages::frontend::utility_types::{ExportBounds, FileType}; use crate::messages::portfolio::document::utility_types::clipboards::Clipboard; +use crate::messages::portfolio::utility_types::FontCatalog; use crate::messages::prelude::*; use graphene_std::Color; use graphene_std::raster::Image; use graphene_std::text::Font; +use std::path::PathBuf; #[impl_message(Message, Portfolio)] #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] pub enum PortfolioMessage { // Sub-messages #[child] - MenuBar(MenuBarMessage), - #[child] Document(DocumentMessage), - #[child] - Spreadsheet(SpreadsheetMessage), // Messages Init, @@ -49,37 +47,42 @@ pub enum PortfolioMessage { }, DestroyAllDocuments, EditorPreferences, + FontCatalogLoaded { + catalog: FontCatalog, + }, + LoadFontData { + font: Font, + }, FontLoaded { font_family: String, font_style: String, - preview_url: String, data: Vec, }, Import, LoadDocumentResources { document_id: DocumentId, }, - LoadFont { - font: Font, - }, NewDocumentWithName { name: String, }, NextDocument, OpenDocument, OpenDocumentFile { - document_name: String, + document_name: Option, + document_path: Option, document_serialized_content: String, }, - ToggleResetNodesToDefinitionsOnOpen, OpenDocumentFileWithId { document_id: DocumentId, - document_name: String, + document_name: Option, + document_path: Option, document_is_auto_saved: bool, document_is_saved: bool, document_serialized_content: String, to_front: bool, + select_after_open: bool, }, + ToggleResetNodesToDefinitionsOnOpen, PasteIntoFolder { clipboard: Clipboard, parent: LayerNodeIdentifier, @@ -107,17 +110,15 @@ pub enum PortfolioMessage { parent_and_insert_index: Option<(LayerNodeIdentifier, usize)>, }, PrevDocument, + RequestWelcomeScreenButtonsLayout, SetActivePanel { panel: PanelType, }, - SetDevicePixelRatio { - ratio: f64, - }, SelectDocument { document_id: DocumentId, }, SubmitDocumentExport { - file_name: String, + name: String, file_type: FileType, scale_factor: f64, bounds: ExportBounds, @@ -128,6 +129,9 @@ pub enum PortfolioMessage { document_id: DocumentId, ignore_hash: bool, }, + ToggleDataPanelOpen, + TogglePropertiesPanelOpen, + ToggleLayersPanelOpen, ToggleRulers, UpdateDocumentWidgets, UpdateOpenDocumentsList, diff --git a/editor/src/messages/portfolio/portfolio_message_handler.rs b/editor/src/messages/portfolio/portfolio_message_handler.rs index 0a1e1d54e..70f344894 100644 --- a/editor/src/messages/portfolio/portfolio_message_handler.rs +++ b/editor/src/messages/portfolio/portfolio_message_handler.rs @@ -1,13 +1,14 @@ use super::document::utility_types::document_metadata::LayerNodeIdentifier; use super::document::utility_types::network_interface; -use super::spreadsheet::SpreadsheetMessageHandler; use super::utility_types::{PanelType, PersistentData}; use crate::application::generate_uuid; -use crate::consts::{DEFAULT_DOCUMENT_NAME, DEFAULT_STROKE_WIDTH}; +use crate::consts::{DEFAULT_DOCUMENT_NAME, DEFAULT_STROKE_WIDTH, FILE_EXTENSION}; use crate::messages::animation::TimingInformation; -use crate::messages::debug::utility_types::MessageLoggingVerbosity; +use crate::messages::clipboard::utility_types::ClipboardContent; use crate::messages::dialog::simple_dialogs; -use crate::messages::frontend::utility_types::FrontendDocumentDetails; +use crate::messages::frontend::utility_types::{DocumentDetails, OpenDocument}; +use crate::messages::input_mapper::utility_types::input_keyboard::Key; +use crate::messages::input_mapper::utility_types::macros::{action_shortcut, action_shortcut_manual}; use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::portfolio::document::DocumentMessageContext; use crate::messages::portfolio::document::graph_operation::utility_types::TransformIn; @@ -20,14 +21,15 @@ use crate::messages::portfolio::document_migration::*; use crate::messages::preferences::SelectionMode; use crate::messages::prelude::*; use crate::messages::tool::common_functionality::graph_modification_utils; -use crate::messages::tool::common_functionality::utility_functions::make_path_editable_is_allowed; -use crate::messages::tool::utility_types::{HintData, HintGroup, ToolType}; +use crate::messages::tool::utility_types::{HintData, ToolType}; +use crate::messages::viewport::ToPhysical; use crate::node_graph_executor::{ExportConfig, NodeGraphExecutor}; -use bezier_rs::BezierHandles; +use derivative::*; use glam::{DAffine2, DVec2}; use graph_craft::document::NodeId; use graphene_std::Color; use graphene_std::renderer::Quad; +use graphene_std::subpath::BezierHandles; use graphene_std::text::Font; use graphene_std::vector::misc::HandleId; use graphene_std::vector::{PointId, SegmentId, Vector, VectorModificationType}; @@ -37,16 +39,16 @@ use std::vec; pub struct PortfolioMessageContext<'a> { pub ipp: &'a InputPreprocessorMessageHandler, pub preferences: &'a PreferencesMessageHandler, + pub animation: &'a AnimationMessageHandler, pub current_tool: &'a ToolType, - pub message_logging_verbosity: MessageLoggingVerbosity, pub reset_node_definitions_on_open: bool, pub timing_information: TimingInformation, - pub animation: &'a AnimationMessageHandler, + pub viewport: &'a ViewportMessageHandler, } -#[derive(Debug, Default, ExtractField)] +#[derive(Debug, Derivative, ExtractField)] +#[derivative(Default)] pub struct PortfolioMessageHandler { - menu_bar_message_handler: MenuBarMessageHandler, pub documents: HashMap, document_ids: VecDeque, active_panel: PanelType, @@ -55,10 +57,12 @@ pub struct PortfolioMessageHandler { pub persistent_data: PersistentData, pub executor: NodeGraphExecutor, pub selection_mode: SelectionMode, - /// The spreadsheet UI allows for graph data to be previewed. - pub spreadsheet: SpreadsheetMessageHandler, - device_pixel_ratio: Option, pub reset_node_definitions_on_open: bool, + pub data_panel_open: bool, + #[derivative(Default(value = "true"))] + pub layers_panel_open: bool, + #[derivative(Default(value = "true"))] + pub properties_panel_open: bool, } #[message_handler_data] @@ -67,73 +71,43 @@ impl MessageHandler> for Portfolio let PortfolioMessageContext { ipp, preferences, + animation, current_tool, - message_logging_verbosity, reset_node_definitions_on_open, timing_information, - animation, + viewport, } = context; match message { // Sub-messages - PortfolioMessage::MenuBar(message) => { - self.menu_bar_message_handler.has_active_document = false; - self.menu_bar_message_handler.canvas_tilted = false; - self.menu_bar_message_handler.canvas_flipped = false; - self.menu_bar_message_handler.rulers_visible = false; - self.menu_bar_message_handler.node_graph_open = false; - self.menu_bar_message_handler.has_selected_nodes = false; - self.menu_bar_message_handler.has_selected_layers = false; - self.menu_bar_message_handler.has_selection_history = (false, false); - self.menu_bar_message_handler.make_path_editable_is_allowed = false; - self.menu_bar_message_handler.spreadsheet_view_open = self.spreadsheet.spreadsheet_view_open; - self.menu_bar_message_handler.message_logging_verbosity = message_logging_verbosity; - self.menu_bar_message_handler.reset_node_definitions_on_open = reset_node_definitions_on_open; - - if let Some(document) = self.active_document_id.and_then(|document_id| self.documents.get_mut(&document_id)) { - self.menu_bar_message_handler.has_active_document = true; - self.menu_bar_message_handler.canvas_tilted = document.document_ptz.tilt() != 0.; - self.menu_bar_message_handler.canvas_flipped = document.document_ptz.flip; - self.menu_bar_message_handler.rulers_visible = document.rulers_visible; - self.menu_bar_message_handler.node_graph_open = document.is_graph_overlay_open(); - let selected_nodes = document.network_interface.selected_nodes(); - self.menu_bar_message_handler.has_selected_nodes = selected_nodes.selected_nodes().next().is_some(); - self.menu_bar_message_handler.has_selected_layers = selected_nodes.selected_visible_layers(&document.network_interface).next().is_some(); - self.menu_bar_message_handler.has_selection_history = { - let metadata = &document.network_interface.document_network_metadata().persistent_metadata; - (!metadata.selection_undo_history.is_empty(), !metadata.selection_redo_history.is_empty()) - }; - self.menu_bar_message_handler.make_path_editable_is_allowed = make_path_editable_is_allowed(&document.network_interface, document.metadata()).is_some(); - } - - self.menu_bar_message_handler.process_message(message, responses, ()); - } - PortfolioMessage::Spreadsheet(message) => { - self.spreadsheet.process_message(message, responses, ()); - } PortfolioMessage::Document(message) => { - if let Some(document_id) = self.active_document_id { - if let Some(document) = self.documents.get_mut(&document_id) { - let document_inputs = DocumentMessageContext { - document_id, - ipp, - persistent_data: &self.persistent_data, - executor: &mut self.executor, - current_tool, - preferences, - device_pixel_ratio: self.device_pixel_ratio.unwrap_or(1.), - }; - document.process_message(message, responses, document_inputs) - } + if let Some(document_id) = self.active_document_id + && let Some(document) = self.documents.get_mut(&document_id) + { + let document_inputs = DocumentMessageContext { + document_id, + ipp, + persistent_data: &self.persistent_data, + executor: &mut self.executor, + current_tool, + preferences, + viewport, + data_panel_open: self.data_panel_open, + layers_panel_open: self.layers_panel_open, + properties_panel_open: self.properties_panel_open, + }; + document.process_message(message, responses, document_inputs) } } // Messages PortfolioMessage::Init => { - // Load persistent data from the browser database - responses.add(FrontendMessage::TriggerLoadFirstAutoSaveDocument); + // Tell frontend to load persistent preferences responses.add(FrontendMessage::TriggerLoadPreferences); + // Tell frontend to load the current document + responses.add(FrontendMessage::TriggerLoadFirstAutoSaveDocument); + // Display the menu bar at the top of the window responses.add(MenuBarMessage::SendLayout); @@ -143,8 +117,24 @@ impl MessageHandler> for Portfolio node_types: document_node_definitions::collect_node_types(), }); - // Finish loading persistent data from the browser database + // Send shortcuts for widgets created in the frontend which need shortcut tooltips + responses.add(FrontendMessage::SendShortcutF11 { + shortcut: action_shortcut_manual!(Key::F11), + }); + responses.add(FrontendMessage::SendShortcutAltClick { + shortcut: action_shortcut_manual!(Key::Alt, Key::MouseLeft), + }); + responses.add(FrontendMessage::SendShortcutShiftClick { + shortcut: action_shortcut_manual!(Key::Shift, Key::MouseLeft), + }); + + // Before loading any documents, initially prepare the welcome screen buttons layout + responses.add(PortfolioMessage::RequestWelcomeScreenButtonsLayout); + + // Tell frontend to finish loading persistent documents responses.add(FrontendMessage::TriggerLoadRestAutoSaveDocuments); + + responses.add(FrontendMessage::TriggerOpenLaunchDocuments); } PortfolioMessage::DocumentPassMessage { document_id, message } => { if let Some(document) = self.documents.get_mut(&document_id) { @@ -155,17 +145,20 @@ impl MessageHandler> for Portfolio executor: &mut self.executor, current_tool, preferences, - device_pixel_ratio: self.device_pixel_ratio.unwrap_or(1.), + viewport, + data_panel_open: self.data_panel_open, + layers_panel_open: self.layers_panel_open, + properties_panel_open: self.properties_panel_open, }; document.process_message(message, responses, document_inputs) } } PortfolioMessage::AutoSaveActiveDocument => { - if let Some(document_id) = self.active_document_id { - if let Some(document) = self.active_document_mut() { - document.set_auto_save_state(true); - responses.add(PortfolioMessage::AutoSaveDocument { document_id }); - } + if let Some(document_id) = self.active_document_id + && let Some(document) = self.active_document_mut() + { + document.set_auto_save_state(true); + responses.add(PortfolioMessage::AutoSaveDocument { document_id }); } } PortfolioMessage::AutoSaveAllDocuments => { @@ -178,13 +171,14 @@ impl MessageHandler> for Portfolio } PortfolioMessage::AutoSaveDocument { document_id } => { let document = self.documents.get(&document_id).unwrap(); - responses.add(FrontendMessage::TriggerIndexedDbWriteDocument { + responses.add(FrontendMessage::TriggerPersistenceWriteDocument { + document_id, document: document.serialize_document(), - details: FrontendDocumentDetails { - is_auto_saved: document.is_auto_saved(), - is_saved: document.is_saved(), - id: document_id, + details: DocumentDetails { name: document.name.clone(), + path: document.path.clone(), + is_saved: document.is_saved(), + is_auto_saved: document.is_auto_saved(), }, }) } @@ -195,18 +189,18 @@ impl MessageHandler> for Portfolio } PortfolioMessage::CloseAllDocuments => { if self.active_document_id.is_some() { - responses.add(BroadcastEvent::ToolAbort); + responses.add(EventMessage::ToolAbort); responses.add(ToolMessage::DeactivateTools); // Clear relevant UI layouts if there are no documents responses.add(PropertiesPanelMessage::Clear); responses.add(DocumentMessage::ClearLayersPanel); - let hint_data = HintData(vec![HintGroup(vec![])]); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + responses.add(DataPanelMessage::ClearLayout); + HintData::clear_layout(responses); } for document_id in &self.document_ids { - responses.add(FrontendMessage::TriggerIndexedDbRemoveDocument { document_id: *document_id }); + responses.add(FrontendMessage::TriggerPersistenceRemoveDocument { document_id: *document_id }); } responses.add(PortfolioMessage::DestroyAllDocuments); @@ -225,13 +219,13 @@ impl MessageHandler> for Portfolio // Clear UI layouts that assume the existence of a document responses.add(PropertiesPanelMessage::Clear); responses.add(DocumentMessage::ClearLayersPanel); - let hint_data = HintData(vec![HintGroup(vec![])]); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + responses.add(DataPanelMessage::ClearLayout); + HintData::clear_layout(responses); } // Actually delete the document (delay to delete document is required to let the document and properties panel messages above get processed) responses.add(PortfolioMessage::DeleteDocument { document_id }); - responses.add(FrontendMessage::TriggerIndexedDbRemoveDocument { document_id }); + responses.add(FrontendMessage::TriggerPersistenceRemoveDocument { document_id }); // Send the new list of document tab names responses.add(PortfolioMessage::UpdateOpenDocumentsList); @@ -239,7 +233,7 @@ impl MessageHandler> for Portfolio PortfolioMessage::CloseDocumentWithConfirmation { document_id } => { let target_document = self.documents.get(&document_id).unwrap(); if target_document.is_saved() { - responses.add(BroadcastEvent::ToolAbort); + responses.add(EventMessage::ToolAbort); responses.add(PortfolioMessage::CloseDocument { document_id }); } else { let dialog = simple_dialogs::CloseDocumentDialog { @@ -253,11 +247,21 @@ impl MessageHandler> for Portfolio } } PortfolioMessage::Copy { clipboard } => { + if context.current_tool == &ToolType::Path { + responses.add(PathToolMessage::Copy { clipboard }); + return; + } + // We can't use `self.active_document()` because it counts as an immutable borrow of the entirety of `self` let Some(active_document) = self.active_document_id.and_then(|id| self.documents.get_mut(&id)) else { return; }; + if active_document.graph_view_overlay_open() { + responses.add(NodeGraphMessage::Copy); + return; + } + let mut copy_val = |buffer: &mut Vec| { let mut ordered_last_elements = active_document.network_interface.shallowest_unique_layers(&[]).collect::>(); @@ -293,10 +297,13 @@ impl MessageHandler> for Portfolio if clipboard == Clipboard::Device { let mut buffer = Vec::new(); copy_val(&mut buffer); - let mut copy_text = String::from("graphite/layer: "); - copy_text += &serde_json::to_string(&buffer).expect("Could not serialize paste"); - - responses.add(FrontendMessage::TriggerTextCopy { copy_text }); + let Ok(data) = serde_json::to_string(&buffer) else { + log::error!("Failed to serialize nodes for clipboard"); + return; + }; + responses.add(ClipboardMessage::Write { + content: ClipboardContent::Layer(data), + }); } else { let copy_buffer = &mut self.copy_buffer; copy_buffer[clipboard as usize].clear(); @@ -304,6 +311,18 @@ impl MessageHandler> for Portfolio } } PortfolioMessage::Cut { clipboard } => { + if context.current_tool == &ToolType::Path { + responses.add(PathToolMessage::Cut { clipboard }); + return; + } + + if let Some(active_document) = self.active_document() + && active_document.graph_view_overlay_open() + { + responses.add(NodeGraphMessage::Cut); + return; + } + responses.add(PortfolioMessage::Copy { clipboard }); responses.add(DocumentMessage::DeleteSelectedLayers); } @@ -333,24 +352,45 @@ impl MessageHandler> for Portfolio self.active_document_id = None; responses.add(MenuBarMessage::SendLayout); } - PortfolioMessage::FontLoaded { - font_family, - font_style, - preview_url, - data, - } => { - let font = Font::new(font_family, font_style); + PortfolioMessage::FontCatalogLoaded { catalog } => { + self.persistent_data.font_catalog = catalog; - self.persistent_data.font_cache.insert(font, preview_url, data); + if let Some(document_id) = self.active_document_id { + responses.add(PortfolioMessage::LoadDocumentResources { document_id }); + } + + // Load the default font + let font = Font::new(graphene_std::consts::DEFAULT_FONT_FAMILY.into(), graphene_std::consts::DEFAULT_FONT_STYLE.into()); + responses.add(PortfolioMessage::LoadFontData { font }); + } + PortfolioMessage::LoadFontData { font } => { + if let Some(style) = self.persistent_data.font_catalog.find_font_style_in_catalog(&font) { + let font = Font::new(font.font_family, style.to_named_style()); + + if !self.persistent_data.font_cache.loaded_font(&font) { + responses.add(FrontendMessage::TriggerFontDataLoad { font, url: style.url }); + } + } + } + PortfolioMessage::FontLoaded { font_family, font_style, data } => { + let font = Font::new(font_family, font_style); + self.persistent_data.font_cache.insert(font, data); self.executor.update_font_cache(self.persistent_data.font_cache.clone()); + for document_id in self.document_ids.iter() { - let inspect_node = self.inspect_node_id(); + let node_to_inspect = self.node_to_inspect(); + + let scale = viewport.scale(); + // Use exact physical dimensions from browser (via ResizeObserver's devicePixelContentBoxSize) + let physical_resolution = viewport.size().to_physical().into_dvec2().round().as_uvec2(); + if let Ok(message) = self.executor.submit_node_graph_evaluation( self.documents.get_mut(document_id).expect("Tried to render non-existent document"), *document_id, - ipp.viewport_bounds.size().as_uvec2(), + physical_resolution, + scale, timing_information, - inspect_node, + node_to_inspect, true, ) { responses.add_front(message); @@ -360,6 +400,10 @@ impl MessageHandler> for Portfolio if self.active_document_mut().is_some() { responses.add(NodeGraphMessage::RunDocumentGraph); } + + if current_tool == &ToolType::Text { + responses.add(TextToolMessage::RefreshEditingFontData); + } } PortfolioMessage::EditorPreferences => self.executor.update_editor_preferences(preferences.editor_preferences()), PortfolioMessage::Import => { @@ -367,31 +411,30 @@ impl MessageHandler> for Portfolio responses.add(FrontendMessage::TriggerImport); } PortfolioMessage::LoadDocumentResources { document_id } => { - if let Some(document) = self.document_mut(document_id) { - document.load_layer_resources(responses); + let catalog = &self.persistent_data.font_catalog; + + if catalog.0.is_empty() { + log::error!("Tried to load document resources before font catalog was loaded"); } - } - PortfolioMessage::LoadFont { font } => { - if !self.persistent_data.font_cache.loaded_font(&font) { - responses.add_front(FrontendMessage::TriggerFontLoad { font }); + + if let Some(document) = self.documents.get_mut(&document_id) { + document.load_layer_resources(responses, catalog); } } PortfolioMessage::NewDocumentWithName { name } => { let mut new_document = DocumentMessageHandler::default(); new_document.name = name; - let mut new_responses = VecDeque::new(); - new_responses.add(DocumentMessage::PTZUpdate); + + responses.add(DocumentMessage::PTZUpdate); let document_id = DocumentId(generate_uuid()); if self.active_document().is_some() { - new_responses.add(BroadcastEvent::ToolAbort); - new_responses.add(NavigationMessage::CanvasPan { delta: (0., 0.).into() }); + responses.add(EventMessage::ToolAbort); + responses.add(NavigationMessage::CanvasPan { delta: (0., 0.).into() }); } - self.load_document(new_document, document_id, &mut new_responses, false); - new_responses.add(PortfolioMessage::SelectDocument { document_id }); - new_responses.extend(responses.drain(..)); - *responses = new_responses; + self.load_document(new_document, document_id, self.layers_panel_open, responses, false); + responses.add(PortfolioMessage::SelectDocument { document_id }); } PortfolioMessage::NextDocument => { if let Some(active_document_id) = self.active_document_id { @@ -408,18 +451,19 @@ impl MessageHandler> for Portfolio } PortfolioMessage::OpenDocumentFile { document_name, + document_path, document_serialized_content, } => { - let document_id = DocumentId(generate_uuid()); responses.add(PortfolioMessage::OpenDocumentFileWithId { - document_id, + document_id: DocumentId(generate_uuid()), document_name, + document_path, document_is_auto_saved: false, document_is_saved: true, document_serialized_content, to_front: false, + select_after_open: true, }); - responses.add(PortfolioMessage::SelectDocument { document_id }); } PortfolioMessage::ToggleResetNodesToDefinitionsOnOpen => { self.reset_node_definitions_on_open = !self.reset_node_definitions_on_open; @@ -428,10 +472,12 @@ impl MessageHandler> for Portfolio PortfolioMessage::OpenDocumentFileWithId { document_id, document_name, + document_path, document_is_auto_saved, document_is_saved, document_serialized_content, to_front, + select_after_open, } => { // Upgrade the document being opened to use fresh copies of all nodes let reset_node_definitions_on_open = reset_node_definitions_on_open || document_migration_reset_node_definition(&document_serialized_content); @@ -439,10 +485,7 @@ impl MessageHandler> for Portfolio let document_serialized_content = document_migration_string_preprocessing(document_serialized_content); // Deserialize the document - let document = DocumentMessageHandler::deserialize_document(&document_serialized_content).map(|mut document| { - document.name.clone_from(&document_name); - document - }); + let document = DocumentMessageHandler::deserialize_document(&document_serialized_content); // Display an error to the user if the document could not be opened let mut document = match document { @@ -503,8 +546,36 @@ impl MessageHandler> for Portfolio document.set_auto_save_state(document_is_auto_saved); document.set_save_state(document_is_saved); + let document_name_from_path = document_path.as_ref().and_then(|path| { + if path.extension().is_some_and(|e| e == FILE_EXTENSION) { + path.file_stem().map(|n| n.to_string_lossy().to_string()) + } else { + None + } + }); + + match (document_name, document_path, document_name_from_path) { + (Some(name), _, None) => { + document.name = name; + } + (_, Some(path), Some(name)) => { + document.name = name; + document.path = Some(path); + } + (_, _, Some(name)) => { + document.name = name; + } + _ => { + document.name = DEFAULT_DOCUMENT_NAME.to_string(); + } + } + // Load the document into the portfolio so it opens in the editor - self.load_document(document, document_id, responses, to_front); + self.load_document(document, document_id, self.layers_panel_open, responses, to_front); + + if select_after_open { + responses.add(PortfolioMessage::SelectDocument { document_id }); + } } PortfolioMessage::PasteIntoFolder { clipboard, parent, insert_index } => { let mut all_new_ids = Vec::new(); @@ -544,7 +615,7 @@ impl MessageHandler> for Portfolio added_nodes = true; } - document.load_layer_resources(responses); + document.load_layer_resources(responses, &self.persistent_data.font_catalog); let new_ids: HashMap<_, _> = entry.nodes.iter().map(|(id, _)| (*id, NodeId::new())).collect(); let layer = LayerNodeIdentifier::new_unchecked(new_ids[&NodeId(0)]); all_new_ids.extend(new_ids.values().cloned()); @@ -657,7 +728,7 @@ impl MessageHandler> for Portfolio } PortfolioMessage::CenterPastedLayers { layers } => { if let Some(document) = self.active_document_mut() { - let viewport_bounds_quad_pixels = Quad::from_box([DVec2::ZERO, ipp.viewport_bounds.size()]); + let viewport_bounds_quad_pixels = Quad::from_box([DVec2::ZERO, viewport.size().into_dvec2()]); // In viewport pixel coordinates let viewport_center_pixels = viewport_bounds_quad_pixels.center(); // In viewport pixel coordinates let doc_to_viewport_transform = document.metadata().document_to_viewport; @@ -770,7 +841,7 @@ impl MessageHandler> for Portfolio if create_document { responses.add(PortfolioMessage::NewDocumentWithName { - name: name.clone().unwrap_or("Untitled Document".into()), + name: name.clone().unwrap_or(DEFAULT_DOCUMENT_NAME.into()), }); } @@ -801,7 +872,7 @@ impl MessageHandler> for Portfolio if create_document { responses.add(PortfolioMessage::NewDocumentWithName { - name: name.clone().unwrap_or("Untitled Document".into()), + name: name.clone().unwrap_or(DEFAULT_DOCUMENT_NAME.into()), }); } @@ -832,14 +903,57 @@ impl MessageHandler> for Portfolio responses.add(PortfolioMessage::SelectDocument { document_id: prev_id }); } } + PortfolioMessage::RequestWelcomeScreenButtonsLayout => { + let donate = "https://graphite.art/donate/"; + + let table = LayoutGroup::Table { + unstyled: true, + rows: vec![ + vec![ + TextButton::new("New Document") + .icon(Some("File".into())) + .flush(true) + .on_commit(|_| DialogMessage::RequestNewDocumentDialog.into()) + .widget_instance(), + ShortcutLabel::new(action_shortcut!(DialogMessageDiscriminant::RequestNewDocumentDialog)).widget_instance(), + ], + vec![ + TextButton::new("Open Document") + .icon(Some("Folder".into())) + .flush(true) + .on_commit(|_| PortfolioMessage::OpenDocument.into()) + .widget_instance(), + ShortcutLabel::new(action_shortcut!(PortfolioMessageDiscriminant::OpenDocument)).widget_instance(), + ], + vec![ + TextButton::new("Open Demo Artwork") + .icon(Some("Image".into())) + .flush(true) + .on_commit(|_| DialogMessage::RequestDemoArtworkDialog.into()) + .widget_instance(), + ], + vec![ + TextButton::new("Support the Development Fund") + .icon(Some("Heart".into())) + .flush(true) + .on_commit(move |_| FrontendMessage::TriggerVisitLink { url: donate.to_string() }.into()) + .widget_instance(), + ], + ], + }; + + responses.add(LayoutMessage::DestroyLayout { + layout_target: LayoutTarget::WelcomeScreenButtons, + }); + responses.add(LayoutMessage::SendLayout { + layout: Layout(vec![table]), + layout_target: LayoutTarget::WelcomeScreenButtons, + }); + } PortfolioMessage::SetActivePanel { panel } => { self.active_panel = panel; responses.add(DocumentMessage::SetActivePanel { active_panel: self.active_panel }); } - PortfolioMessage::SetDevicePixelRatio { ratio } => { - self.device_pixel_ratio = Some(ratio); - responses.add(OverlaysMessage::Draw); - } PortfolioMessage::SelectDocument { document_id } => { // Auto-save the document we are leaving let mut node_graph_open = false; @@ -863,8 +977,8 @@ impl MessageHandler> for Portfolio responses.add(ToolMessage::InitTools); responses.add(NodeGraphMessage::Init); responses.add(OverlaysMessage::Draw); - responses.add(BroadcastEvent::ToolAbort); - responses.add(BroadcastEvent::SelectionChanged); + responses.add(EventMessage::ToolAbort); + responses.add(EventMessage::SelectionChanged); responses.add(NavigationMessage::CanvasPan { delta: (0., 0.).into() }); responses.add(NodeGraphMessage::RunDocumentGraph); responses.add(DocumentMessage::GraphViewOverlay { open: node_graph_open }); @@ -882,13 +996,15 @@ impl MessageHandler> for Portfolio }; if !document.is_loaded { document.is_loaded = true; - responses.add(PortfolioMessage::LoadDocumentResources { document_id }); + if self.persistent_data.font_catalog.0.is_empty() { + responses.add_front(FrontendMessage::TriggerFontCatalogLoad); + } responses.add(PortfolioMessage::UpdateDocumentWidgets); responses.add(PropertiesPanelMessage::Clear); } } PortfolioMessage::SubmitDocumentExport { - file_name, + name, file_type, scale_factor, bounds, @@ -896,7 +1012,7 @@ impl MessageHandler> for Portfolio } => { let document = self.active_document_id.and_then(|id| self.documents.get_mut(&id)).expect("Tried to render non-existent document"); let export_config = ExportConfig { - file_name, + name, file_type, scale_factor, bounds, @@ -918,15 +1034,20 @@ impl MessageHandler> for Portfolio } } PortfolioMessage::SubmitGraphRender { document_id, ignore_hash } => { - let inspect_node = self.inspect_node_id(); - let result = self.executor.submit_node_graph_evaluation( - self.documents.get_mut(&document_id).expect("Tried to render non-existent document"), - document_id, - ipp.viewport_bounds.size().as_uvec2(), - timing_information, - inspect_node, - ignore_hash, - ); + let node_to_inspect = self.node_to_inspect(); + + let Some(document) = self.documents.get_mut(&document_id) else { + log::error!("Tried to render non-existent document"); + return; + }; + + let scale = viewport.scale(); + // Use exact physical dimensions from browser (via ResizeObserver's devicePixelContentBoxSize) + let physical_resolution = viewport.size().to_physical().into_dvec2().round().as_uvec2(); + + let result = self + .executor + .submit_node_graph_evaluation(document, document_id, physical_resolution, scale, timing_information, node_to_inspect, ignore_hash); match result { Err(description) => { @@ -938,6 +1059,58 @@ impl MessageHandler> for Portfolio Ok(message) => responses.add_front(message), } } + PortfolioMessage::ToggleDataPanelOpen => { + self.data_panel_open = !self.data_panel_open; + responses.add(MenuBarMessage::SendLayout); + + // Run the graph to grab the data + if self.data_panel_open { + // When opening, we make the frontend show the panel first so it can start receiving its message subscriptions for the data it will display + responses.add(FrontendMessage::UpdateDataPanelState { open: self.data_panel_open }); + + responses.add(NodeGraphMessage::RunDocumentGraph); + } else { + // If we don't clear the panel, the layout diffing system will assume widgets still exist when it attempts to update the data panel next time it is opened + responses.add(DataPanelMessage::ClearLayout); + + // When closing, we make the frontend hide the panel last so it can finish receiving its message subscriptions before it is destroyed + responses.add(FrontendMessage::UpdateDataPanelState { open: self.data_panel_open }); + } + } + PortfolioMessage::TogglePropertiesPanelOpen => { + self.properties_panel_open = !self.properties_panel_open; + responses.add(MenuBarMessage::SendLayout); + + responses.add(FrontendMessage::UpdatePropertiesPanelState { open: self.properties_panel_open }); + + // Run the graph to grab the data + if self.properties_panel_open { + responses.add(NodeGraphMessage::RunDocumentGraph); + } + + responses.add(PropertiesPanelMessage::Refresh); + } + PortfolioMessage::ToggleLayersPanelOpen => { + self.layers_panel_open = !self.layers_panel_open; + responses.add(MenuBarMessage::SendLayout); + + // Run the graph to grab the data + if self.layers_panel_open { + // When opening, we make the frontend show the panel first so it can start receiving its message subscriptions for the data it will display + responses.add(FrontendMessage::UpdateLayersPanelState { open: self.layers_panel_open }); + + responses.add(NodeGraphMessage::RunDocumentGraph); + responses.add(DeferMessage::AfterGraphRun { + messages: vec![NodeGraphMessage::UpdateLayerPanel.into(), DocumentMessage::DocumentStructureChanged.into()], + }); + } else { + // If we don't clear the panel, the layout diffing system will assume widgets still exist when it attempts to update the layers panel next time it is opened + responses.add(DocumentMessage::ClearLayersPanel); + + // When closing, we make the frontend hide the panel last so it can finish receiving its message subscriptions before it is destroyed + responses.add(FrontendMessage::UpdateLayersPanelState { open: self.layers_panel_open }); + } + } PortfolioMessage::ToggleRulers => { if let Some(document) = self.active_document_mut() { document.rulers_visible = !document.rulers_visible; @@ -957,15 +1130,25 @@ impl MessageHandler> for Portfolio .document_ids .iter() .filter_map(|id| { - self.documents.get(id).map(|document| FrontendDocumentDetails { - is_auto_saved: document.is_auto_saved(), - is_saved: document.is_saved(), + self.documents.get(id).map(|document| OpenDocument { id: *id, - name: document.name.clone(), + details: DocumentDetails { + name: document.name.clone(), + path: document.path.clone(), + is_saved: document.is_saved(), + is_auto_saved: document.is_auto_saved(), + }, }) }) .collect::>(); + + let no_open_documents = open_documents.is_empty(); + responses.add(FrontendMessage::UpdateOpenDocumentsList { open_documents }); + + if no_open_documents { + responses.add(PortfolioMessage::RequestWelcomeScreenButtonsLayout); + } } PortfolioMessage::UpdateVelloPreference => { let active = if cfg!(target_family = "wasm") { false } else { preferences.use_vello }; @@ -987,6 +1170,7 @@ impl MessageHandler> for Portfolio PasteIntoFolder, PrevDocument, ToggleRulers, + ToggleDataPanelOpen, ); // Extend with actions that require an active document @@ -1056,24 +1240,20 @@ impl PortfolioMessageHandler { } } - fn load_document(&mut self, new_document: DocumentMessageHandler, document_id: DocumentId, responses: &mut VecDeque, to_front: bool) { + fn load_document(&mut self, mut new_document: DocumentMessageHandler, document_id: DocumentId, layers_panel_open: bool, responses: &mut VecDeque, to_front: bool) { if to_front { self.document_ids.push_front(document_id); } else { self.document_ids.push_back(document_id); } - new_document.update_layers_panel_control_bar_widgets(responses); - new_document.update_layers_panel_bottom_bar_widgets(responses); + new_document.update_layers_panel_control_bar_widgets(layers_panel_open, responses); + new_document.update_layers_panel_bottom_bar_widgets(layers_panel_open, responses); self.documents.insert(document_id, new_document); if self.active_document().is_some() { - responses.add(BroadcastEvent::ToolAbort); + responses.add(EventMessage::ToolAbort); responses.add(ToolMessage::DeactivateTools); - } else { - // Load the default font upon creating the first document - let font = Font::new(graphene_std::consts::DEFAULT_FONT_FAMILY.into(), graphene_std::consts::DEFAULT_FONT_STYLE.into()); - responses.add(FrontendMessage::TriggerFontLoad { font }); } // TODO: Remove this and find a way to fix the issue where creating a new document when the node graph is open causes the transform in the new document to be incorrect @@ -1083,7 +1263,7 @@ impl PortfolioMessageHandler { /// Returns an iterator over the open documents in order. pub fn ordered_document_iterator(&self) -> impl Iterator { - self.document_ids.iter().map(|id| self.documents.get(id).expect("document id was not found in the document hashmap")) + self.document_ids.iter().map(|id| self.documents.get(id).expect("Document id was not found in the document hashmap")) } fn document_index(&self, document_id: DocumentId) -> usize { @@ -1111,17 +1291,17 @@ impl PortfolioMessageHandler { result } - /// Get the id of the node that should be used as the target for the spreadsheet - pub fn inspect_node_id(&self) -> Option { - // Spreadsheet not open, skipping - if !self.spreadsheet.spreadsheet_view_open { + /// Get the ID of the selected node that should be used as the current source for the Data panel. + pub fn node_to_inspect(&self) -> Option { + // Skip if the Data panel is not open + if !self.data_panel_open { return None; } let document = self.documents.get(&self.active_document_id?)?; let selected_nodes = document.network_interface.selected_nodes().0; - // Selected nodes != 1, skipping + // Skip if there is not exactly one selected node if selected_nodes.len() != 1 { return None; } diff --git a/editor/src/messages/portfolio/spreadsheet/mod.rs b/editor/src/messages/portfolio/spreadsheet/mod.rs deleted file mode 100644 index 1523ea0d2..000000000 --- a/editor/src/messages/portfolio/spreadsheet/mod.rs +++ /dev/null @@ -1,7 +0,0 @@ -mod spreadsheet_message; -mod spreadsheet_message_handler; - -#[doc(inline)] -pub use spreadsheet_message::*; -#[doc(inline)] -pub use spreadsheet_message_handler::*; diff --git a/editor/src/messages/portfolio/spreadsheet/spreadsheet_message_handler.rs b/editor/src/messages/portfolio/spreadsheet/spreadsheet_message_handler.rs deleted file mode 100644 index 7a218be90..000000000 --- a/editor/src/messages/portfolio/spreadsheet/spreadsheet_message_handler.rs +++ /dev/null @@ -1,333 +0,0 @@ -use super::VectorDomain; -use crate::messages::layout::utility_types::layout_widget::{Layout, LayoutGroup, LayoutTarget, WidgetLayout}; -use crate::messages::prelude::*; -use crate::messages::tool::tool_messages::tool_prelude::*; -use graph_craft::document::NodeId; -use graphene_std::Color; -use graphene_std::Context; -use graphene_std::memo::IORecord; -use graphene_std::raster::Image; -use graphene_std::table::Table; -use graphene_std::vector::Vector; -use graphene_std::{Artboard, Graphic}; -use std::any::Any; -use std::sync::Arc; - -/// The spreadsheet UI allows for graph data to be previewed. -#[derive(Default, Debug, Clone, ExtractField)] -pub struct SpreadsheetMessageHandler { - /// Sets whether or not the spreadsheet is drawn. - pub spreadsheet_view_open: bool, - inspect_node: Option, - introspected_data: Option>, - element_path: Vec, - viewing_vector_domain: VectorDomain, -} - -#[message_handler_data] -impl MessageHandler for SpreadsheetMessageHandler { - fn process_message(&mut self, message: SpreadsheetMessage, responses: &mut VecDeque, _: ()) { - match message { - SpreadsheetMessage::ToggleOpen => { - self.spreadsheet_view_open = !self.spreadsheet_view_open; - // Run the graph to grab the data - if self.spreadsheet_view_open { - responses.add(NodeGraphMessage::RunDocumentGraph); - } - // Update checked UI state for open - responses.add(MenuBarMessage::SendLayout); - self.update_layout(responses); - } - - SpreadsheetMessage::UpdateLayout { mut inspect_result } => { - self.inspect_node = Some(inspect_result.inspect_node); - self.introspected_data = inspect_result.take_data(); - self.update_layout(responses) - } - - SpreadsheetMessage::PushToElementPath { index } => { - self.element_path.push(index); - self.update_layout(responses); - } - SpreadsheetMessage::TruncateElementPath { len } => { - self.element_path.truncate(len); - self.update_layout(responses); - } - - SpreadsheetMessage::ViewVectorDomain { domain } => { - self.viewing_vector_domain = domain; - self.update_layout(responses); - } - } - } - - fn actions(&self) -> ActionList { - actions!(SpreadsheetMessage;) - } -} - -impl SpreadsheetMessageHandler { - fn update_layout(&mut self, responses: &mut VecDeque) { - responses.add(FrontendMessage::UpdateSpreadsheetState { - node: self.inspect_node, - open: self.spreadsheet_view_open, - }); - if !self.spreadsheet_view_open { - return; - } - let mut layout_data = LayoutData { - current_depth: 0, - desired_path: &mut self.element_path, - breadcrumbs: Vec::new(), - vector_domain: self.viewing_vector_domain, - }; - let mut layout = self - .introspected_data - .as_ref() - .map(|instrospected_data| generate_layout(instrospected_data, &mut layout_data)) - .unwrap_or_else(|| Some(label("No data"))) - .unwrap_or_else(|| label("Failed to downcast data")); - - if layout_data.breadcrumbs.len() > 1 { - let breadcrumb = BreadcrumbTrailButtons::new(layout_data.breadcrumbs) - .on_update(|&len| SpreadsheetMessage::TruncateElementPath { len: len as usize }.into()) - .widget_holder(); - layout.insert(0, LayoutGroup::Row { widgets: vec![breadcrumb] }); - } - - responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(WidgetLayout { layout }), - layout_target: LayoutTarget::Spreadsheet, - }); - } -} - -struct LayoutData<'a> { - current_depth: usize, - desired_path: &'a mut Vec, - breadcrumbs: Vec, - vector_domain: VectorDomain, -} - -fn generate_layout(introspected_data: &Arc, data: &mut LayoutData) -> Option> { - // We simply try random types. TODO: better strategy. - #[allow(clippy::manual_map)] - if let Some(io) = introspected_data.downcast_ref::>>() { - Some(io.output.layout_with_breadcrumb(data)) - } else if let Some(io) = introspected_data.downcast_ref::>>() { - Some(io.output.layout_with_breadcrumb(data)) - } else if let Some(io) = introspected_data.downcast_ref::>>() { - Some(io.output.layout_with_breadcrumb(data)) - } else if let Some(io) = introspected_data.downcast_ref::>>() { - Some(io.output.layout_with_breadcrumb(data)) - } else if let Some(io) = introspected_data.downcast_ref::>>() { - Some(io.output.layout_with_breadcrumb(data)) - } else if let Some(io) = introspected_data.downcast_ref::>>() { - Some(io.output.layout_with_breadcrumb(data)) - } else { - None - } -} - -fn column_headings(value: &[&str]) -> Vec { - value.iter().map(|text| TextLabel::new(*text).widget_holder()).collect() -} - -fn label(x: impl Into) -> Vec { - let error = vec![TextLabel::new(x).widget_holder()]; - vec![LayoutGroup::Row { widgets: error }] -} - -trait TableRowLayout { - fn type_name() -> &'static str; - fn identifier(&self) -> String; - fn layout_with_breadcrumb(&self, data: &mut LayoutData) -> Vec { - data.breadcrumbs.push(self.identifier()); - self.compute_layout(data) - } - fn compute_layout(&self, data: &mut LayoutData) -> Vec; -} - -impl TableRowLayout for Graphic { - fn type_name() -> &'static str { - "Graphic" - } - fn identifier(&self) -> String { - match self { - Self::Graphic(graphic) => graphic.identifier(), - Self::Vector(vector) => vector.identifier(), - Self::RasterCPU(_) => "Raster (on CPU)".to_string(), - Self::RasterGPU(_) => "Raster (on GPU)".to_string(), - Self::Color(_) => "Color".to_string(), - } - } - // Don't put a breadcrumb for Graphic - fn layout_with_breadcrumb(&self, data: &mut LayoutData) -> Vec { - self.compute_layout(data) - } - fn compute_layout(&self, data: &mut LayoutData) -> Vec { - match self { - Self::Graphic(table) => table.layout_with_breadcrumb(data), - Self::Vector(table) => table.layout_with_breadcrumb(data), - Self::RasterCPU(_) => label("Raster is not supported"), - Self::RasterGPU(_) => label("Raster is not supported"), - Self::Color(color) => { - let rows = vec![vec![ - TextLabel::new(format!("Colors:\n{}", color.iter().map(|color| color.element.to_rgba_hex_srgb()).collect::>().join("\n"))).widget_holder(), - ]]; - vec![LayoutGroup::Table { rows }] - } - } - } -} - -impl TableRowLayout for Vector { - fn type_name() -> &'static str { - "Vector" - } - fn identifier(&self) -> String { - format!( - "Vector ({} point{}, {} segment{})", - self.point_domain.ids().len(), - if self.point_domain.ids().len() == 1 { "" } else { "s" }, - self.segment_domain.ids().len(), - if self.segment_domain.ids().len() == 1 { "" } else { "s" } - ) - } - fn compute_layout(&self, data: &mut LayoutData) -> Vec { - let colinear = self.colinear_manipulators.iter().map(|[a, b]| format!("[{a} / {b}]")).collect::>().join(", "); - let colinear = if colinear.is_empty() { "None" } else { &colinear }; - let style = vec![ - TextLabel::new(format!( - "{}\n\nColinear Handle IDs: {}\nPreserves Reference to Upstream Nested Layers for Editing by Tools: {}", - self.style, - colinear, - if self.upstream_nested_layers.is_some() { "Yes" } else { "No" } - )) - .multiline(true) - .widget_holder(), - ]; - - let domain_entries = [VectorDomain::Points, VectorDomain::Segments, VectorDomain::Regions] - .into_iter() - .map(|domain| { - RadioEntryData::new(format!("{domain:?}")) - .label(format!("{domain:?}")) - .on_update(move |_| SpreadsheetMessage::ViewVectorDomain { domain }.into()) - }) - .collect(); - let domain = vec![RadioInput::new(domain_entries).selected_index(Some(data.vector_domain as u32)).widget_holder()]; - - let mut table_rows = Vec::new(); - match data.vector_domain { - VectorDomain::Points => { - table_rows.push(column_headings(&["", "position"])); - table_rows.extend( - self.point_domain - .iter() - .map(|(id, position)| vec![TextLabel::new(format!("{}", id.inner())).widget_holder(), TextLabel::new(format!("{}", position)).widget_holder()]), - ); - } - VectorDomain::Segments => { - table_rows.push(column_headings(&["", "start_index", "end_index", "handles"])); - table_rows.extend(self.segment_domain.iter().map(|(id, start, end, handles)| { - vec![ - TextLabel::new(format!("{}", id.inner())).widget_holder(), - TextLabel::new(format!("{}", start)).widget_holder(), - TextLabel::new(format!("{}", end)).widget_holder(), - TextLabel::new(format!("{:?}", handles)).widget_holder(), - ] - })); - } - VectorDomain::Regions => { - table_rows.push(column_headings(&["", "segment_range", "fill"])); - table_rows.extend(self.region_domain.iter().map(|(id, segment_range, fill)| { - vec![ - TextLabel::new(format!("{}", id.inner())).widget_holder(), - TextLabel::new(format!("{:?}", segment_range)).widget_holder(), - TextLabel::new(format!("{}", fill.inner())).widget_holder(), - ] - })); - } - } - - vec![LayoutGroup::Row { widgets: style }, LayoutGroup::Row { widgets: domain }, LayoutGroup::Table { rows: table_rows }] - } -} - -impl TableRowLayout for Image { - fn type_name() -> &'static str { - "Image" - } - fn identifier(&self) -> String { - format!("Image ({}x{})", self.width, self.height) - } - fn compute_layout(&self, _data: &mut LayoutData) -> Vec { - let rows = vec![vec![TextLabel::new(format!("Image ({}x{})", self.width, self.height)).widget_holder()]]; - vec![LayoutGroup::Table { rows }] - } -} - -impl TableRowLayout for Artboard { - fn type_name() -> &'static str { - "Artboard" - } - fn identifier(&self) -> String { - self.label.clone() - } - fn compute_layout(&self, data: &mut LayoutData) -> Vec { - self.content.compute_layout(data) - } -} - -impl TableRowLayout for Table { - fn type_name() -> &'static str { - "Table" - } - fn identifier(&self) -> String { - format!("Table<{}> ({} row{})", T::type_name(), self.len(), if self.len() == 1 { "" } else { "s" }) - } - fn compute_layout(&self, data: &mut LayoutData) -> Vec { - if let Some(index) = data.desired_path.get(data.current_depth).copied() { - if let Some(row) = self.get(index) { - data.current_depth += 1; - let result = row.element.layout_with_breadcrumb(data); - data.current_depth -= 1; - return result; - } else { - warn!("Desired path truncated"); - data.desired_path.truncate(data.current_depth); - } - } - - let mut rows = self - .iter() - .enumerate() - .map(|(index, row)| { - let (scale, angle, translation) = row.transform.to_scale_angle_translation(); - let rotation = if angle == -0. { 0. } else { angle.to_degrees() }; - let round = |x: f64| (x * 1e3).round() / 1e3; - vec![ - TextLabel::new(format!("{index}")).widget_holder(), - TextButton::new(row.element.identifier()) - .on_update(move |_| SpreadsheetMessage::PushToElementPath { index }.into()) - .widget_holder(), - TextLabel::new(format!( - "Location: ({} px, {} px) โ€” Rotation: {rotation:2}ยฐ โ€” Scale: ({}x, {}x)", - round(translation.x), - round(translation.y), - round(scale.x), - round(scale.y) - )) - .widget_holder(), - TextLabel::new(format!("{}", row.alpha_blending)).widget_holder(), - TextLabel::new(row.source_node_id.map_or_else(|| "-".to_string(), |id| format!("{}", id.0))).widget_holder(), - ] - }) - .collect::>(); - - rows.insert(0, column_headings(&["", "element", "transform", "alpha_blending", "source_node_id"])); - - vec![LayoutGroup::Table { rows }] - } -} diff --git a/editor/src/messages/portfolio/utility_types.rs b/editor/src/messages/portfolio/utility_types.rs index c8cce2802..54a526ecd 100644 --- a/editor/src/messages/portfolio/utility_types.rs +++ b/editor/src/messages/portfolio/utility_types.rs @@ -1,11 +1,87 @@ -use graphene_std::text::FontCache; +use graphene_std::text::{Font, FontCache}; #[derive(Debug, Default)] pub struct PersistentData { pub font_cache: FontCache, + pub font_catalog: FontCatalog, pub use_vello: bool, } +// TODO: Should this be a BTreeMap instead? +#[derive(Clone, Debug, Default, Eq, PartialEq, serde::Serialize, serde::Deserialize)] +pub struct FontCatalog(pub Vec); + +impl FontCatalog { + pub fn find_font_style_in_catalog(&self, font: &Font) -> Option { + let family = self.0.iter().find(|family| family.name == font.font_family); + + let found_style = family.map(|family| { + let FontCatalogStyle { weight, italic, .. } = FontCatalogStyle::from_named_style(&font.font_style, ""); + family.closest_style(weight, italic).clone() + }); + + if found_style.is_none() { + log::warn!("Font not found in catalog: {:?}", font); + } + + found_style + } +} + +#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize, serde::Deserialize)] +pub struct FontCatalogFamily { + /// The font family name. + pub name: String, + /// The font styles (variants) available for the font family. + pub styles: Vec, +} + +impl FontCatalogFamily { + /// Finds the closest style to the given weight and italic setting. + /// Aims to find the nearest weight while maintaining the italic setting if possible, but italic may change if no other option is available. + pub fn closest_style(&self, weight: u32, italic: bool) -> &FontCatalogStyle { + self.styles + .iter() + .map(|style| ((style.weight as i32 - weight as i32).unsigned_abs() + 10000 * (style.italic != italic) as u32, style)) + .min_by_key(|(distance, _)| *distance) + .map(|(_, style)| style) + .unwrap_or(&self.styles[0]) + } +} + +#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize, serde::Deserialize)] +pub struct FontCatalogStyle { + pub weight: u32, + pub italic: bool, + pub url: String, +} + +impl FontCatalogStyle { + pub fn to_named_style(&self) -> String { + let weight = self.weight; + let italic = self.italic; + + let named_weight = Font::named_weight(weight); + let maybe_italic = if italic { " Italic" } else { "" }; + + format!("{named_weight}{maybe_italic} ({weight})") + } + + pub fn from_named_style(named_style: &str, url: impl Into) -> FontCatalogStyle { + let weight = named_style.split_terminator(['(', ')']).next_back().and_then(|x| x.parse::().ok()).unwrap_or(400); + let italic = named_style.contains("Italic ("); + FontCatalogStyle { weight, italic, url: url.into() } + } + + /// Get the URL for the stylesheet for loading a font preview for this style of the given family name, subsetted to only the letters in the family name. + pub fn preview_url(&self, family: impl Into) -> String { + let name = family.into().replace(' ', "+"); + let italic = if self.italic { "ital," } else { "" }; + let weight = self.weight; + format!("https://fonts.googleapis.com/css2?display=swap&family={name}:{italic}wght@{weight}&text={name}") + } +} + #[derive(PartialEq, Eq, Clone, Copy, Default, Debug, serde::Serialize, serde::Deserialize)] pub enum Platform { #[default] @@ -41,18 +117,20 @@ pub enum KeyboardPlatformLayout { pub enum PanelType { #[default] Document, + Welcome, Layers, Properties, - Spreadsheet, + DataPanel, } impl From for PanelType { fn from(value: String) -> Self { match value.as_str() { "Document" => PanelType::Document, + "Welcome" => PanelType::Welcome, "Layers" => PanelType::Layers, "Properties" => PanelType::Properties, - "Spreadsheet" => PanelType::Spreadsheet, + "Data" => PanelType::DataPanel, _ => panic!("Unknown panel type: {value}"), } } diff --git a/editor/src/messages/preferences/mod.rs b/editor/src/messages/preferences/mod.rs index 916c384f8..3f485b23c 100644 --- a/editor/src/messages/preferences/mod.rs +++ b/editor/src/messages/preferences/mod.rs @@ -1,5 +1,5 @@ mod preferences_message; -mod preferences_message_handler; +pub mod preferences_message_handler; pub mod utility_types; #[doc(inline)] diff --git a/editor/src/messages/preferences/preferences_message.rs b/editor/src/messages/preferences/preferences_message.rs index b8988fa3e..6408cd5d2 100644 --- a/editor/src/messages/preferences/preferences_message.rs +++ b/editor/src/messages/preferences/preferences_message.rs @@ -6,14 +6,15 @@ use crate::messages::prelude::*; #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] pub enum PreferencesMessage { // Management messages - Load { preferences: String }, + Load { preferences: Option }, ResetToDefaults, // Per-preference messages UseVello { use_vello: bool }, SelectionMode { selection_mode: SelectionMode }, - VectorMeshes { enabled: bool }, + BrushTool { enabled: bool }, ModifyLayout { zoom_with_scroll: bool }, GraphWireStyle { style: GraphWireStyle }, ViewportZoomWheelRate { rate: f64 }, + UIScale { scale: f64 }, } diff --git a/editor/src/messages/preferences/preferences_message_handler.rs b/editor/src/messages/preferences/preferences_message_handler.rs index a79ad379b..6321119c5 100644 --- a/editor/src/messages/preferences/preferences_message_handler.rs +++ b/editor/src/messages/preferences/preferences_message_handler.rs @@ -1,18 +1,26 @@ -use crate::consts::VIEWPORT_ZOOM_WHEEL_RATE; +use crate::consts::{UI_SCALE_DEFAULT, VIEWPORT_ZOOM_WHEEL_RATE}; use crate::messages::input_mapper::key_mapping::MappingVariant; use crate::messages::portfolio::document::utility_types::wires::GraphWireStyle; use crate::messages::preferences::SelectionMode; use crate::messages::prelude::*; +use crate::messages::tool::utility_types::ToolType; use graph_craft::wasm_application_io::EditorPreferences; +#[derive(ExtractField)] +pub struct PreferencesMessageContext<'a> { + pub tool_message_handler: &'a ToolMessageHandler, +} + #[derive(Debug, PartialEq, Clone, serde::Serialize, serde::Deserialize, specta::Type, ExtractField)] +#[serde(default)] pub struct PreferencesMessageHandler { pub selection_mode: SelectionMode, pub zoom_with_scroll: bool, pub use_vello: bool, - pub vector_meshes: bool, + pub brush_tool: bool, pub graph_wire_style: GraphWireStyle, pub viewport_zoom_wheel_rate: f64, + pub ui_scale: f64, } impl PreferencesMessageHandler { @@ -37,32 +45,36 @@ impl Default for PreferencesMessageHandler { selection_mode: SelectionMode::Touched, zoom_with_scroll: matches!(MappingVariant::default(), MappingVariant::ZoomWithScroll), use_vello: EditorPreferences::default().use_vello, - vector_meshes: false, + brush_tool: false, graph_wire_style: GraphWireStyle::default(), viewport_zoom_wheel_rate: VIEWPORT_ZOOM_WHEEL_RATE, + ui_scale: UI_SCALE_DEFAULT, } } } #[message_handler_data] -impl MessageHandler for PreferencesMessageHandler { - fn process_message(&mut self, message: PreferencesMessage, responses: &mut VecDeque, _: ()) { +impl MessageHandler> for PreferencesMessageHandler { + fn process_message(&mut self, message: PreferencesMessage, responses: &mut VecDeque, context: PreferencesMessageContext) { + let PreferencesMessageContext { tool_message_handler } = context; + match message { // Management messages PreferencesMessage::Load { preferences } => { - if let Ok(deserialized_preferences) = serde_json::from_str::(&preferences) { - *self = deserialized_preferences; - - responses.add(PortfolioMessage::EditorPreferences); - responses.add(PortfolioMessage::UpdateVelloPreference); - responses.add(PreferencesMessage::ModifyLayout { - zoom_with_scroll: self.zoom_with_scroll, - }); + if let Some(preferences) = preferences { + *self = preferences; } + + responses.add(PortfolioMessage::EditorPreferences); + responses.add(PortfolioMessage::UpdateVelloPreference); + responses.add(PreferencesMessage::ModifyLayout { + zoom_with_scroll: self.zoom_with_scroll, + }); + responses.add(FrontendMessage::UpdateUIScale { scale: self.ui_scale }); } PreferencesMessage::ResetToDefaults => { refresh_dialog(responses); - responses.add(KeyMappingMessage::ModifyMapping(MappingVariant::Default)); + responses.add(KeyMappingMessage::ModifyMapping { mapping: MappingVariant::Default }); *self = Self::default() } @@ -73,14 +85,20 @@ impl MessageHandler for PreferencesMessageHandler { responses.add(PortfolioMessage::UpdateVelloPreference); responses.add(PortfolioMessage::EditorPreferences); } - PreferencesMessage::VectorMeshes { enabled } => { - self.vector_meshes = enabled; + PreferencesMessage::BrushTool { enabled } => { + self.brush_tool = enabled; + + if !enabled && tool_message_handler.tool_state.tool_data.active_tool_type == ToolType::Brush { + responses.add(ToolMessage::ActivateToolSelect); + } + + responses.add(ToolMessage::RefreshToolShelf); } PreferencesMessage::ModifyLayout { zoom_with_scroll } => { self.zoom_with_scroll = zoom_with_scroll; let variant = if zoom_with_scroll { MappingVariant::ZoomWithScroll } else { MappingVariant::Default }; - responses.add(KeyMappingMessage::ModifyMapping(variant)); + responses.add(KeyMappingMessage::ModifyMapping { mapping: variant }); } PreferencesMessage::SelectionMode { selection_mode } => { self.selection_mode = selection_mode; @@ -93,6 +111,10 @@ impl MessageHandler for PreferencesMessageHandler { PreferencesMessage::ViewportZoomWheelRate { rate } => { self.viewport_zoom_wheel_rate = rate; } + PreferencesMessage::UIScale { scale } => { + self.ui_scale = scale; + responses.add(FrontendMessage::UpdateUIScale { scale: self.ui_scale }); + } } responses.add(FrontendMessage::TriggerSavePreferences { preferences: self.clone() }); diff --git a/editor/src/messages/preferences/utility_types.rs b/editor/src/messages/preferences/utility_types.rs index a2ee5dece..dabcb5b7e 100644 --- a/editor/src/messages/preferences/utility_types.rs +++ b/editor/src/messages/preferences/utility_types.rs @@ -19,9 +19,9 @@ impl std::fmt::Display for SelectionMode { impl SelectionMode { pub fn tooltip_description(&self) -> &'static str { match self { - SelectionMode::Touched => "Select all layers at least partially covered by the dragged selection area", - SelectionMode::Enclosed => "Select only layers fully enclosed by the dragged selection area", - SelectionMode::Directional => r#""Touched" for leftward drags, "Enclosed" for rightward drags"#, + SelectionMode::Touched => "Select all layers at least partially covered by the dragged selection area.", + SelectionMode::Enclosed => "Select only layers fully enclosed by the dragged selection area.", + SelectionMode::Directional => r#""Touched" for leftward drags, "Enclosed" for rightward drags."#, } } } diff --git a/editor/src/messages/prelude.rs b/editor/src/messages/prelude.rs index 1f12aad6b..f64cbf0ee 100644 --- a/editor/src/messages/prelude.rs +++ b/editor/src/messages/prelude.rs @@ -1,10 +1,13 @@ -// Root -pub use crate::utility_traits::{ActionList, AsMessage, HierarchicalTree, MessageHandler, ToDiscriminant, TransitiveChild}; +// Message-related +pub use crate::utility_traits::{ActionList, AsMessage, ExtractField, HierarchicalTree, MessageHandler, ToDiscriminant, TransitiveChild}; pub use crate::utility_types::{DebugMessageTree, MessageData}; + // Message, MessageData, MessageDiscriminant, MessageHandler pub use crate::messages::animation::{AnimationMessage, AnimationMessageDiscriminant, AnimationMessageHandler}; pub use crate::messages::app_window::{AppWindowMessage, AppWindowMessageDiscriminant, AppWindowMessageHandler}; +pub use crate::messages::broadcast::event::{EventMessage, EventMessageContext, EventMessageDiscriminant, EventMessageHandler}; pub use crate::messages::broadcast::{BroadcastMessage, BroadcastMessageDiscriminant, BroadcastMessageHandler}; +pub use crate::messages::clipboard::{ClipboardMessage, ClipboardMessageDiscriminant, ClipboardMessageHandler}; pub use crate::messages::debug::{DebugMessage, DebugMessageDiscriminant, DebugMessageHandler}; pub use crate::messages::defer::{DeferMessage, DeferMessageDiscriminant, DeferMessageHandler}; pub use crate::messages::dialog::export_dialog::{ExportDialogMessage, ExportDialogMessageContext, ExportDialogMessageDiscriminant, ExportDialogMessageHandler}; @@ -17,22 +20,21 @@ pub use crate::messages::input_mapper::key_mapping::{KeyMappingMessage, KeyMappi pub use crate::messages::input_mapper::{InputMapperMessage, InputMapperMessageContext, InputMapperMessageDiscriminant, InputMapperMessageHandler}; pub use crate::messages::input_preprocessor::{InputPreprocessorMessage, InputPreprocessorMessageContext, InputPreprocessorMessageDiscriminant, InputPreprocessorMessageHandler}; pub use crate::messages::layout::{LayoutMessage, LayoutMessageDiscriminant, LayoutMessageHandler}; +pub use crate::messages::menu_bar::{MenuBarMessage, MenuBarMessageDiscriminant, MenuBarMessageHandler}; +pub use crate::messages::portfolio::document::data_panel::{DataPanelMessage, DataPanelMessageDiscriminant}; pub use crate::messages::portfolio::document::graph_operation::{GraphOperationMessage, GraphOperationMessageContext, GraphOperationMessageDiscriminant, GraphOperationMessageHandler}; pub use crate::messages::portfolio::document::navigation::{NavigationMessage, NavigationMessageContext, NavigationMessageDiscriminant, NavigationMessageHandler}; pub use crate::messages::portfolio::document::node_graph::{NodeGraphMessage, NodeGraphMessageDiscriminant, NodeGraphMessageHandler}; pub use crate::messages::portfolio::document::overlays::{OverlaysMessage, OverlaysMessageContext, OverlaysMessageDiscriminant, OverlaysMessageHandler}; pub use crate::messages::portfolio::document::properties_panel::{PropertiesPanelMessage, PropertiesPanelMessageDiscriminant, PropertiesPanelMessageHandler}; pub use crate::messages::portfolio::document::{DocumentMessage, DocumentMessageContext, DocumentMessageDiscriminant, DocumentMessageHandler}; -pub use crate::messages::portfolio::menu_bar::{MenuBarMessage, MenuBarMessageDiscriminant, MenuBarMessageHandler}; -pub use crate::messages::portfolio::spreadsheet::{SpreadsheetMessage, SpreadsheetMessageDiscriminant}; pub use crate::messages::portfolio::{PortfolioMessage, PortfolioMessageContext, PortfolioMessageDiscriminant, PortfolioMessageHandler}; pub use crate::messages::preferences::{PreferencesMessage, PreferencesMessageDiscriminant, PreferencesMessageHandler}; pub use crate::messages::tool::transform_layer::{TransformLayerMessage, TransformLayerMessageDiscriminant, TransformLayerMessageHandler}; pub use crate::messages::tool::{ToolMessage, ToolMessageContext, ToolMessageDiscriminant, ToolMessageHandler}; -pub use crate::messages::workspace::{WorkspaceMessage, WorkspaceMessageDiscriminant, WorkspaceMessageHandler}; +pub use crate::messages::viewport::{ViewportMessage, ViewportMessageDiscriminant, ViewportMessageHandler}; // Message, MessageDiscriminant -pub use crate::messages::broadcast::broadcast_event::{BroadcastEvent, BroadcastEventDiscriminant}; pub use crate::messages::message::{Message, MessageDiscriminant}; pub use crate::messages::tool::tool_messages::artboard_tool::{ArtboardToolMessage, ArtboardToolMessageDiscriminant}; pub use crate::messages::tool::tool_messages::brush_tool::{BrushToolMessage, BrushToolMessageDiscriminant}; @@ -48,7 +50,7 @@ pub use crate::messages::tool::tool_messages::shape_tool::{ShapeToolMessage, Sha pub use crate::messages::tool::tool_messages::spline_tool::{SplineToolMessage, SplineToolMessageDiscriminant}; pub use crate::messages::tool::tool_messages::text_tool::{TextToolMessage, TextToolMessageDiscriminant}; -// Helper +// Helper/miscellaneous pub use crate::messages::globals::global_variables::*; pub use crate::messages::portfolio::document::utility_types::misc::DocumentId; pub use graphite_proc_macros::*; diff --git a/editor/src/messages/tool/common_functionality/auto_panning.rs b/editor/src/messages/tool/common_functionality/auto_panning.rs index a13f6706e..f30342f2f 100644 --- a/editor/src/messages/tool/common_functionality/auto_panning.rs +++ b/editor/src/messages/tool/common_functionality/auto_panning.rs @@ -14,7 +14,7 @@ impl AutoPanning { for message in messages { responses.add(BroadcastMessage::SubscribeEvent { - on: BroadcastEvent::AnimationFrame, + on: EventMessage::AnimationFrame, send: Box::new(message.clone()), }); } @@ -27,16 +27,16 @@ impl AutoPanning { for message in messages { responses.add(BroadcastMessage::UnsubscribeEvent { - on: BroadcastEvent::AnimationFrame, - message: Box::new(message.clone()), + on: EventMessage::AnimationFrame, + send: Box::new(message.clone()), }); } } } - pub fn setup_by_mouse_position(&mut self, input: &InputPreprocessorMessageHandler, messages: &[Message], responses: &mut VecDeque) { + pub fn setup_by_mouse_position(&mut self, input: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler, messages: &[Message], responses: &mut VecDeque) { let mouse_position = input.mouse.position; - let viewport_size = input.viewport_bounds.size(); + let viewport_size = viewport.size().into_dvec2(); let is_pointer_outside_edge = mouse_position.x < 0. || mouse_position.x > viewport_size.x || mouse_position.y < 0. || mouse_position.y > viewport_size.y; match is_pointer_outside_edge { @@ -50,12 +50,12 @@ impl AutoPanning { /// If the mouse was beyond any edge, it returns the amount shifted. Otherwise it returns None. /// The shift is proportional to the distance between edge and mouse, and to the duration of the frame. /// It is also guaranteed to be integral. - pub fn shift_viewport(&self, input: &InputPreprocessorMessageHandler, responses: &mut VecDeque) -> Option { + pub fn shift_viewport(&self, input: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler, responses: &mut VecDeque) -> Option { if !self.subscribed_to_animation_frame { return None; } - let viewport_size = input.viewport_bounds.size(); + let viewport_size = viewport.size().into_dvec2(); let mouse_position = input.mouse.position.clamp( DVec2::ZERO - DVec2::splat(DRAG_BEYOND_VIEWPORT_MAX_OVEREXTENSION_PIXELS), viewport_size + DVec2::splat(DRAG_BEYOND_VIEWPORT_MAX_OVEREXTENSION_PIXELS), diff --git a/editor/src/messages/tool/common_functionality/color_selector.rs b/editor/src/messages/tool/common_functionality/color_selector.rs index 885aff8bc..6a06d877a 100644 --- a/editor/src/messages/tool/common_functionality/color_selector.rs +++ b/editor/src/messages/tool/common_functionality/color_selector.rs @@ -79,20 +79,20 @@ impl ToolColorOptions { reset_callback: impl Fn(&IconButton) -> Message + 'static + Send + Sync, radio_callback: fn(ToolColorType) -> WidgetCallback<()>, color_callback: impl Fn(&ColorInput) -> Message + 'static + Send + Sync, - ) -> Vec { - let mut widgets = vec![TextLabel::new(label_text).widget_holder()]; + ) -> Vec { + let mut widgets = vec![TextLabel::new(label_text).widget_instance()]; if !color_allow_none { - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); } else { let reset = IconButton::new("CloseX", 12) .disabled(self.custom_color.is_none() && self.color_type == ToolColorType::Custom) - .tooltip("Clear Color") + .tooltip_label("Clear Color") .on_update(reset_callback); - widgets.push(Separator::new(SeparatorType::Related).widget_holder()); - widgets.push(reset.widget_holder()); - widgets.push(Separator::new(SeparatorType::Related).widget_holder()); + widgets.push(Separator::new(SeparatorType::Related).widget_instance()); + widgets.push(reset.widget_instance()); + widgets.push(Separator::new(SeparatorType::Related).widget_instance()); }; let entries = vec![ @@ -101,22 +101,22 @@ impl ToolColorOptions { ("CustomColor", "Custom Color", ToolColorType::Custom), ] .into_iter() - .map(|(icon, tooltip, color_type)| { - let mut entry = RadioEntryData::new(format!("{color_type:?}")).tooltip(tooltip).icon(icon); + .map(|(icon, label, color_type)| { + let mut entry = RadioEntryData::new(format!("{color_type:?}")).tooltip_label(label).icon(icon); entry.on_update = radio_callback(color_type); entry }) .collect(); - let radio = RadioInput::new(entries).selected_index(Some(self.color_type.clone() as u32)).widget_holder(); + let radio = RadioInput::new(entries).selected_index(Some(self.color_type.clone() as u32)).widget_instance(); widgets.push(radio); - widgets.push(Separator::new(SeparatorType::Related).widget_holder()); + widgets.push(Separator::new(SeparatorType::Related).widget_instance()); let fill_choice = match self.active_color() { Some(color) => FillChoice::Solid(color.to_gamma_srgb()), None => FillChoice::None, }; let color_button = ColorInput::new(fill_choice).allow_none(color_allow_none).on_update(color_callback); - widgets.push(color_button.widget_holder()); + widgets.push(color_button.widget_instance()); widgets } diff --git a/editor/src/messages/tool/common_functionality/gizmos/gizmo_manager.rs b/editor/src/messages/tool/common_functionality/gizmos/gizmo_manager.rs index 57cbb4ed3..9dc1c5258 100644 --- a/editor/src/messages/tool/common_functionality/gizmos/gizmo_manager.rs +++ b/editor/src/messages/tool/common_functionality/gizmos/gizmo_manager.rs @@ -7,6 +7,7 @@ use crate::messages::tool::common_functionality::graph_modification_utils; use crate::messages::tool::common_functionality::shape_editor::ShapeState; use crate::messages::tool::common_functionality::shapes::arc_shape::ArcGizmoHandler; use crate::messages::tool::common_functionality::shapes::circle_shape::CircleGizmoHandler; +use crate::messages::tool::common_functionality::shapes::grid_shape::GridGizmoHandler; use crate::messages::tool::common_functionality::shapes::polygon_shape::PolygonGizmoHandler; use crate::messages::tool::common_functionality::shapes::shape_utility::ShapeGizmoHandler; use crate::messages::tool::common_functionality::shapes::star_shape::StarGizmoHandler; @@ -28,6 +29,7 @@ pub enum ShapeGizmoHandlers { Polygon(PolygonGizmoHandler), Arc(ArcGizmoHandler), Circle(CircleGizmoHandler), + Grid(GridGizmoHandler), } impl ShapeGizmoHandlers { @@ -39,6 +41,7 @@ impl ShapeGizmoHandlers { Self::Polygon(_) => "polygon", Self::Arc(_) => "arc", Self::Circle(_) => "circle", + Self::Grid(_) => "grid", Self::None => "none", } } @@ -50,6 +53,7 @@ impl ShapeGizmoHandlers { Self::Polygon(h) => h.handle_state(layer, mouse_position, document, responses), Self::Arc(h) => h.handle_state(layer, mouse_position, document, responses), Self::Circle(h) => h.handle_state(layer, mouse_position, document, responses), + Self::Grid(h) => h.handle_state(layer, mouse_position, document, responses), Self::None => {} } } @@ -61,6 +65,7 @@ impl ShapeGizmoHandlers { Self::Polygon(h) => h.is_any_gizmo_hovered(), Self::Arc(h) => h.is_any_gizmo_hovered(), Self::Circle(h) => h.is_any_gizmo_hovered(), + Self::Grid(h) => h.is_any_gizmo_hovered(), Self::None => false, } } @@ -72,6 +77,7 @@ impl ShapeGizmoHandlers { Self::Polygon(h) => h.handle_click(), Self::Arc(h) => h.handle_click(), Self::Circle(h) => h.handle_click(), + Self::Grid(h) => h.handle_click(), Self::None => {} } } @@ -83,6 +89,7 @@ impl ShapeGizmoHandlers { Self::Polygon(h) => h.handle_update(drag_start, document, input, responses), Self::Arc(h) => h.handle_update(drag_start, document, input, responses), Self::Circle(h) => h.handle_update(drag_start, document, input, responses), + Self::Grid(h) => h.handle_update(drag_start, document, input, responses), Self::None => {} } } @@ -94,6 +101,7 @@ impl ShapeGizmoHandlers { Self::Polygon(h) => h.cleanup(), Self::Arc(h) => h.cleanup(), Self::Circle(h) => h.cleanup(), + Self::Grid(h) => h.cleanup(), Self::None => {} } } @@ -113,6 +121,7 @@ impl ShapeGizmoHandlers { Self::Polygon(h) => h.overlays(document, layer, input, shape_editor, mouse_position, overlay_context), Self::Arc(h) => h.overlays(document, layer, input, shape_editor, mouse_position, overlay_context), Self::Circle(h) => h.overlays(document, layer, input, shape_editor, mouse_position, overlay_context), + Self::Grid(h) => h.overlays(document, layer, input, shape_editor, mouse_position, overlay_context), Self::None => {} } } @@ -131,6 +140,7 @@ impl ShapeGizmoHandlers { Self::Polygon(h) => h.dragging_overlays(document, input, shape_editor, mouse_position, overlay_context), Self::Arc(h) => h.dragging_overlays(document, input, shape_editor, mouse_position, overlay_context), Self::Circle(h) => h.dragging_overlays(document, input, shape_editor, mouse_position, overlay_context), + Self::Grid(h) => h.dragging_overlays(document, input, shape_editor, mouse_position, overlay_context), Self::None => {} } } @@ -141,6 +151,7 @@ impl ShapeGizmoHandlers { Self::Polygon(h) => h.mouse_cursor_icon(), Self::Arc(h) => h.mouse_cursor_icon(), Self::Circle(h) => h.mouse_cursor_icon(), + Self::Grid(h) => h.mouse_cursor_icon(), Self::None => None, } } @@ -184,6 +195,10 @@ impl GizmoManager { if graph_modification_utils::get_circle_id(layer, &document.network_interface).is_some() { return Some(ShapeGizmoHandlers::Circle(CircleGizmoHandler::default())); } + // Grid + if graph_modification_utils::get_grid_id(layer, &document.network_interface).is_some() { + return Some(ShapeGizmoHandlers::Grid(GridGizmoHandler::default())); + } None } diff --git a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/circle_arc_radius_handle.rs b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/circle_arc_radius_handle.rs index 2cbf1c450..6152a6a5d 100644 --- a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/circle_arc_radius_handle.rs +++ b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/circle_arc_radius_handle.rs @@ -53,7 +53,7 @@ impl RadiusHandle { let center = viewport.transform_point2(DVec2::ZERO); if let Some(stroke_width) = get_stroke_width(layer, &document.network_interface) { let circle_point = calculate_circle_point_position(angle, radius.abs()); - let direction = circle_point.normalize(); + let Some(direction) = circle_point.try_normalize() else { return false }; let mouse_distance = mouse_position.distance(center); let spacing = Self::calculate_extra_spacing(viewport, radius, center, stroke_width, 15.); diff --git a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/grid_rows_columns_gizmo.rs b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/grid_rows_columns_gizmo.rs new file mode 100644 index 000000000..308dbbdb4 --- /dev/null +++ b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/grid_rows_columns_gizmo.rs @@ -0,0 +1,435 @@ +use crate::consts::GRID_ROW_COLUMN_GIZMO_OFFSET; +use crate::messages::frontend::utility_types::MouseCursorIcon; +use crate::messages::message::Message; +use crate::messages::portfolio::document::graph_operation::utility_types::TransformIn; +use crate::messages::portfolio::document::overlays::utility_types::OverlayContext; +use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; +use crate::messages::portfolio::document::utility_types::network_interface::InputConnector; +use crate::messages::prelude::{DocumentMessageHandler, InputPreprocessorMessageHandler, NodeGraphMessage}; +use crate::messages::prelude::{GraphOperationMessage, Responses}; +use crate::messages::tool::common_functionality::graph_modification_utils; +use crate::messages::tool::common_functionality::shape_editor::ShapeState; +use crate::messages::tool::common_functionality::shapes::shape_utility::extract_grid_parameters; +use glam::{DAffine2, DVec2}; +use graph_craft::document::NodeInput; +use graph_craft::document::value::TaggedValue; +use graphene_std::NodeInputDecleration; +use graphene_std::vector::misc::{GridType, dvec2_to_point, get_line_endpoints}; +use kurbo::{Line, ParamCurveNearest, Rect}; +use std::collections::VecDeque; + +#[derive(Clone, Debug, Default, PartialEq)] +pub enum RowColumnGizmoState { + #[default] + Inactive, + Hover, + Dragging, +} + +#[derive(Clone, Debug, Default)] +pub struct RowColumnGizmo { + pub layer: Option, + pub gizmo_type: RowColumnGizmoType, + initial_rows: u32, + initial_columns: u32, + spacing: DVec2, + initial_mouse_start: Option, + gizmo_state: RowColumnGizmoState, +} + +impl RowColumnGizmo { + pub fn cleanup(&mut self) { + self.layer = None; + self.gizmo_state = RowColumnGizmoState::Inactive; + self.initial_mouse_start = None; + } + + pub fn update_state(&mut self, state: RowColumnGizmoState) { + self.gizmo_state = state; + } + + pub fn is_hovered(&self) -> bool { + self.gizmo_state == RowColumnGizmoState::Hover + } + + pub fn is_dragging(&self) -> bool { + self.gizmo_state == RowColumnGizmoState::Dragging + } + + fn initial_dimension(&self) -> u32 { + match &self.gizmo_type { + RowColumnGizmoType::Top | RowColumnGizmoType::Bottom => self.initial_rows, + RowColumnGizmoType::Left | RowColumnGizmoType::Right => self.initial_columns, + RowColumnGizmoType::None => panic!("RowColumnGizmoType::None does not have a mouse_icon"), + } + } + + pub fn handle_actions(&mut self, layer: LayerNodeIdentifier, mouse_position: DVec2, document: &DocumentMessageHandler) { + let Some((grid_type, spacing, columns, rows, angles)) = extract_grid_parameters(layer, document) else { + return; + }; + let viewport = document.metadata().transform_to_viewport(layer); + + if let Some(gizmo_type) = check_if_over_gizmo(grid_type, columns, rows, spacing, angles, mouse_position, viewport) { + self.layer = Some(layer); + self.gizmo_type = gizmo_type; + self.initial_rows = rows; + self.initial_columns = columns; + self.spacing = spacing; + self.initial_mouse_start = None; + self.update_state(RowColumnGizmoState::Hover); + } + } + + pub fn overlays(&self, document: &DocumentMessageHandler, layer: Option, _shape_editor: &mut &mut ShapeState, _mouse_position: DVec2, overlay_context: &mut OverlayContext) { + let Some(layer) = layer.or(self.layer) else { return }; + let Some((grid_type, spacing, columns, rows, angles)) = extract_grid_parameters(layer, document) else { + return; + }; + let viewport = document.metadata().transform_to_viewport(layer); + + if !matches!(self.gizmo_state, RowColumnGizmoState::Inactive) { + let line = self.gizmo_type.line(grid_type, columns, rows, spacing, angles, viewport); + let (p0, p1) = get_line_endpoints(line); + overlay_context.dashed_line(p0, p1, None, None, Some(5.), Some(5.), Some(0.5)); + } + } + + pub fn update(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, responses: &mut VecDeque, drag_start: DVec2) { + let Some(layer) = self.layer else { return }; + let viewport = document.metadata().transform_to_viewport(layer); + + let Some((grid_type, _, columns, rows, angles)) = extract_grid_parameters(layer, document) else { + return; + }; + let direction = self.gizmo_type.direction(viewport); + let delta_vector = input.mouse.position - self.initial_mouse_start.unwrap_or(drag_start); + + let projection = delta_vector.project_onto(self.gizmo_type.direction(viewport)); + let delta = viewport.inverse().transform_vector2(projection).length() * delta_vector.dot(direction).signum(); + + if delta.abs() < 1e-6 { + return; + } + + let dimensions_to_add = (delta / (self.gizmo_type.spacing(self.spacing, grid_type, angles))).floor() as i32; + let new_dimension = (self.initial_dimension() as i32 + dimensions_to_add).max(1) as u32; + + let Some(node_id) = graph_modification_utils::get_grid_id(layer, &document.network_interface) else { + return; + }; + + let dimensions_delta = new_dimension as i32 - self.gizmo_type.initial_dimension(rows, columns) as i32; + let transform = self.transform_grid(dimensions_delta, self.spacing, grid_type, angles, viewport); + + responses.add(NodeGraphMessage::SetInput { + input_connector: InputConnector::node(node_id, self.gizmo_type.index()), + input: NodeInput::value(TaggedValue::U32((self.initial_dimension() as i32 + dimensions_to_add).max(1) as u32), false), + }); + + responses.add(GraphOperationMessage::TransformChange { + layer, + transform, + transform_in: TransformIn::Viewport, + skip_rerender: false, + }); + + responses.add(NodeGraphMessage::RunDocumentGraph); + + if self.initial_dimension() as i32 + dimensions_to_add < 1 { + self.initial_mouse_start = Some(input.mouse.position); + self.gizmo_type = self.gizmo_type.opposite_gizmo_type(); + self.initial_rows = 1; + self.initial_columns = 1; + } + } + + fn transform_grid(&self, dimensions_delta: i32, spacing: DVec2, grid_type: GridType, angles: DVec2, viewport: DAffine2) -> DAffine2 { + match &self.gizmo_type { + RowColumnGizmoType::Top => { + let move_up_by = self.gizmo_type.direction(viewport) * dimensions_delta as f64 * spacing.y; + DAffine2::from_translation(move_up_by) + } + RowColumnGizmoType::Left => { + let move_left_by = self.gizmo_type.direction(viewport) * dimensions_delta as f64 * self.gizmo_type.spacing(spacing, grid_type, angles); + DAffine2::from_translation(move_left_by) + } + RowColumnGizmoType::Bottom | RowColumnGizmoType::Right | RowColumnGizmoType::None => DAffine2::IDENTITY, + } + } +} + +fn check_if_over_gizmo(grid_type: GridType, columns: u32, rows: u32, spacing: DVec2, angles: DVec2, mouse_position: DVec2, viewport: DAffine2) -> Option { + let mouse_point = dvec2_to_point(mouse_position); + let accuracy = 1e-6; + let threshold = 32.; + + for gizmo_type in RowColumnGizmoType::all() { + let line = gizmo_type.line(grid_type, columns, rows, spacing, angles, viewport); + let rect = gizmo_type.rect(grid_type, columns, rows, spacing, angles, viewport); + + if rect.contains(mouse_point) || line.nearest(mouse_point, accuracy).distance_sq < threshold { + return Some(gizmo_type); + } + } + + None +} + +fn convert_to_gizmo_line(p0: DVec2, p1: DVec2) -> Line { + Line { + p0: dvec2_to_point(p0), + p1: dvec2_to_point(p1), + } +} + +/// Get corners of the rectangular-grid. +/// Returns a tuple of (topleft,topright,bottomright,bottomleft) +fn get_corners(columns: u32, rows: u32, spacing: DVec2) -> (DVec2, DVec2, DVec2, DVec2) { + let (width, height) = (spacing.x, spacing.y); + + let x_distance = (columns - 1) as f64 * width; + let y_distance = (rows - 1) as f64 * height; + + let point0 = DVec2::ZERO; + let point1 = DVec2::new(x_distance, 0.); + let point2 = DVec2::new(x_distance, y_distance); + let point3 = DVec2::new(0., y_distance); + + (point0, point1, point2, point3) +} + +fn get_rectangle_top_line_points(columns: u32, rows: u32, spacing: DVec2) -> (DVec2, DVec2) { + let (top_left, top_right, _, _) = get_corners(columns, rows, spacing); + let offset = if columns == 1 || rows == 1 { + DVec2::ZERO + } else if columns == 2 { + DVec2::new(spacing.x * 0.25, 0.) + } else { + DVec2::new(spacing.x * 0.5, 0.) + }; + + (top_left + offset, top_right - offset) +} + +fn get_rectangle_bottom_line_points(columns: u32, rows: u32, spacing: DVec2) -> (DVec2, DVec2) { + let (_, _, bottom_right, bottom_left) = get_corners(columns, rows, spacing); + let offset = if columns == 1 || rows == 1 { + DVec2::ZERO + } else if columns == 2 { + DVec2::new(spacing.x * 0.25, 0.) + } else { + DVec2::new(spacing.x * 0.5, 0.) + }; + + (bottom_left + offset, bottom_right - offset) +} + +fn get_rectangle_right_line_points(columns: u32, rows: u32, spacing: DVec2) -> (DVec2, DVec2) { + let (_, top_right, bottom_right, _) = get_corners(columns, rows, spacing); + let offset = if columns == 1 || rows == 1 { + DVec2::ZERO + } else if rows == 2 { + DVec2::new(0., -spacing.y * 0.25) + } else { + DVec2::new(0., -spacing.y * 0.5) + }; + + (top_right - offset, bottom_right + offset) +} + +fn get_rectangle_left_line_points(columns: u32, rows: u32, spacing: DVec2) -> (DVec2, DVec2) { + let (top_left, _, _, bottom_left) = get_corners(columns, rows, spacing); + let offset = if columns == 1 || rows == 1 { + DVec2::ZERO + } else if rows == 2 { + DVec2::new(0., -spacing.y * 0.25) + } else { + DVec2::new(0., -spacing.y * 0.5) + }; + + (top_left - offset, bottom_left + offset) +} + +fn calculate_isometric_point(column: u32, row: u32, angles: DVec2, spacing: DVec2) -> DVec2 { + let tan_a = angles.x.to_radians().tan(); + let tan_b = angles.y.to_radians().tan(); + + let spacing = DVec2::new(spacing.y / (tan_a + tan_b), spacing.y); + + let a_angles_eaten = column.div_ceil(2) as f64; + let b_angles_eaten = (column / 2) as f64; + + let offset_y_fraction = b_angles_eaten * tan_b - a_angles_eaten * tan_a; + + DVec2::new(spacing.x * column as f64, spacing.y * row as f64 + offset_y_fraction * spacing.x) +} + +fn calculate_isometric_top_line_points(columns: u32, rows: u32, spacing: DVec2, angles: DVec2) -> (DVec2, DVec2) { + let top_left = calculate_isometric_point(0, 0, angles, spacing); + let top_right = calculate_isometric_point(columns - 1, 0, angles, spacing); + + let offset = if columns == 1 || rows == 1 { DVec2::ZERO } else { DVec2::new(spacing.x * 0.5, 0.) }; + let isometric_spacing = calculate_isometric_offset(spacing, angles); + let isometric_offset = DVec2::new(0., isometric_spacing.y); + let end_isometric_offset = if columns.is_multiple_of(2) { DVec2::ZERO } else { DVec2::new(0., isometric_spacing.y) }; + + (top_left + offset - isometric_offset, top_right - offset - end_isometric_offset) +} + +fn calculate_isometric_bottom_line_points(columns: u32, rows: u32, spacing: DVec2, angles: DVec2) -> (DVec2, DVec2) { + let bottom_left = calculate_isometric_point(0, rows - 1, angles, spacing); + let bottom_right = calculate_isometric_point(columns - 1, rows - 1, angles, spacing); + + let offset = if columns == 1 || rows == 1 { DVec2::ZERO } else { DVec2::new(spacing.x * 0.5, 0.) }; + let isometric_offset = if columns.is_multiple_of(2) { + let offset = calculate_isometric_offset(spacing, angles); + DVec2::new(0., offset.y) + } else { + DVec2::ZERO + }; + + (bottom_left + offset, bottom_right - offset + isometric_offset) +} + +fn calculate_isometric_offset(spacing: DVec2, angles: DVec2) -> DVec2 { + let first_point = calculate_isometric_point(0, 0, angles, spacing); + let second_point = calculate_isometric_point(1, 0, angles, spacing); + + DVec2::new(first_point.x - second_point.x, first_point.y - second_point.y) +} + +fn calculate_isometric_right_line_points(columns: u32, rows: u32, spacing: DVec2, angles: DVec2) -> (DVec2, DVec2) { + let top_right = calculate_isometric_point(columns - 1, 0, angles, spacing); + let bottom_right = calculate_isometric_point(columns - 1, rows - 1, angles, spacing); + + let offset = if columns == 1 || rows == 1 { DVec2::ZERO } else { DVec2::new(0., -spacing.y * 0.5) }; + + (top_right - offset, bottom_right + offset) +} + +fn calculate_isometric_left_line_points(columns: u32, rows: u32, spacing: DVec2, angles: DVec2) -> (DVec2, DVec2) { + let top_left = calculate_isometric_point(0, 0, angles, spacing); + let bottom_left = calculate_isometric_point(0, rows - 1, angles, spacing); + + let offset = if columns == 1 || rows == 1 { DVec2::ZERO } else { DVec2::new(0., -spacing.y * 0.5) }; + + (top_left - offset, bottom_left + offset) +} + +#[derive(Clone, Debug, Default, PartialEq)] +pub enum RowColumnGizmoType { + #[default] + None, + Top, + Bottom, + Left, + Right, +} + +impl RowColumnGizmoType { + pub fn get_line_points(&self, grid_type: GridType, columns: u32, rows: u32, spacing: DVec2, angles: DVec2) -> (DVec2, DVec2) { + match grid_type { + GridType::Rectangular => match self { + Self::Top => get_rectangle_top_line_points(columns, rows, spacing), + Self::Right => get_rectangle_right_line_points(columns, rows, spacing), + Self::Bottom => get_rectangle_bottom_line_points(columns, rows, spacing), + Self::Left => get_rectangle_left_line_points(columns, rows, spacing), + Self::None => panic!("RowColumnGizmoType::None does not have line points"), + }, + GridType::Isometric => match self { + Self::Top => calculate_isometric_top_line_points(columns, rows, spacing, angles), + Self::Right => calculate_isometric_right_line_points(columns, rows, spacing, angles), + Self::Bottom => calculate_isometric_bottom_line_points(columns, rows, spacing, angles), + Self::Left => calculate_isometric_left_line_points(columns, rows, spacing, angles), + Self::None => panic!("RowColumnGizmoType::None does not have line points"), + }, + } + } + + fn line(&self, grid_type: GridType, columns: u32, rows: u32, spacing: DVec2, angles: DVec2, viewport: DAffine2) -> Line { + let (p0, p1) = self.get_line_points(grid_type, columns, rows, spacing, angles); + let direction = self.direction(viewport); + let gap = GRID_ROW_COLUMN_GIZMO_OFFSET * viewport.inverse().transform_vector2(direction).normalize(); + + convert_to_gizmo_line(viewport.transform_point2(p0 + gap), viewport.transform_point2(p1 + gap)) + } + + fn rect(&self, grid_type: GridType, columns: u32, rows: u32, spacing: DVec2, angles: DVec2, viewport: DAffine2) -> Rect { + let (p0, p1) = self.get_line_points(grid_type, columns, rows, spacing, angles); + let direction = self.direction(viewport); + let gap = GRID_ROW_COLUMN_GIZMO_OFFSET * direction.normalize(); + + let (x0, x1) = match self { + Self::Top | Self::Left => (viewport.transform_point2(p0 + gap), viewport.transform_point2(p1)), + Self::Bottom | Self::Right => (viewport.transform_point2(p0), viewport.transform_point2(p1 + gap)), + Self::None => panic!("RowColumnGizmoType::None does not have opposite"), + }; + + Rect::new(x0.x, x0.y, x1.x, x1.y) + } + + fn opposite_gizmo_type(&self) -> Self { + match self { + Self::Top => Self::Bottom, + Self::Right => Self::Left, + Self::Bottom => Self::Top, + Self::Left => Self::Right, + Self::None => panic!("RowColumnGizmoType::None does not have opposite"), + } + } + + pub fn direction(&self, viewport: DAffine2) -> DVec2 { + match self { + RowColumnGizmoType::Top => viewport.transform_vector2(-DVec2::Y), + RowColumnGizmoType::Bottom => viewport.transform_vector2(DVec2::Y), + RowColumnGizmoType::Right => viewport.transform_vector2(DVec2::X), + RowColumnGizmoType::Left => viewport.transform_vector2(-DVec2::X), + RowColumnGizmoType::None => panic!("RowColumnGizmoType::None does not have a line"), + } + } + + fn initial_dimension(&self, rows: u32, columns: u32) -> u32 { + match self { + RowColumnGizmoType::Top | RowColumnGizmoType::Bottom => rows, + RowColumnGizmoType::Left | RowColumnGizmoType::Right => columns, + RowColumnGizmoType::None => panic!("RowColumnGizmoType::None does not have a mouse_icon"), + } + } + + fn spacing(&self, spacing: DVec2, grid_type: GridType, angles: DVec2) -> f64 { + match self { + RowColumnGizmoType::Top | RowColumnGizmoType::Bottom => spacing.y, + RowColumnGizmoType::Left | RowColumnGizmoType::Right => { + if grid_type == GridType::Rectangular { + spacing.x + } else { + spacing.y / (angles.x.to_radians().tan() + angles.y.to_radians().tan()) + } + } + RowColumnGizmoType::None => panic!("RowColumnGizmoType::None does not have a mouse_icon"), + } + } + + fn index(&self) -> usize { + use graphene_std::vector::generator_nodes::grid::*; + + match self { + RowColumnGizmoType::Top | RowColumnGizmoType::Bottom => RowsInput::INDEX, + RowColumnGizmoType::Left | RowColumnGizmoType::Right => ColumnsInput::INDEX, + RowColumnGizmoType::None => panic!("RowColumnGizmoType::None does not have a mouse_icon"), + } + } + + pub fn mouse_icon(&self) -> MouseCursorIcon { + match self { + RowColumnGizmoType::Top | RowColumnGizmoType::Bottom => MouseCursorIcon::NSResize, + RowColumnGizmoType::Left | RowColumnGizmoType::Right => MouseCursorIcon::EWResize, + RowColumnGizmoType::None => panic!("RowColumnGizmoType::None does not have a mouse_icon"), + } + } + + pub fn all() -> [Self; 4] { + [Self::Top, Self::Right, Self::Bottom, Self::Left] + } +} diff --git a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/mod.rs b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/mod.rs index 710584f47..c35649308 100644 --- a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/mod.rs +++ b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/mod.rs @@ -1,4 +1,5 @@ pub mod circle_arc_radius_handle; +pub mod grid_rows_columns_gizmo; pub mod number_of_points_dial; pub mod point_radius_handle; pub mod sweep_angle_gizmo; diff --git a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/number_of_points_dial.rs b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/number_of_points_dial.rs index fa4dbe2ed..c6fef1fbd 100644 --- a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/number_of_points_dial.rs +++ b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/number_of_points_dial.rs @@ -108,10 +108,10 @@ impl NumberOfPointsDial { let viewport = document.metadata().transform_to_viewport(layer); let center = viewport.transform_point2(DVec2::ZERO); - if let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, mouse_position, POINT_RADIUS_HANDLE_SEGMENT_THRESHOLD) { - if closest_segment.layer() == layer { - return; - } + if let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, mouse_position, POINT_RADIUS_HANDLE_SEGMENT_THRESHOLD) + && closest_segment.layer() == layer + { + return; } let point_on_max_radius = star_vertex_position(viewport, 0, sides, radius1, radius2); @@ -126,10 +126,10 @@ impl NumberOfPointsDial { let viewport = document.metadata().transform_to_viewport(layer); let center = viewport.transform_point2(DVec2::ZERO); - if let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, mouse_position, POINT_RADIUS_HANDLE_SEGMENT_THRESHOLD) { - if closest_segment.layer() == layer { - return; - } + if let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, mouse_position, POINT_RADIUS_HANDLE_SEGMENT_THRESHOLD) + && closest_segment.layer() == layer + { + return; } let point_on_max_radius = polygon_vertex_position(viewport, 0, sides, radius); diff --git a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/point_radius_handle.rs b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/point_radius_handle.rs index 25516284b..55c131dce 100644 --- a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/point_radius_handle.rs +++ b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/point_radius_handle.rs @@ -142,7 +142,7 @@ impl PointRadiusHandle { } } - pub fn overlays(&self, selected_star_layer: Option, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, overlay_context: &mut OverlayContext) { + pub fn overlays(&self, selected_star_layer: Option, document: &DocumentMessageHandler, overlay_context: &mut OverlayContext) { match &self.handle_state { PointRadiusHandleState::Inactive => { let Some(layer) = selected_star_layer else { return }; @@ -187,7 +187,7 @@ impl PointRadiusHandle { let viewport = document.metadata().transform_to_viewport(layer); let center = viewport.transform_point2(DVec2::ZERO); - let viewport_diagonal = input.viewport_bounds.size().length(); + let viewport_diagonal = overlay_context.viewport.size().into_dvec2().length(); // Star if let Some((sides, radius1, radius2)) = extract_star_parameters(Some(layer), document) { diff --git a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/sweep_angle_gizmo.rs b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/sweep_angle_gizmo.rs index 68d69d9eb..efa4b1835 100644 --- a/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/sweep_angle_gizmo.rs +++ b/editor/src/messages/tool/common_functionality/gizmos/shape_gizmos/sweep_angle_gizmo.rs @@ -1,5 +1,6 @@ use crate::consts::{ARC_SNAP_THRESHOLD, GIZMO_HIDE_THRESHOLD}; use crate::messages::message::Message; +use crate::messages::portfolio::document::overlays::utility_functions::text_width; use crate::messages::portfolio::document::overlays::utility_types::OverlayContext; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::network_interface::InputConnector; @@ -176,7 +177,11 @@ impl SweepAngleGizmo { .to_degrees(); let text = format!("{}ยฐ", format_rounded(display_angle, 2)); - let text_texture_width = overlay_context.get_width(&text) / 2.; + const FONT_SIZE: f64 = 12.; + + let text_width = text_width(&text, FONT_SIZE); + + let text_texture_width = text_width / 2.; let transform = calculate_arc_text_transform(angle, offset_angle, center, text_texture_width); diff --git a/editor/src/messages/tool/common_functionality/graph_modification_utils.rs b/editor/src/messages/tool/common_functionality/graph_modification_utils.rs index cecc7563d..c0d108150 100644 --- a/editor/src/messages/tool/common_functionality/graph_modification_utils.rs +++ b/editor/src/messages/tool/common_functionality/graph_modification_utils.rs @@ -3,7 +3,6 @@ use crate::messages::portfolio::document::node_graph::document_node_definitions; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::network_interface::{FlowType, InputConnector, NodeNetworkInterface, NodeTemplate}; use crate::messages::prelude::*; -use bezier_rs::Subpath; use glam::DVec2; use graph_craft::document::value::TaggedValue; use graph_craft::document::{NodeId, NodeInput}; @@ -12,10 +11,11 @@ use graphene_std::Color; use graphene_std::NodeInputDecleration; use graphene_std::raster::BlendMode; use graphene_std::raster_types::{CPU, GPU, Raster}; +use graphene_std::subpath::Subpath; use graphene_std::table::Table; use graphene_std::text::{Font, TypesettingConfig}; use graphene_std::vector::misc::ManipulatorPointId; -use graphene_std::vector::style::Gradient; +use graphene_std::vector::style::{Fill, Gradient}; use graphene_std::vector::{PointId, SegmentId, VectorModificationType}; use std::collections::VecDeque; @@ -32,7 +32,8 @@ pub fn find_spline(document: &DocumentMessageHandler, layer: LayerNodeIdentifier /// Merge `second_layer` to the `first_layer`. pub fn merge_layers(document: &DocumentMessageHandler, first_layer: LayerNodeIdentifier, second_layer: LayerNodeIdentifier, responses: &mut VecDeque) { - if first_layer == second_layer { + // Skip layers that are children of each other (or the same) + if first_layer.ancestors(document.metadata()).any(|l| l == second_layer) || second_layer.ancestors(document.metadata()).any(|l| l == first_layer) { return; } // Calculate the downstream transforms in order to bring the other vector geometry into the same layer space @@ -77,7 +78,7 @@ pub fn merge_layers(document: &DocumentMessageHandler, first_layer: LayerNodeIde .default_node_template(); responses.add(NodeGraphMessage::InsertNode { node_id: merge_node_id, - node_template: merge_node, + node_template: Box::new(merge_node), }); responses.add(NodeGraphMessage::SetToNodeOrLayer { node_id: merge_node_id, @@ -103,7 +104,7 @@ pub fn merge_layers(document: &DocumentMessageHandler, first_layer: LayerNodeIde .default_node_template(); responses.add(NodeGraphMessage::InsertNode { node_id: flatten_node_id, - node_template: flatten_node, + node_template: Box::new(flatten_node), }); responses.add(NodeGraphMessage::MoveNodeToChainStart { node_id: flatten_node_id, @@ -117,7 +118,7 @@ pub fn merge_layers(document: &DocumentMessageHandler, first_layer: LayerNodeIde .default_node_template(); responses.add(NodeGraphMessage::InsertNode { node_id: path_node_id, - node_template: path_node, + node_template: Box::new(path_node), }); responses.add(NodeGraphMessage::MoveNodeToChainStart { node_id: path_node_id, @@ -132,7 +133,7 @@ pub fn merge_layers(document: &DocumentMessageHandler, first_layer: LayerNodeIde .default_node_template(); responses.add(NodeGraphMessage::InsertNode { node_id: spline_node_id, - node_template: spline_node, + node_template: Box::new(spline_node), }); responses.add(NodeGraphMessage::MoveNodeToChainStart { node_id: spline_node_id, @@ -147,7 +148,7 @@ pub fn merge_layers(document: &DocumentMessageHandler, first_layer: LayerNodeIde .default_node_template(); responses.add(NodeGraphMessage::InsertNode { node_id: transform_node_id, - node_template: transform_node, + node_template: Box::new(transform_node), }); responses.add(NodeGraphMessage::MoveNodeToChainStart { node_id: transform_node_id, @@ -246,11 +247,11 @@ pub fn new_custom(id: NodeId, nodes: Vec<(NodeId, NodeTemplate)>, parent: LayerN LayerNodeIdentifier::new_unchecked(id) } -/// Locate the origin of the transform node +/// Locate the origin of the "Transform" node. pub fn get_origin(layer: LayerNodeIdentifier, network_interface: &NodeNetworkInterface) -> Option { - use graphene_std::transform_nodes::transform::TranslateInput; + use graphene_std::transform_nodes::transform::*; - if let TaggedValue::DVec2(origin) = NodeGraphLayer::new(layer, network_interface).find_input("Transform", TranslateInput::INDEX)? { + if let TaggedValue::DVec2(origin) = NodeGraphLayer::new(layer, network_interface).find_input("Transform", TranslationInput::INDEX)? { Some(*origin) } else { None @@ -273,7 +274,7 @@ pub fn get_gradient(layer: LayerNodeIdentifier, network_interface: &NodeNetworkI let fill_index = 1; let inputs = NodeGraphLayer::new(layer, network_interface).find_node_inputs("Fill")?; - let TaggedValue::Fill(graphene_std::vector::style::Fill::Gradient(gradient)) = inputs.get(fill_index)?.as_value()? else { + let TaggedValue::Fill(Fill::Gradient(gradient)) = inputs.get(fill_index)?.as_value()? else { return None; }; Some(gradient.clone()) @@ -284,7 +285,7 @@ pub fn get_fill_color(layer: LayerNodeIdentifier, network_interface: &NodeNetwor let fill_index = 1; let inputs = NodeGraphLayer::new(layer, network_interface).find_node_inputs("Fill")?; - let TaggedValue::Fill(graphene_std::vector::style::Fill::Solid(color)) = inputs.get(fill_index)?.as_value()? else { + let TaggedValue::Fill(Fill::Solid(color)) = inputs.get(fill_index)?.as_value()? else { return None; }; Some(color.to_linear_srgb()) @@ -363,10 +364,18 @@ pub fn get_arc_id(layer: LayerNodeIdentifier, network_interface: &NodeNetworkInt NodeGraphLayer::new(layer, network_interface).upstream_node_id_from_name("Arc") } +pub fn get_spiral_id(layer: LayerNodeIdentifier, network_interface: &NodeNetworkInterface) -> Option { + NodeGraphLayer::new(layer, network_interface).upstream_node_id_from_name("Spiral") +} + pub fn get_text_id(layer: LayerNodeIdentifier, network_interface: &NodeNetworkInterface) -> Option { NodeGraphLayer::new(layer, network_interface).upstream_node_id_from_name("Text") } +pub fn get_grid_id(layer: LayerNodeIdentifier, network_interface: &NodeNetworkInterface) -> Option { + NodeGraphLayer::new(layer, network_interface).upstream_node_id_from_name("Grid") +} + /// Gets properties from the Text node pub fn get_text(layer: LayerNodeIdentifier, network_interface: &NodeNetworkInterface) -> Option<(&String, &Font, TypesettingConfig, bool)> { let inputs = NodeGraphLayer::new(layer, network_interface).find_node_inputs("Text")?; @@ -475,8 +484,8 @@ impl<'a> NodeGraphLayer<'a> { /// Check if a layer is a raster layer pub fn is_raster_layer(layer: LayerNodeIdentifier, network_interface: &mut NodeNetworkInterface) -> bool { - let layer_input_type = network_interface.input_type(&InputConnector::node(layer.to_node(), 1), &[]).0.nested_type().clone(); + let layer_input_type = network_interface.input_type(&InputConnector::node(layer.to_node(), 1), &[]); - layer_input_type == concrete!(Table>) || layer_input_type == concrete!(Table>) + layer_input_type.compiled_nested_type() == Some(&concrete!(Table>)) || layer_input_type.compiled_nested_type() == Some(&concrete!(Table>)) } } diff --git a/editor/src/messages/tool/common_functionality/measure.rs b/editor/src/messages/tool/common_functionality/measure.rs index 5a76a5bd2..1ad5ae704 100644 --- a/editor/src/messages/tool/common_functionality/measure.rs +++ b/editor/src/messages/tool/common_functionality/measure.rs @@ -43,18 +43,19 @@ fn draw_line_with_length(line_start: DVec2, line_end: DVec2, transform: DAffine2 } } -/// Draws a dashed outline around a rectangle to visualize the AABB +/// Draws a dashed outline around the given rectangle (assumed to be in document space). +/// The provided transform is applied to convert coordinates (e.g., to viewport space) during rendering. fn draw_dashed_rect_outline(rect: Rect, transform: DAffine2, overlay_context: &mut OverlayContext) { let min = rect.min(); let max = rect.max(); - // Create the four corners of the rectangle - let top_left = transform.transform_point2(DVec2::new(min.x, min.y)); - let top_right = transform.transform_point2(DVec2::new(max.x, min.y)); - let bottom_right = transform.transform_point2(DVec2::new(max.x, max.y)); - let bottom_left = transform.transform_point2(DVec2::new(min.x, max.y)); + // Define corners in document space + let top_left = DVec2::new(min.x, min.y); + let top_right = DVec2::new(max.x, min.y); + let bottom_right = DVec2::new(max.x, max.y); + let bottom_left = DVec2::new(min.x, max.y); - // Draw the four sides as dashed lines + // Draw each edge using document-space coordinates; transform is applied inside draw_dashed_line draw_dashed_line(top_left, top_right, transform, overlay_context); draw_dashed_line(top_right, bottom_right, transform, overlay_context); draw_dashed_line(bottom_right, bottom_left, transform, overlay_context); diff --git a/editor/src/messages/tool/common_functionality/pivot.rs b/editor/src/messages/tool/common_functionality/pivot.rs index 1950b7a5b..0e61fd9a8 100644 --- a/editor/src/messages/tool/common_functionality/pivot.rs +++ b/editor/src/messages/tool/common_functionality/pivot.rs @@ -12,37 +12,51 @@ use graphene_std::transform::ReferencePoint; use graphene_std::vector::misc::ManipulatorPointId; use std::fmt; -pub fn pin_pivot_widget(active: bool, enabled: bool, source: PivotToolSource) -> WidgetHolder { +pub fn pin_pivot_widget(active: bool, enabled: bool, source: PivotToolSource) -> WidgetInstance { IconButton::new(if active { "PinActive" } else { "PinInactive" }, 24) - .tooltip(String::from(if active { "Unpin Custom Pivot" } else { "Pin Custom Pivot" }) + "\n\nUnless pinned, the pivot will return to its prior reference point when a new selection is made.") + .tooltip_label(if active { "Unpin Custom Pivot" } else { "Pin Custom Pivot" }) + .tooltip_description("Unless pinned, the pivot will return to its prior reference point when a new selection is made.") .disabled(!enabled) .on_update(move |_| match source { - PivotToolSource::Select => SelectToolMessage::SelectOptions(SelectOptionsUpdate::TogglePivotPinned).into(), - PivotToolSource::Path => PathToolMessage::UpdateOptions(PathOptionsUpdate::TogglePivotPinned).into(), + PivotToolSource::Select => SelectToolMessage::SelectOptions { + options: SelectOptionsUpdate::TogglePivotPinned, + } + .into(), + PivotToolSource::Path => PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::TogglePivotPinned, + } + .into(), }) - .widget_holder() + .widget_instance() } -pub fn pivot_reference_point_widget(disabled: bool, reference_point: ReferencePoint, source: PivotToolSource) -> WidgetHolder { +pub fn pivot_reference_point_widget(disabled: bool, reference_point: ReferencePoint, source: PivotToolSource) -> WidgetInstance { ReferencePointInput::new(reference_point) - .tooltip("Custom Pivot Reference Point\n\nPlaces the pivot at a corner, edge, or center of the selection bounds, unless it is dragged elsewhere.") + .tooltip_label("Custom Pivot Reference Point") + .tooltip_description("Places the pivot at a corner, edge, or center of the selection bounds, unless it is dragged elsewhere.") .disabled(disabled) .on_update(move |pivot_input: &ReferencePointInput| match source { PivotToolSource::Select => SelectToolMessage::SetPivot { position: pivot_input.value }.into(), PivotToolSource::Path => PathToolMessage::SetPivot { position: pivot_input.value }.into(), }) - .widget_holder() + .widget_instance() } -pub fn pivot_gizmo_type_widget(state: PivotGizmoState, source: PivotToolSource) -> Vec { +pub fn pivot_gizmo_type_widget(state: PivotGizmoState, source: PivotToolSource) -> Vec { let gizmo_type_entries = [PivotGizmoType::Pivot, PivotGizmoType::Average, PivotGizmoType::Active] .iter() .map(|gizmo_type| { MenuListEntry::new(format!("{gizmo_type:?}")).label(gizmo_type.to_string()).on_commit({ let value = source.clone(); move |_| match value { - PivotToolSource::Select => SelectToolMessage::SelectOptions(SelectOptionsUpdate::PivotGizmoType(*gizmo_type)).into(), - PivotToolSource::Path => PathToolMessage::UpdateOptions(PathOptionsUpdate::PivotGizmoType(*gizmo_type)).into(), + PivotToolSource::Select => SelectToolMessage::SelectOptions { + options: SelectOptionsUpdate::PivotGizmoType(*gizmo_type), + } + .into(), + PivotToolSource::Path => PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::PivotGizmoType(*gizmo_type), + } + .into(), } }) }) @@ -50,35 +64,45 @@ pub fn pivot_gizmo_type_widget(state: PivotGizmoState, source: PivotToolSource) vec![ CheckboxInput::new(!state.disabled) - .tooltip( - "Pivot Gizmo\n\ - \n\ + .tooltip_label("Pivot Gizmo") + .tooltip_description( + " Enabled: the chosen gizmo type is shown and used to control rotation and scaling.\n\ - Disabled: rotation and scaling occurs about the center of the selection bounds.", + Disabled: rotation and scaling occurs about the center of the selection bounds. + " + .trim(), ) .on_update(move |optional_input: &CheckboxInput| match source { - PivotToolSource::Select => SelectToolMessage::SelectOptions(SelectOptionsUpdate::TogglePivotGizmoType(optional_input.checked)).into(), - PivotToolSource::Path => PathToolMessage::UpdateOptions(PathOptionsUpdate::TogglePivotGizmoType(optional_input.checked)).into(), + PivotToolSource::Select => SelectToolMessage::SelectOptions { + options: SelectOptionsUpdate::TogglePivotGizmoType(optional_input.checked), + } + .into(), + PivotToolSource::Path => PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::TogglePivotGizmoType(optional_input.checked), + } + .into(), }) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), DropdownInput::new(vec![gizmo_type_entries]) .selected_index(Some(match state.gizmo_type { PivotGizmoType::Pivot => 0, PivotGizmoType::Average => 1, PivotGizmoType::Active => 2, })) - .tooltip( - "Pivot Gizmo Type\n\ - \n\ + .tooltip_label("Pivot Gizmo Type") + .tooltip_description( + " Selects which gizmo type is shown and used as the center of rotation/scaling transformations.\n\ \n\ Custom Pivot: rotates and scales relative to the selection bounds, or elsewhere if dragged.\n\ Origin (Average Point): rotates and scales about the average point of all selected layer origins.\n\ - Origin (Active Object): rotates and scales about the origin of the most recently selected layer.", + Origin (Active Object): rotates and scales about the origin of the most recently selected layer. + " + .trim(), ) .disabled(state.disabled) - .widget_holder(), + .widget_instance(), ] } @@ -145,6 +169,7 @@ pub struct PivotGizmoState { impl PivotGizmoState { pub fn is_pivot_type(&self) -> bool { + // A disabled pivot is considered a pivot-type gizmo that is always centered self.gizmo_type == PivotGizmoType::Pivot || self.disabled } diff --git a/editor/src/messages/tool/common_functionality/resize.rs b/editor/src/messages/tool/common_functionality/resize.rs index 47143503c..032666ca2 100644 --- a/editor/src/messages/tool/common_functionality/resize.rs +++ b/editor/src/messages/tool/common_functionality/resize.rs @@ -15,10 +15,10 @@ pub struct Resize { impl Resize { /// Starts a resize, assigning the snap targets and snapping the starting position. - pub fn start(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler) { + pub fn start(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) { let root_transform = document.metadata().document_to_viewport; let point = SnapCandidatePoint::handle(root_transform.inverse().transform_point2(input.mouse.position)); - let snapped = self.snap_manager.free_snap(&SnapData::new(document, input), &point, SnapTypeConfiguration::default()); + let snapped = self.snap_manager.free_snap(&SnapData::new(document, input, viewport), &point, SnapTypeConfiguration::default()); self.drag_start = snapped.snapped_point_document; } @@ -30,7 +30,14 @@ impl Resize { /// Compute the drag start and end based on the current mouse position. If the layer doesn't exist, returns [`None`]. /// If you want to draw even without a layer, use [`Resize::calculate_points_ignore_layer`]. - pub fn calculate_points(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, center: Key, lock_ratio: Key) -> Option<[DVec2; 2]> { + pub fn calculate_points( + &mut self, + document: &DocumentMessageHandler, + input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, + center: Key, + lock_ratio: Key, + ) -> Option<[DVec2; 2]> { let layer = self.layer?; if layer == LayerNodeIdentifier::ROOT_PARENT { @@ -42,21 +49,37 @@ impl Resize { self.layer.take(); return None; } - Some(self.calculate_points_ignore_layer(document, input, center, lock_ratio, false)) + Some(self.calculate_points_ignore_layer(document, input, viewport, center, lock_ratio, false)) } /// Compute the drag start and end based on the current mouse position. Ignores the state of the layer. /// If you want to only draw whilst a layer exists, use [`Resize::calculate_points`]. - pub fn calculate_points_ignore_layer(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, center: Key, lock_ratio: Key, in_document: bool) -> [DVec2; 2] { + pub fn calculate_points_ignore_layer( + &mut self, + document: &DocumentMessageHandler, + input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, + center: Key, + lock_ratio: Key, + in_document: bool, + ) -> [DVec2; 2] { let ratio = input.keyboard.get(lock_ratio as usize); let center = input.keyboard.get(center as usize); // Use shared snapping logic with optional center and ratio constraints, considering if coordinates are in document space. - self.compute_snapped_resize_points(document, input, center, ratio, in_document) + self.compute_snapped_resize_points(document, input, viewport, center, ratio, in_document) } - pub fn calculate_transform(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, center: Key, lock_ratio: Key, skip_rerender: bool) -> Option { - let points_viewport = self.calculate_points(document, input, center, lock_ratio)?; + pub fn calculate_transform( + &mut self, + document: &DocumentMessageHandler, + input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, + center: Key, + lock_ratio: Key, + skip_rerender: bool, + ) -> Option { + let points_viewport = self.calculate_points(document, input, viewport, center, lock_ratio)?; Some( GraphOperationMessage::TransformSet { layer: self.layer?, @@ -68,23 +91,33 @@ impl Resize { ) } - pub fn calculate_circle_points(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, center: Key) -> [DVec2; 2] { + pub fn calculate_circle_points(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler, center: Key) -> [DVec2; 2] { let center = input.keyboard.get(center as usize); // Use shared snapping logic with enforced aspect ratio and optional center snapping. - self.compute_snapped_resize_points(document, input, center, true, false) + self.compute_snapped_resize_points(document, input, viewport, center, true, false) } /// Calculates two points in viewport space from a drag, applying snapping, optional center mode, and aspect ratio locking. - fn compute_snapped_resize_points(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, center: bool, lock_ratio: bool, in_document: bool) -> [DVec2; 2] { + fn compute_snapped_resize_points( + &mut self, + document: &DocumentMessageHandler, + input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, + center: bool, + lock_ratio: bool, + in_document: bool, + ) -> [DVec2; 2] { let start = self.viewport_drag_start(document); let mouse = input.mouse.position; - let document_to_viewport = document.navigation_handler.calculate_offset_transform(input.viewport_bounds.center(), &document.document_ptz); + let document_to_viewport = document + .navigation_handler + .calculate_offset_transform(viewport.center_in_viewport_space().into(), &document.document_ptz); let drag_start = self.drag_start; let mut points_viewport = [start, mouse]; let ignore = if let Some(layer) = self.layer { vec![layer] } else { vec![] }; - let snap_data = &SnapData::ignore(document, input, &ignore); + let snap_data = &SnapData::ignore(document, input, viewport, &ignore); if lock_ratio { let viewport_size = points_viewport[1] - points_viewport[0]; diff --git a/editor/src/messages/tool/common_functionality/shape_editor.rs b/editor/src/messages/tool/common_functionality/shape_editor.rs index 45a1740f9..6723db92e 100644 --- a/editor/src/messages/tool/common_functionality/shape_editor.rs +++ b/editor/src/messages/tool/common_functionality/shape_editor.rs @@ -1,20 +1,23 @@ use super::graph_modification_utils::merge_layers; use super::snapping::{SnapCache, SnapCandidatePoint, SnapData, SnapManager, SnappedPoint}; -use super::utility_functions::{adjust_handle_colinearity, calculate_bezier_bbox, calculate_segment_angle, restore_g1_continuity, restore_previous_handle_position}; +use super::utility_functions::{adjust_handle_colinearity, calculate_segment_angle, restore_g1_continuity, restore_previous_handle_position}; use crate::consts::HANDLE_LENGTH_FACTOR; -use crate::messages::portfolio::document::overlays::utility_functions::selected_segments; +use crate::messages::portfolio::document::overlays::utility_functions::selected_segments_for_layer; use crate::messages::portfolio::document::utility_types::document_metadata::{DocumentMetadata, LayerNodeIdentifier}; use crate::messages::portfolio::document::utility_types::misc::{PathSnapSource, SnapSource}; use crate::messages::portfolio::document::utility_types::network_interface::NodeNetworkInterface; use crate::messages::preferences::SelectionMode; use crate::messages::prelude::*; use crate::messages::tool::common_functionality::snapping::SnapTypeConfiguration; -use crate::messages::tool::common_functionality::utility_functions::{is_intersecting, is_visible_point}; +use crate::messages::tool::common_functionality::utility_functions::is_visible_point; use crate::messages::tool::tool_messages::path_tool::{PathOverlayMode, PointSelectState}; -use bezier_rs::{Bezier, BezierHandles, Subpath, TValue}; use glam::{DAffine2, DVec2}; -use graphene_std::vector::misc::{HandleId, ManipulatorPointId}; +use graphene_std::subpath::{BezierHandles, Subpath}; +use graphene_std::subpath::{PathSegPoints, pathseg_points}; +use graphene_std::vector::algorithms::bezpath_algorithms::pathseg_compute_lookup_table; +use graphene_std::vector::misc::{HandleId, ManipulatorPointId, dvec2_to_point, point_to_dvec2}; use graphene_std::vector::{HandleExt, PointId, SegmentId, Vector, VectorModificationType}; +use kurbo::{Affine, DEFAULT_ACCURACY, Line, ParamCurve, ParamCurveNearest, PathSeg, Rect, Shape}; use std::f64::consts::TAU; #[derive(Debug, Copy, Clone, PartialEq, Eq)] @@ -26,7 +29,7 @@ pub enum SelectionChange { #[derive(Clone, Copy, Debug)] pub enum SelectionShape<'a> { - Box([DVec2; 2]), + Box(Rect), Lasso(&'a Vec), } @@ -185,7 +188,7 @@ pub type OpposingHandleLengths = HashMap; 2], t: f64, @@ -205,12 +208,12 @@ impl ClosestSegment { self.points } - pub fn bezier(&self) -> Bezier { + pub fn pathseg(&self) -> PathSeg { self.bezier } pub fn closest_point_document(&self) -> DVec2 { - self.bezier.evaluate(TValue::Parametric(self.t)) + point_to_dvec2(self.bezier.eval(self.t)) } pub fn closest_point_to_viewport(&self) -> DVec2 { @@ -219,7 +222,7 @@ impl ClosestSegment { pub fn closest_point(&self, document_metadata: &DocumentMetadata, network_interface: &NodeNetworkInterface) -> DVec2 { let transform = document_metadata.transform_to_viewport_if_feeds(self.layer, network_interface); - let bezier_point = self.bezier.evaluate(TValue::Parametric(self.t)); + let bezier_point = point_to_dvec2(self.bezier.eval(self.t)); transform.transform_point2(bezier_point) } @@ -228,10 +231,10 @@ impl ClosestSegment { let transform = document_metadata.transform_to_viewport_if_feeds(self.layer, network_interface); let layer_mouse_pos = transform.inverse().transform_point2(mouse_position); - let t = self.bezier.project(layer_mouse_pos).clamp(0., 1.); + let t = self.bezier.nearest(dvec2_to_point(layer_mouse_pos), DEFAULT_ACCURACY).t.clamp(0., 1.); self.t = t; - let bezier_point = self.bezier.evaluate(TValue::Parametric(t)); + let bezier_point = point_to_dvec2(self.bezier.eval(t)); let bezier_point = transform.transform_point2(bezier_point); self.bezier_point_to_viewport = bezier_point; } @@ -249,22 +252,24 @@ impl ClosestSegment { let transform = document_metadata.transform_to_viewport_if_feeds(self.layer, network_interface); // Split the Bezier at the parameter `t` - let [first, second] = self.bezier.split(TValue::Parametric(self.t)); + let first = self.bezier.subsegment(0_f64..self.t); + let second = self.bezier.subsegment(self.t..1.); // Transform the handle positions to viewport space - let first_handle = first.handle_end().map(|handle| transform.transform_point2(handle)); - let second_handle = second.handle_start().map(|handle| transform.transform_point2(handle)); + let first_handle = pathseg_points(first).p2.map(|handle| transform.transform_point2(handle)); + let second_handle = pathseg_points(second).p1.map(|handle| transform.transform_point2(handle)); (first_handle, second_handle) } pub fn adjusted_insert(&self, responses: &mut VecDeque) -> (PointId, [SegmentId; 2]) { let layer = self.layer; - let [first, second] = self.bezier.split(TValue::Parametric(self.t)); + let first = pathseg_points(self.bezier.subsegment(0_f64..self.t)); + let second = pathseg_points(self.bezier.subsegment(self.t..1.)); // Point let midpoint = PointId::generate(); - let modification_type = VectorModificationType::InsertPoint { id: midpoint, position: first.end }; + let modification_type = VectorModificationType::InsertPoint { id: midpoint, position: first.p3 }; responses.add(GraphOperationMessage::Vector { layer, modification_type }); // First segment @@ -272,7 +277,7 @@ impl ClosestSegment { let modification_type = VectorModificationType::InsertSegment { id: segment_ids[0], points: [self.points[0], midpoint], - handles: [first.handle_start().map(|handle| handle - first.start), first.handle_end().map(|handle| handle - first.end)], + handles: [first.p1.map(|handle| handle - first.p0), first.p2.map(|handle| handle - first.p3)], }; responses.add(GraphOperationMessage::Vector { layer, modification_type }); @@ -280,12 +285,12 @@ impl ClosestSegment { let modification_type = VectorModificationType::InsertSegment { id: segment_ids[1], points: [midpoint, self.points[1]], - handles: [second.handle_start().map(|handle| handle - second.start), second.handle_end().map(|handle| handle - second.end)], + handles: [second.p1.map(|handle| handle - second.p0), second.p2.map(|handle| handle - second.p3)], }; responses.add(GraphOperationMessage::Vector { layer, modification_type }); // G1 continuous on new handles - if self.bezier.handle_end().is_some() { + if pathseg_points(self.bezier).p2.is_some() { let handles = [HandleId::end(segment_ids[0]), HandleId::primary(segment_ids[1])]; let modification_type = VectorModificationType::SetG1Continuous { handles, enabled: true }; responses.add(GraphOperationMessage::Vector { layer, modification_type }); @@ -353,8 +358,8 @@ impl ClosestSegment { ) -> Option<[Option; 2]> { let transform = document.metadata().transform_to_viewport_if_feeds(self.layer, &document.network_interface); - let start = self.bezier.start; - let end = self.bezier.end; + let start = point_to_dvec2(self.bezier.start()); + let end = point_to_dvec2(self.bezier.end()); // Apply the drag delta to the segment's handles let b = self.bezier_point_to_viewport; @@ -441,13 +446,6 @@ impl ShapeState { let (layer1, start_point) = all_selected_points[0]; let (layer2, end_point) = all_selected_points[1]; - let Some(vector1) = document.network_interface.compute_modified_vector(layer1) else { return }; - let Some(vector2) = document.network_interface.compute_modified_vector(layer2) else { return }; - - if vector1.all_connected(start_point).count() != 1 || vector2.all_connected(end_point).count() != 1 { - return; - } - if layer1 == layer2 { if start_point == end_point { return; @@ -497,8 +495,16 @@ impl ShapeState { } // Snap, returning a viewport delta - pub fn snap(&self, snap_manager: &mut SnapManager, snap_cache: &SnapCache, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, previous_mouse: DVec2) -> DVec2 { - let snap_data = SnapData::new_snap_cache(document, input, snap_cache); + pub fn snap( + &self, + snap_manager: &mut SnapManager, + snap_cache: &SnapCache, + document: &DocumentMessageHandler, + input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, + previous_mouse: DVec2, + ) -> DVec2 { + let snap_data = SnapData::new_snap_cache(document, input, viewport, snap_cache); let mouse_delta = document .network_interface @@ -554,7 +560,7 @@ impl ShapeState { select_threshold: f64, extend_selection: bool, path_overlay_mode: PathOverlayMode, - frontier_handles_info: &Option>>, + frontier_handles_info: Option<&HashMap>>>, ) -> Option> { if self.selected_shape_state.is_empty() { return None; @@ -603,7 +609,7 @@ impl ShapeState { mouse_position: DVec2, select_threshold: f64, path_overlay_mode: PathOverlayMode, - frontier_handles_info: &Option>>, + frontier_handles_info: Option<&HashMap>>>, point_editing_mode: bool, ) -> Option<(bool, Option)> { if self.selected_shape_state.is_empty() { @@ -617,15 +623,22 @@ impl ShapeState { } let vector = network_interface.compute_modified_vector(layer)?; let point_position = manipulator_point_id.get_position(&vector)?; - + let selected_shape_state = self.selected_shape_state.get(&layer)?; // Check if point is visible under current overlay mode or not - let selected_segments = selected_segments(network_interface, self); + let selected_segments_for_layer = selected_segments_for_layer(&vector, selected_shape_state); let selected_points = self.selected_points().cloned().collect::>(); - if !is_visible_point(manipulator_point_id, &vector, path_overlay_mode, frontier_handles_info, selected_segments, &selected_points) { + let frontier_handles_for_layer = frontier_handles_info.and_then(|frontier_handles| frontier_handles.get(&layer)); + if !is_visible_point( + manipulator_point_id, + &vector, + path_overlay_mode, + frontier_handles_for_layer, + &selected_segments_for_layer, + &selected_points, + ) { return None; } - let selected_shape_state = self.selected_shape_state.get(&layer)?; let already_selected = selected_shape_state.is_point_selected(manipulator_point_id); // Offset to snap the selected point to the cursor @@ -670,10 +683,10 @@ impl ShapeState { let mut selected_stack = Vec::new(); // Find all subpaths that have been clicked for stroke in vector.stroke_bezier_paths() { - if stroke.contains_point(layer_mouse) { - if let Some(first) = stroke.manipulator_groups().first() { - selected_stack.push(first.id); - } + if stroke.contains_point(layer_mouse) + && let Some(first) = stroke.manipulator_groups().first() + { + selected_stack.push(first.id); } } state.clear_points(); @@ -728,6 +741,13 @@ impl ShapeState { } } + /// Selects all segments for the selected layers. + pub fn select_all_segments_in_selected_layers(&mut self, document: &DocumentMessageHandler) { + for (&layer, state) in self.selected_shape_state.iter_mut() { + Self::select_all_segments_in_layer_with_state(document, layer, state); + } + } + /// Internal helper function that selects all anchors, and deselects all handles, for a layer given its [`LayerNodeIdentifier`] and [`SelectedLayerState`]. fn select_all_anchors_in_layer_with_state(document: &DocumentMessageHandler, layer: LayerNodeIdentifier, state: &mut SelectedLayerState) { let Some(vector) = document.network_interface.compute_modified_vector(layer) else { return }; @@ -739,6 +759,15 @@ impl ShapeState { } } + /// Internal helper function that selects all segments, for a layer given its [`LayerNodeIdentifier`] and [`SelectedLayerState`]. + fn select_all_segments_in_layer_with_state(document: &DocumentMessageHandler, layer: LayerNodeIdentifier, state: &mut SelectedLayerState) { + let Some(vector) = document.network_interface.compute_modified_vector(layer) else { return }; + + for &segment in vector.segment_domain.ids() { + state.select_segment(segment); + } + } + /// Deselects all points (anchors and handles) across every selected layer. pub fn deselect_all_points(&mut self) { for state in self.selected_shape_state.values_mut() { @@ -892,20 +921,20 @@ impl ShapeState { ManipulatorPointId::Anchor(point) => self.move_anchor(point, &vector, delta, layer, None, responses), ManipulatorPointId::PrimaryHandle(segment) => { self.move_primary(segment, delta, layer, responses); - if let Some(handle) = point.as_handle() { - if let Some(handles) = vector.colinear_manipulators.iter().find(|handles| handles[0] == handle || handles[1] == handle) { - let modification_type = VectorModificationType::SetG1Continuous { handles: *handles, enabled: false }; - responses.add(GraphOperationMessage::Vector { layer, modification_type }); - } + if let Some(handle) = point.as_handle() + && let Some(handles) = vector.colinear_manipulators.iter().find(|handles| handles[0] == handle || handles[1] == handle) + { + let modification_type = VectorModificationType::SetG1Continuous { handles: *handles, enabled: false }; + responses.add(GraphOperationMessage::Vector { layer, modification_type }); } } ManipulatorPointId::EndHandle(segment) => { self.move_end(segment, delta, layer, responses); - if let Some(handle) = point.as_handle() { - if let Some(handles) = vector.colinear_manipulators.iter().find(|handles| handles[0] == handle || handles[1] == handle) { - let modification_type = VectorModificationType::SetG1Continuous { handles: *handles, enabled: false }; - responses.add(GraphOperationMessage::Vector { layer, modification_type }); - } + if let Some(handle) = point.as_handle() + && let Some(handles) = vector.colinear_manipulators.iter().find(|handles| handles[0] == handle || handles[1] == handle) + { + let modification_type = VectorModificationType::SetG1Continuous { handles: *handles, enabled: false }; + responses.add(GraphOperationMessage::Vector { layer, modification_type }); } } } @@ -1041,10 +1070,10 @@ impl ShapeState { for &point in layer_state.selected_points.iter() { // Skip a point which has more than 2 segments connected (vector meshes) - if let ManipulatorPointId::Anchor(anchor) = point { - if vector.all_connected(anchor).count() > 2 { - continue; - } + if let ManipulatorPointId::Anchor(anchor) = point + && vector.all_connected(anchor).count() > 2 + { + continue; } // Here we take handles as the current handle and the most opposite non-colinear-handle @@ -1354,7 +1383,9 @@ impl ShapeState { } /// Dissolve the selected points. - pub fn delete_selected_points(&mut self, document: &DocumentMessageHandler, responses: &mut VecDeque) { + pub fn delete_selected_points(&mut self, document: &DocumentMessageHandler, responses: &mut VecDeque, start_transaction: bool) { + let mut transaction_started = false; + for (&layer, state) in &mut self.selected_shape_state { let mut missing_anchors = HashMap::new(); let mut deleted_anchors = HashSet::new(); @@ -1363,12 +1394,18 @@ impl ShapeState { let selected_segments = &state.selected_segments; for point in std::mem::take(&mut state.selected_points) { + if !transaction_started && start_transaction { + responses.add(DocumentMessage::AddTransaction); + transaction_started = true; + } + match point { ManipulatorPointId::Anchor(anchor) => { - if let Some(handles) = Self::dissolve_anchor(anchor, responses, layer, &vector) { - if !vector.all_connected(anchor).any(|a| selected_segments.contains(&a.segment)) && vector.all_connected(anchor).count() <= 2 { - missing_anchors.insert(anchor, handles); - } + if let Some(handles) = Self::dissolve_anchor(anchor, responses, layer, &vector) + && !vector.all_connected(anchor).any(|a| selected_segments.contains(&a.segment)) + && vector.all_connected(anchor).count() <= 2 + { + missing_anchors.insert(anchor, handles); } deleted_anchors.insert(anchor); } @@ -1459,34 +1496,51 @@ impl ShapeState { } } - pub fn delete_selected_segments(&mut self, document: &DocumentMessageHandler, responses: &mut VecDeque) { + pub fn delete_selected_segments(&mut self, document: &DocumentMessageHandler, responses: &mut VecDeque, start_transaction: bool) -> bool { + let mut transaction_started = false; + for (&layer, state) in &self.selected_shape_state { let Some(vector) = document.network_interface.compute_modified_vector(layer) else { continue }; for (segment, _, start, end) in vector.segment_bezier_iter() { if state.selected_segments.contains(&segment) { + if start_transaction && !transaction_started { + responses.add(DocumentMessage::AddTransaction); + transaction_started = true; + } self.dissolve_segment(responses, layer, &vector, segment, [start, end]); } } } + + transaction_started } - pub fn delete_hanging_selected_anchors(&mut self, document: &DocumentMessageHandler, responses: &mut VecDeque) { + pub fn delete_hanging_selected_anchors(&mut self, document: &DocumentMessageHandler, responses: &mut VecDeque, start_transaction: bool) { + let mut transaction_started = false; + for (&layer, state) in &self.selected_shape_state { let Some(vector) = document.network_interface.compute_modified_vector(layer) else { continue }; for point in &state.selected_points { - if let ManipulatorPointId::Anchor(anchor) = point { - if vector.all_connected(*anchor).all(|segment| state.is_segment_selected(segment.segment)) { - let modification_type = VectorModificationType::RemovePoint { id: *anchor }; - responses.add(GraphOperationMessage::Vector { layer, modification_type }); + if let ManipulatorPointId::Anchor(anchor) = point + && vector.all_connected(*anchor).all(|segment| state.is_segment_selected(segment.segment)) + { + if !transaction_started && start_transaction { + responses.add(DocumentMessage::AddTransaction); + transaction_started = true } + let modification_type = VectorModificationType::RemovePoint { id: *anchor }; + responses.add(GraphOperationMessage::Vector { layer, modification_type }); } } } } + /// Note: this also adds a history transaction if there is some change in state. pub fn break_path_at_selected_point(&self, document: &DocumentMessageHandler, responses: &mut VecDeque) { + let mut transaction_started = false; + for (&layer, state) in &self.selected_shape_state { let Some(vector) = document.network_interface.compute_modified_vector(layer) else { continue }; @@ -1498,6 +1552,11 @@ impl ShapeState { for handle in vector.all_connected(point) { // Disable the g1 continuous for &handles in &vector.colinear_manipulators { + if !transaction_started { + responses.add(DocumentMessage::AddTransaction); + transaction_started = true; + } + if handles.contains(&handle) { let modification_type = VectorModificationType::SetG1Continuous { handles, enabled: false }; responses.add(GraphOperationMessage::Vector { layer, modification_type }); @@ -1510,6 +1569,11 @@ impl ShapeState { continue; } + if !transaction_started { + responses.add(DocumentMessage::AddTransaction); + transaction_started = true; + } + // Create new point let id = PointId::generate(); let modification_type = VectorModificationType::InsertPoint { id, position: pos }; @@ -1530,13 +1594,20 @@ impl ShapeState { } /// Delete point(s) and adjacent segments. - pub fn delete_point_and_break_path(&mut self, document: &DocumentMessageHandler, responses: &mut VecDeque) { + /// Note: this also adds a history transaction if there is some change in state, and true is returned if so. + pub fn delete_point_and_break_path(&mut self, document: &DocumentMessageHandler, responses: &mut VecDeque) -> bool { + let mut transaction_started = false; + for (&layer, state) in &mut self.selected_shape_state { let Some(vector) = document.network_interface.compute_modified_vector(layer) else { continue }; for delete in std::mem::take(&mut state.selected_points) { let Some(point) = delete.get_anchor(&vector) else { continue }; + if !transaction_started { + responses.add(DocumentMessage::AddTransaction); + transaction_started = true; + } // Delete point let modification_type = VectorModificationType::RemovePoint { id: point }; responses.add(GraphOperationMessage::Vector { layer, modification_type }); @@ -1548,6 +1619,8 @@ impl ShapeState { } } } + + transaction_started } /// Disable colinear handles colinear. @@ -1563,11 +1636,11 @@ impl ShapeState { responses.add(GraphOperationMessage::Vector { layer, modification_type }); } } - } else if let Some(handle) = point.as_handle() { - if let Some(handles) = vector.colinear_manipulators.iter().find(|handles| handles[0] == handle || handles[1] == handle) { - let modification_type = VectorModificationType::SetG1Continuous { handles: *handles, enabled: false }; - responses.add(GraphOperationMessage::Vector { layer, modification_type }); - } + } else if let Some(handle) = point.as_handle() + && let Some(handles) = vector.colinear_manipulators.iter().find(|handles| handles[0] == handle || handles[1] == handle) + { + let modification_type = VectorModificationType::SetG1Continuous { handles: *handles, enabled: false }; + responses.add(GraphOperationMessage::Vector { layer, modification_type }); } } } @@ -1601,7 +1674,7 @@ impl ShapeState { mouse_position: DVec2, select_threshold: f64, path_overlay_mode: PathOverlayMode, - frontier_handles_info: &Option>>, + frontier_handles_info: Option<&HashMap>>>, ) -> Option<(LayerNodeIdentifier, ManipulatorPointId)> { if self.selected_shape_state.is_empty() { return None; @@ -1616,10 +1689,11 @@ impl ShapeState { if distance_squared < select_threshold_squared { // Check if point is visible in current PathOverlayMode let vector = network_interface.compute_modified_vector(layer)?; - let selected_segments = selected_segments(network_interface, self); + let Some(state) = self.selected_shape_state.get(&layer) else { continue }; + let selected_segments = selected_segments_for_layer(&vector, state); let selected_points = self.selected_points().cloned().collect::>(); - - if !is_visible_point(manipulator_point_id, &vector, path_overlay_mode, frontier_handles_info, selected_segments, &selected_points) { + let frontier_handles_for_layer = frontier_handles_info.and_then(|handles_info| handles_info.get(&layer)); + if !is_visible_point(manipulator_point_id, &vector, path_overlay_mode, frontier_handles_for_layer, &selected_segments, &selected_points) { return None; } @@ -1647,17 +1721,20 @@ impl ShapeState { let bezier = bezier.apply_transformation(|point| viewspace.transform_point2(point)); let valid = |handle: DVec2, control: DVec2| handle.distance_squared(control) > crate::consts::HIDE_HANDLE_DISTANCE.powi(2); - if let Some(primary_handle) = bezier.handle_start() { - if valid(primary_handle, bezier.start) && (bezier.handle_end().is_some() || valid(primary_handle, bezier.end)) && primary_handle.distance_squared(pos) <= closest_distance_squared { - closest_distance_squared = primary_handle.distance_squared(pos); - manipulator_point = Some(ManipulatorPointId::PrimaryHandle(segment_id)); - } + if let Some(primary_handle) = bezier.handle_start() + && valid(primary_handle, bezier.start) + && (bezier.handle_end().is_some() || valid(primary_handle, bezier.end)) + && primary_handle.distance_squared(pos) <= closest_distance_squared + { + closest_distance_squared = primary_handle.distance_squared(pos); + manipulator_point = Some(ManipulatorPointId::PrimaryHandle(segment_id)); } - if let Some(end_handle) = bezier.handle_end() { - if valid(end_handle, bezier.end) && end_handle.distance_squared(pos) <= closest_distance_squared { - closest_distance_squared = end_handle.distance_squared(pos); - manipulator_point = Some(ManipulatorPointId::EndHandle(segment_id)); - } + if let Some(end_handle) = bezier.handle_end() + && valid(end_handle, bezier.end) + && end_handle.distance_squared(pos) <= closest_distance_squared + { + closest_distance_squared = end_handle.distance_squared(pos); + manipulator_point = Some(ManipulatorPointId::EndHandle(segment_id)); } } @@ -1686,9 +1763,9 @@ impl ShapeState { let vector = network_interface.compute_modified_vector(layer)?; - for (segment, mut bezier, start, end) in vector.segment_bezier_iter() { - let t = bezier.project(layer_pos); - let layerspace = bezier.evaluate(TValue::Parametric(t)); + for (segment_id, mut segment, start, end) in vector.segment_iter() { + let t = segment.nearest(dvec2_to_point(layer_pos), DEFAULT_ACCURACY).t; + let layerspace = point_to_dvec2(segment.eval(t)); let screenspace = transform.transform_point2(layerspace); let distance_squared = screenspace.distance_squared(position); @@ -1697,20 +1774,22 @@ impl ShapeState { closest_distance_squared = distance_squared; // Convert to linear if handes are on top of control points - if let bezier_rs::BezierHandles::Cubic { handle_start, handle_end } = bezier.handles { - if handle_start.abs_diff_eq(bezier.start(), f64::EPSILON * 100.) && handle_end.abs_diff_eq(bezier.end(), f64::EPSILON * 100.) { - bezier = Bezier::from_linear_dvec2(bezier.start, bezier.end); + let PathSegPoints { p0: _, p1, p2, p3: _ } = pathseg_points(segment); + if let (Some(p1), Some(p2)) = (p1, p2) { + let segment_points = pathseg_points(segment); + if p1.abs_diff_eq(segment_points.p0, f64::EPSILON * 100.) && p2.abs_diff_eq(segment_points.p3, f64::EPSILON * 100.) { + segment = PathSeg::Line(Line::new(segment.start(), segment.end())); } } - let primary_handle = vector.colinear_manipulators.iter().find(|handles| handles.contains(&HandleId::primary(segment))); - let end_handle = vector.colinear_manipulators.iter().find(|handles| handles.contains(&HandleId::end(segment))); - let primary_handle = primary_handle.and_then(|&handles| handles.into_iter().find(|handle| handle.segment != segment)); - let end_handle = end_handle.and_then(|&handles| handles.into_iter().find(|handle| handle.segment != segment)); + let primary_handle = vector.colinear_manipulators.iter().find(|handles| handles.contains(&HandleId::primary(segment_id))); + let end_handle = vector.colinear_manipulators.iter().find(|handles| handles.contains(&HandleId::end(segment_id))); + let primary_handle = primary_handle.and_then(|&handles| handles.into_iter().find(|handle| handle.segment != segment_id)); + let end_handle = end_handle.and_then(|&handles| handles.into_iter().find(|handle| handle.segment != segment_id)); closest = Some(ClosestSegment { - segment, - bezier, + segment: segment_id, + bezier: segment, points: [start, end], colinear: [primary_handle, end_handle], t, @@ -1861,53 +1940,64 @@ impl ShapeState { } } - pub fn select_points_by_manipulator_id(&mut self, points: &Vec) { - let layers_to_modify: Vec<_> = self.selected_shape_state.keys().cloned().collect(); + pub fn select_anchor_and_connected_handles(&mut self, network_interface: &NodeNetworkInterface) { + let mut non_empty_layers = self.selected_shape_state.iter_mut().filter(|(_, state)| !state.is_empty()); - for layer in layers_to_modify { - if let Some(state) = self.selected_shape_state.get_mut(&layer) { - for point in points { - state.select_point(*point); - } + let Some((layer, state)) = non_empty_layers.next() else { return }; + if non_empty_layers.next().is_some() { + return; + } + let Some(vector) = network_interface.compute_modified_vector(*layer) else { return }; + + // Get the current point and its connected handles + let selected_points = state.selected_points.clone(); + if let Some(point) = selected_points.iter().next() { + if let Some(anchor) = point.get_anchor(&vector) { + state.select_point(ManipulatorPointId::Anchor(anchor)); + } + if let Some(handles) = point.get_handle_pair(&vector) { + state.select_point(handles[0].to_manipulator_point()); + state.select_point(handles[1].to_manipulator_point()); } } } - /// Converts a nearby clicked anchor point's handles between sharp (zero-length handles) and smooth (pulled-apart handle(s)). - /// If both handles aren't zero-length, they are set that. If both are zero-length, they are stretched apart by a reasonable amount. - /// This can can be activated by double clicking on an anchor with the Path tool. - pub fn flip_smooth_sharp(&self, network_interface: &NodeNetworkInterface, target: glam::DVec2, tolerance: f64, responses: &mut VecDeque) -> bool { - let mut process_layer = |layer| { - let vector = network_interface.compute_modified_vector(layer)?; - let transform_to_screenspace = network_interface.document_metadata().transform_to_viewport_if_feeds(layer, network_interface); - - let mut result = None; - let mut closest_distance_squared = tolerance * tolerance; - - // Find the closest anchor point on the current layer - for (&id, &anchor) in vector.point_domain.ids().iter().zip(vector.point_domain.positions()) { - let screenspace = transform_to_screenspace.transform_point2(anchor); - let distance_squared = screenspace.distance_squared(target); - - if distance_squared < closest_distance_squared { - closest_distance_squared = distance_squared; - result = Some((id, anchor)); - } + pub fn select_points_by_layer_and_id(&mut self, points: &HashMap>) { + for (layer, points) in points { + if let Some(state) = self.selected_shape_state.get_mut(layer) { + points.iter().for_each(|point| state.select_point(*point)); } + } + } - let (id, anchor) = result?; - let handles = vector.all_connected(id); - let positions = handles - .filter_map(|handle| handle.to_manipulator_point().get_position(&vector)) - .filter(|&handle| anchor.abs_diff_eq(handle, 1e-5)) - .count(); + pub fn select_point_by_layer_and_id(&mut self, point: ManipulatorPointId, layer: LayerNodeIdentifier) { + if let Some(state) = self.selected_shape_state.get_mut(&layer) { + state.select_point(point); + } + } - // Check if the anchor is connected to linear segments. - let one_or_more_segment_linear = vector.connected_linear_segments(id) != 0; + /// Converts all selected anchor points' handles between sharp (zero-length handles) and smooth (pulled-apart colinear handle(s)). + /// If both handles aren't zero-length, they are set to that. If both are zero-length, they are stretched apart by a reasonable amount. + /// This can can be activated by double clicking on an anchor with the Path tool. + pub fn flip_smooth_sharp(&self, network_interface: &NodeNetworkInterface, responses: &mut VecDeque) { + let mut process_layer = |layer: LayerNodeIdentifier, selected_points: &HashSet| { + let vector = network_interface.compute_modified_vector(layer)?; // Check by comparing the handle positions to the anchor if this manipulator group is a point - for point in self.selected_points() { + for point in selected_points { let Some(point_id) = point.as_anchor() else { continue }; + let anchor = point.get_position(&vector)?; + let handles = vector.all_connected(point_id); + + // TODO: Check if this method of finding non-colinear is really required + let positions = handles + .filter_map(|handle| handle.to_manipulator_point().get_position(&vector)) + .filter(|&handle| anchor.abs_diff_eq(handle, 1e-5)) + .count(); + + // Check if the anchor is connected to linear segments. + let one_or_more_segment_linear = vector.connected_linear_segments(point_id) != 0; + if positions != 0 || one_or_more_segment_linear { self.convert_manipulator_handles_to_colinear(&vector, point_id, responses, layer); } else { @@ -1951,13 +2041,10 @@ impl ShapeState { Some(true) }; - for &layer in self.selected_shape_state.keys() { - if let Some(result) = process_layer(layer) { - return result; - } - } - - false + self.selected_shape_state.iter().for_each(|(layer, state)| { + let selected_points = &state.selected_points; + process_layer(*layer, selected_points); + }); } #[allow(clippy::too_many_arguments)] @@ -1967,7 +2054,7 @@ impl ShapeState { selection_shape: SelectionShape, selection_change: SelectionChange, path_overlay_mode: PathOverlayMode, - frontier_handles_info: &Option>>, + frontier_handles_info: Option<&HashMap>>>, select_segments: bool, select_points: bool, // Here, "selection mode" represents touched or enclosed, not to be confused with editing modes @@ -2039,14 +2126,13 @@ impl ShapeState { network_interface: &NodeNetworkInterface, selection_shape: SelectionShape, path_overlay_mode: PathOverlayMode, - frontier_handles_info: &Option>>, + frontier_handles_info: Option<&HashMap>>>, select_segments: bool, select_points: bool, // Represents if the box/lasso selection touches or encloses the targets (not to be confused with editing modes). selection_mode: SelectionMode, ) -> (HashMap>, HashMap>) { let selected_points = self.selected_points().cloned().collect::>(); - let selected_segments = selected_segments(network_interface, self); let mut points_inside: HashMap> = HashMap::new(); let mut segments_inside: HashMap> = HashMap::new(); @@ -2076,21 +2162,24 @@ impl ShapeState { }; // Selection segments - for (id, bezier, _, _) in vector.segment_bezier_iter() { + for (id, segment, _, _) in vector.segment_iter() { if select_segments { // Select segments if they lie inside the bounding box or lasso polygon - let segment_bbox = calculate_bezier_bbox(bezier); - let bottom_left = transform.transform_point2(segment_bbox[0]); - let top_right = transform.transform_point2(segment_bbox[1]); + let transformed_segment = Affine::new(transform.to_cols_array()) * segment; + let segment_bbox = transformed_segment.bounding_box(); let select = match selection_shape { - SelectionShape::Box(quad) => { - let enclosed = quad[0].min(quad[1]).cmple(bottom_left).all() && quad[0].max(quad[1]).cmpge(top_right).all(); + SelectionShape::Box(rect) => { + let enclosed = rect.contains_rect(segment_bbox); match selection_mode { SelectionMode::Enclosed => enclosed, _ => { // Check for intersection with the segment - enclosed || is_intersecting(bezier, quad, transform) + enclosed + || rect + .path_segments(DEFAULT_ACCURACY) + .map(|seg| seg.as_line().unwrap()) + .any(|line| !transformed_segment.intersect_line(line).is_empty()) } } } @@ -2098,7 +2187,7 @@ impl ShapeState { let polygon = polygon_subpath.as_ref().expect("If `selection_shape` is a polygon then subpath is constructed beforehand."); // Sample 10 points on the bezier and check if all or some lie inside the polygon - let points = bezier.compute_lookup_table(Some(10), None); + let points = pathseg_compute_lookup_table(segment, Some(10), false); match selection_mode { SelectionMode::Enclosed => points.map(|p| transform.transform_point2(p)).all(|p| polygon.contains_point(p)), _ => points.map(|p| transform.transform_point2(p)).any(|p| polygon.contains_point(p)), @@ -2111,13 +2200,15 @@ impl ShapeState { } } + let segment_points = pathseg_points(segment); + // Selecting handles - for (position, id) in [(bezier.handle_start(), ManipulatorPointId::PrimaryHandle(id)), (bezier.handle_end(), ManipulatorPointId::EndHandle(id))] { + for (position, id) in [(segment_points.p1, ManipulatorPointId::PrimaryHandle(id)), (segment_points.p2, ManipulatorPointId::EndHandle(id))] { let Some(position) = position else { continue }; let transformed_position = transform.transform_point2(position); let select = match selection_shape { - SelectionShape::Box(quad) => quad[0].min(quad[1]).cmple(transformed_position).all() && quad[0].max(quad[1]).cmpge(transformed_position).all(), + SelectionShape::Box(rect) => rect.contains(dvec2_to_point(transformed_position)), SelectionShape::Lasso(_) => polygon_subpath .as_ref() .expect("If `selection_shape` is a polygon then subpath is constructed beforehand.") @@ -2125,7 +2216,10 @@ impl ShapeState { }; if select && select_points { - let is_visible_handle = is_visible_point(id, &vector, path_overlay_mode, frontier_handles_info, selected_segments.clone(), &selected_points); + let frontier_handles_for_layer = frontier_handles_info.and_then(|frontier_handles| frontier_handles.get(&layer)); + let state = self.selected_shape_state.get(&layer).expect("Cannot find state for layer"); + let selected_segments_for_layer = selected_segments_for_layer(&vector, state); + let is_visible_handle = is_visible_point(id, &vector, path_overlay_mode, frontier_handles_for_layer, &selected_segments_for_layer, &selected_points); if is_visible_handle { points_inside.entry(layer).or_default().insert(id); @@ -2139,7 +2233,7 @@ impl ShapeState { let transformed_position = transform.transform_point2(position); let select = match selection_shape { - SelectionShape::Box(quad) => quad[0].min(quad[1]).cmple(transformed_position).all() && quad[0].max(quad[1]).cmpge(transformed_position).all(), + SelectionShape::Box(rect) => rect.contains(dvec2_to_point(transformed_position)), SelectionShape::Lasso(_) => polygon_subpath .as_ref() .expect("If `selection_shape` is a polygon then subpath is constructed beforehand.") diff --git a/editor/src/messages/tool/common_functionality/shapes/arc_shape.rs b/editor/src/messages/tool/common_functionality/shapes/arc_shape.rs index 68803598d..a40ea4160 100644 --- a/editor/src/messages/tool/common_functionality/shapes/arc_shape.rs +++ b/editor/src/messages/tool/common_functionality/shapes/arc_shape.rs @@ -146,13 +146,14 @@ impl Arc { pub fn update_shape( document: &DocumentMessageHandler, ipp: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, layer: LayerNodeIdentifier, shape_tool_data: &mut ShapeToolData, modifier: ShapeToolModifierKey, responses: &mut VecDeque, ) { let (center, lock_ratio) = (modifier[0], modifier[1]); - if let Some([start, end]) = shape_tool_data.data.calculate_points(document, ipp, center, lock_ratio) { + if let Some([start, end]) = shape_tool_data.data.calculate_points(document, ipp, viewport, center, lock_ratio) { let Some(node_id) = graph_modification_utils::get_arc_id(layer, &document.network_interface) else { return; }; diff --git a/editor/src/messages/tool/common_functionality/shapes/circle_shape.rs b/editor/src/messages/tool/common_functionality/shapes/circle_shape.rs index 1e58f872c..fa59535b5 100644 --- a/editor/src/messages/tool/common_functionality/shapes/circle_shape.rs +++ b/editor/src/messages/tool/common_functionality/shapes/circle_shape.rs @@ -89,26 +89,22 @@ impl Circle { pub fn update_shape( document: &DocumentMessageHandler, ipp: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, layer: LayerNodeIdentifier, shape_tool_data: &mut ShapeToolData, modifier: ShapeToolModifierKey, responses: &mut VecDeque, ) { let center = modifier[0]; - let [start, end] = shape_tool_data.data.calculate_circle_points(document, ipp, center); + let [start, end] = shape_tool_data.data.calculate_circle_points(document, ipp, viewport, center); let Some(node_id) = graph_modification_utils::get_circle_id(layer, &document.network_interface) else { return; }; let dimensions = (start - end).abs(); - let radius: f64; // We keep the smaller dimension's scale at 1 and scale the other dimension accordingly - if dimensions.x > dimensions.y { - radius = dimensions.y / 2.; - } else { - radius = dimensions.x / 2.; - } + let radius: f64 = if dimensions.x > dimensions.y { dimensions.y / 2. } else { dimensions.x / 2. }; responses.add(NodeGraphMessage::SetInput { input_connector: InputConnector::node(node_id, 1), diff --git a/editor/src/messages/tool/common_functionality/shapes/ellipse_shape.rs b/editor/src/messages/tool/common_functionality/shapes/ellipse_shape.rs index 3cc86193d..e235072a0 100644 --- a/editor/src/messages/tool/common_functionality/shapes/ellipse_shape.rs +++ b/editor/src/messages/tool/common_functionality/shapes/ellipse_shape.rs @@ -23,6 +23,7 @@ impl Ellipse { pub fn update_shape( document: &DocumentMessageHandler, ipp: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, layer: LayerNodeIdentifier, shape_tool_data: &mut ShapeToolData, modifier: ShapeToolModifierKey, @@ -30,7 +31,7 @@ impl Ellipse { ) { let [center, lock_ratio, _] = modifier; - if let Some([start, end]) = shape_tool_data.data.calculate_points(document, ipp, center, lock_ratio) { + if let Some([start, end]) = shape_tool_data.data.calculate_points(document, ipp, viewport, center, lock_ratio) { let Some(node_id) = graph_modification_utils::get_ellipse_id(layer, &document.network_interface) else { return; }; diff --git a/editor/src/messages/tool/common_functionality/shapes/grid_shape.rs b/editor/src/messages/tool/common_functionality/shapes/grid_shape.rs new file mode 100644 index 000000000..1ab97ca7d --- /dev/null +++ b/editor/src/messages/tool/common_functionality/shapes/grid_shape.rs @@ -0,0 +1,256 @@ +use super::shape_utility::ShapeToolModifierKey; +use super::*; +use crate::messages::portfolio::document::graph_operation::utility_types::TransformIn; +use crate::messages::portfolio::document::node_graph::document_node_definitions::resolve_document_node_type; +use crate::messages::portfolio::document::overlays::utility_types::OverlayContext; +use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; +use crate::messages::portfolio::document::utility_types::network_interface::{InputConnector, NodeTemplate}; +use crate::messages::tool::common_functionality::gizmos::shape_gizmos::grid_rows_columns_gizmo::{RowColumnGizmo, RowColumnGizmoState}; +use crate::messages::tool::common_functionality::graph_modification_utils; +use crate::messages::tool::common_functionality::shape_editor::ShapeState; +use crate::messages::tool::common_functionality::shapes::shape_utility::ShapeGizmoHandler; +use crate::messages::tool::tool_messages::tool_prelude::*; +use glam::DAffine2; +use graph_craft::document::NodeInput; +use graph_craft::document::value::TaggedValue; +use graphene_std::NodeInputDecleration; +use graphene_std::vector::misc::GridType; +use std::collections::VecDeque; + +#[derive(Clone, Debug, Default)] +pub struct GridGizmoHandler { + row_column_gizmo: RowColumnGizmo, +} + +impl ShapeGizmoHandler for GridGizmoHandler { + fn is_any_gizmo_hovered(&self) -> bool { + self.row_column_gizmo.is_hovered() + } + + fn handle_state(&mut self, selected_grid_layer: LayerNodeIdentifier, mouse_position: DVec2, document: &DocumentMessageHandler, _responses: &mut VecDeque) { + self.row_column_gizmo.handle_actions(selected_grid_layer, mouse_position, document); + } + + fn handle_click(&mut self) { + if self.row_column_gizmo.is_hovered() { + self.row_column_gizmo.update_state(RowColumnGizmoState::Dragging); + } + } + + fn handle_update(&mut self, drag_start: DVec2, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, responses: &mut VecDeque) { + if self.row_column_gizmo.is_dragging() { + self.row_column_gizmo.update(document, input, responses, drag_start); + } + } + + fn overlays( + &self, + document: &DocumentMessageHandler, + selected_grid_layer: Option, + _input: &InputPreprocessorMessageHandler, + shape_editor: &mut &mut ShapeState, + mouse_position: DVec2, + overlay_context: &mut OverlayContext, + ) { + self.row_column_gizmo.overlays(document, selected_grid_layer, shape_editor, mouse_position, overlay_context); + } + + fn dragging_overlays( + &self, + document: &DocumentMessageHandler, + _input: &InputPreprocessorMessageHandler, + shape_editor: &mut &mut ShapeState, + mouse_position: DVec2, + overlay_context: &mut OverlayContext, + ) { + if self.row_column_gizmo.is_dragging() { + self.row_column_gizmo.overlays(document, None, shape_editor, mouse_position, overlay_context); + } + } + + fn cleanup(&mut self) { + self.row_column_gizmo.cleanup(); + } + + fn mouse_cursor_icon(&self) -> Option { + if self.row_column_gizmo.is_hovered() || self.row_column_gizmo.is_dragging() { + return Some(self.row_column_gizmo.gizmo_type.mouse_icon()); + } + + None + } +} + +#[derive(Default)] +pub struct Grid; + +impl Grid { + pub fn create_node(grid_type: GridType) -> NodeTemplate { + let node_type = resolve_document_node_type("Grid").expect("Grid can't be found"); + node_type.node_template_input_override([ + None, + Some(NodeInput::value(TaggedValue::GridType(grid_type), false)), + Some(NodeInput::value(TaggedValue::DVec2(DVec2::ZERO), false)), + ]) + } + + pub fn update_shape( + document: &DocumentMessageHandler, + ipp: &InputPreprocessorMessageHandler, + layer: LayerNodeIdentifier, + grid_type: GridType, + shape_tool_data: &mut ShapeToolData, + modifier: ShapeToolModifierKey, + responses: &mut VecDeque, + ) { + use graphene_std::vector::generator_nodes::grid::*; + + let [center, lock_ratio, _] = modifier; + let is_isometric = grid_type == GridType::Isometric; + + let Some(node_id) = graph_modification_utils::get_grid_id(layer, &document.network_interface) else { + return; + }; + + let start = shape_tool_data.data.viewport_drag_start(document); + let end = ipp.mouse.position; + + let (translation, dimensions, angle) = calculate_grid_params(start, end, is_isometric, ipp.keyboard.key(center), ipp.keyboard.key(lock_ratio)); + + // Set dimensions/spacing + responses.add(NodeGraphMessage::SetInput { + input_connector: InputConnector::node(node_id, SpacingInput::::INDEX), + input: NodeInput::value(TaggedValue::DVec2(dimensions), false), + }); + + // Set angle for isometric grids + if let Some(angle_deg) = angle { + responses.add(NodeGraphMessage::SetInput { + input_connector: InputConnector::node(node_id, AnglesInput::INDEX), + input: NodeInput::value(TaggedValue::DVec2(DVec2::splat(angle_deg)), false), + }); + } + + // Set transform + responses.add(GraphOperationMessage::TransformSet { + layer, + transform: DAffine2::from_scale_angle_translation(DVec2::ONE, 0., translation), + transform_in: TransformIn::Viewport, + skip_rerender: false, + }); + } +} + +fn calculate_grid_params(start: DVec2, end: DVec2, is_isometric: bool, center: bool, lock_ratio: bool) -> (DVec2, DVec2, Option) { + let raw_dimensions = (start - end).abs(); + let mouse_delta = end - start; + let dimensions; + let mut translation = start; + let mut angle = None; + + match (center, lock_ratio) { + // Both center and lock_ratio: centered + square/fixed-angle grid + (true, true) => { + if is_isometric { + // Fix angle at 30ยฐ - standardized isometric view + angle = Some(30.); + + // Calculate the width based on given height and angle 30ยฐ + let width = calculate_isometric_x_position(raw_dimensions.y / 9., 30_f64.to_radians(), 30_f64.to_radians()).abs(); + + // To make draw from center: shift x by half of width and y by half of height (mouse_delta.y) + translation -= DVec2::new(width / 2., mouse_delta.y / 2.); + dimensions = DVec2::splat(raw_dimensions.y) / 9.; + + // Adjust for negative upward drag - compensate for coordinate system + if end.y < start.y { + translation -= DVec2::new(0., start.y - end.y); + } + } else { + // We want to make both dimensions the same so we choose whichever is bigger and shift to make center + let max = raw_dimensions.x.max(raw_dimensions.y); + let distance_to_center = max; + translation = start - distance_to_center; + dimensions = 2. * DVec2::splat(max) / 9.; // 2x because centering halves the effective area + } + } + + // Only center: centered grid with free aspect ratio + (true, false) => { + if is_isometric { + // Calculate angle from mouse movement - dynamic angle based on drag direction + angle = Some((raw_dimensions.y / (mouse_delta.x * 2.)).atan().to_degrees()); + + // To make draw from center: shift by half of mouse movement + translation -= mouse_delta / 2.; + dimensions = DVec2::splat(raw_dimensions.y) / 9.; + + // Adjust for upward drag - maintain proper grid positioning + if end.y < start.y { + translation -= DVec2::new(0., start.y - end.y); + } + } else { + // Logic: Rectangular centered grid using exact drag proportions + let distance_to_center = raw_dimensions; + translation = start - distance_to_center; + dimensions = 2. * raw_dimensions / 9.; // 2x for centering + } + } + + // Only lock_ratio: square/fixed-angle grid from drag start point + (false, true) => { + let max: f64; + if is_isometric { + dimensions = DVec2::splat(raw_dimensions.y) / 9.; + + // Use 30ยฐ for angle - consistent isometric standard + angle = Some(30.); + max = raw_dimensions.y; + } else { + // Logic: Force square grid by using larger dimension + max = raw_dimensions.x.max(raw_dimensions.y); + dimensions = DVec2::splat(max) / 9.; + } + + // Adjust for negative drag directions - maintain grid at intended position + if end.y < start.y { + translation -= DVec2::new(0., max); + } + if end.x < start.x { + translation -= DVec2::new(max, 0.); + } + } + + // Neither center nor lock_ratio: free-form grid following exact user input + (false, false) => { + if is_isometric { + // Calculate angle from mouse movement - fully dynamic + // Logic: angle represents user's exact intended perspective + angle = Some((raw_dimensions.y / (mouse_delta.x * 2.)).atan().to_degrees()); + dimensions = DVec2::splat(raw_dimensions.y) / 9.; + } else { + // Use exact drag dimensions for grid spacing - what you drag is what you get + // Logic: Direct mapping of user gesture to grid parameters + dimensions = raw_dimensions / 9.; + + // Adjust for leftward drag - keep grid positioned correctly + if end.x < start.x { + translation -= DVec2::new(start.x - end.x, 0.); + } + } + + // Adjust for upward drag (common to both grid types) + // Logic: compensate for coordinate system where Y increases downward + if end.y < start.y { + translation -= DVec2::new(0., start.y - end.y); + } + } + } + + (translation, dimensions, angle) +} + +fn calculate_isometric_x_position(y_spacing: f64, rad_a: f64, rad_b: f64) -> f64 { + let spacing_x = y_spacing / (rad_a.tan() + rad_b.tan()); + spacing_x * 9. +} diff --git a/editor/src/messages/tool/common_functionality/shapes/line_shape.rs b/editor/src/messages/tool/common_functionality/shapes/line_shape.rs index 8bd22b0b1..16b64a231 100644 --- a/editor/src/messages/tool/common_functionality/shapes/line_shape.rs +++ b/editor/src/messages/tool/common_functionality/shapes/line_shape.rs @@ -48,6 +48,7 @@ impl Line { pub fn update_shape( document: &DocumentMessageHandler, ipp: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, layer: LayerNodeIdentifier, shape_tool_data: &mut ShapeToolData, modifier: ShapeToolModifierKey, @@ -59,7 +60,7 @@ impl Line { let keyboard = &ipp.keyboard; let ignore = [layer]; - let snap_data = SnapData::ignore(document, ipp, &ignore); + let snap_data = SnapData::ignore(document, ipp, viewport, &ignore); let mut document_points = generate_line(shape_tool_data, snap_data, keyboard.key(lock_angle), keyboard.key(snap_angle), keyboard.key(center)); if shape_tool_data.line_data.dragging_endpoint == Some(LineEnd::Start) { @@ -210,18 +211,18 @@ mod test_line_tool { async fn get_line_node_inputs(editor: &mut EditorTestUtils) -> Option<(DVec2, DVec2)> { let document = editor.active_document(); let network_interface = &document.network_interface; - let node_id = network_interface + + network_interface .selected_nodes() .selected_visible_and_unlocked_layers(network_interface) .filter_map(|layer| { - let node_inputs = NodeGraphLayer::new(layer, &network_interface).find_node_inputs("Line")?; + let node_inputs = NodeGraphLayer::new(layer, network_interface).find_node_inputs("Line")?; let (Some(&TaggedValue::DVec2(start)), Some(&TaggedValue::DVec2(end))) = (node_inputs[1].as_value(), node_inputs[2].as_value()) else { return None; }; Some((start, end)) }) - .next(); - node_id + .next() } #[tokio::test] @@ -245,11 +246,7 @@ mod test_line_tool { editor.new_document().await; editor.handle_message(NavigationMessage::CanvasZoomSet { zoom_factor: 2. }).await; editor.handle_message(NavigationMessage::CanvasPan { delta: DVec2::new(100., 50.) }).await; - editor - .handle_message(NavigationMessage::CanvasTiltSet { - angle_radians: (30. as f64).to_radians(), - }) - .await; + editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: 30_f64.to_radians() }).await; editor.drag_tool(ToolType::Line, 0., 0., 100., 100., ModifierKeys::empty()).await; if let Some((start_input, end_input)) = get_line_node_inputs(&mut editor).await { let document = editor.active_document(); @@ -261,15 +258,11 @@ mod test_line_tool { assert!( (start_input - expected_start).length() < 1., - "Start point should match expected document coordinates. Got {:?}, expected {:?}", - start_input, - expected_start + "Start point should match expected document coordinates. Got {start_input:?}, expected {expected_start:?}" ); assert!( (end_input - expected_end).length() < 1., - "End point should match expected document coordinates. Got {:?}, expected {:?}", - end_input, - expected_end + "End point should match expected document coordinates. Got {end_input:?}, expected {expected_end:?}" ); } else { panic!("Line was not created successfully with transformed viewport"); @@ -282,27 +275,19 @@ mod test_line_tool { editor.new_document().await; editor.drag_tool(ToolType::Line, 0., 0., 100., 100., ModifierKeys::CONTROL).await; if let Some((start_input, end_input)) = get_line_node_inputs(&mut editor).await { - match (start_input, end_input) { - (start_input, end_input) => { - let line_vec = end_input - start_input; - let original_angle = line_vec.angle_to(DVec2::X); - editor.drag_tool(ToolType::Line, 0., 0., 200., 50., ModifierKeys::CONTROL).await; - if let Some((updated_start, updated_end)) = get_line_node_inputs(&mut editor).await { - match (updated_start, updated_end) { - (updated_start, updated_end) => { - let updated_line_vec = updated_end - updated_start; - let updated_angle = updated_line_vec.angle_to(DVec2::X); - print!("{:?}", original_angle); - print!("{:?}", updated_angle); - assert!( - line_vec.normalize().dot(updated_line_vec.normalize()).abs() - 1. < 1e-6, - "Line angle should be locked when Ctrl is kept pressed" - ); - assert!((updated_start - updated_end).length() > 1., "Line should be able to change length when Ctrl is kept pressed"); - } - } - } - } + let line_vec = end_input - start_input; + let original_angle = line_vec.angle_to(DVec2::X); + editor.drag_tool(ToolType::Line, 0., 0., 200., 50., ModifierKeys::CONTROL).await; + if let Some((updated_start, updated_end)) = get_line_node_inputs(&mut editor).await { + let updated_line_vec = updated_end - updated_start; + let updated_angle = updated_line_vec.angle_to(DVec2::X); + print!("{original_angle:?}"); + print!("{updated_angle:?}"); + assert!( + line_vec.normalize().dot(updated_line_vec.normalize()).abs() - 1. < 1e-6, + "Line angle should be locked when Ctrl is kept pressed" + ); + assert!((updated_start - updated_end).length() > 1., "Line should be able to change length when Ctrl is kept pressed"); } } } @@ -313,14 +298,10 @@ mod test_line_tool { editor.new_document().await; editor.drag_tool(ToolType::Line, 100., 100., 200., 100., ModifierKeys::ALT).await; if let Some((start_input, end_input)) = get_line_node_inputs(&mut editor).await { - match (start_input, end_input) { - (start_input, end_input) => { - let expected_start = DVec2::new(0., 100.); - let expected_end = DVec2::new(200., 100.); - assert!((start_input - expected_start).length() < 1., "Start point should be near (0, 100)"); - assert!((end_input - expected_end).length() < 1., "End point should be near (200, 100)"); - } - } + let expected_start = DVec2::new(0., 100.); + let expected_end = DVec2::new(200., 100.); + assert!((start_input - expected_start).length() < 1., "Start point should be near (0, 100)"); + assert!((end_input - expected_end).length() < 1., "End point should be near (200, 100)"); } } diff --git a/editor/src/messages/tool/common_functionality/shapes/mod.rs b/editor/src/messages/tool/common_functionality/shapes/mod.rs index a994ac52d..5031a6224 100644 --- a/editor/src/messages/tool/common_functionality/shapes/mod.rs +++ b/editor/src/messages/tool/common_functionality/shapes/mod.rs @@ -1,10 +1,12 @@ pub mod arc_shape; pub mod circle_shape; pub mod ellipse_shape; +pub mod grid_shape; pub mod line_shape; pub mod polygon_shape; pub mod rectangle_shape; pub mod shape_utility; +pub mod spiral_shape; pub mod star_shape; pub use super::shapes::ellipse_shape::Ellipse; diff --git a/editor/src/messages/tool/common_functionality/shapes/polygon_shape.rs b/editor/src/messages/tool/common_functionality/shapes/polygon_shape.rs index ef90e7a4f..0abce50c4 100644 --- a/editor/src/messages/tool/common_functionality/shapes/polygon_shape.rs +++ b/editor/src/messages/tool/common_functionality/shapes/polygon_shape.rs @@ -1,19 +1,16 @@ -use super::shape_utility::ShapeToolModifierKey; -use super::shape_utility::update_radius_sign; +use super::shape_utility::{ShapeToolModifierKey, update_radius_sign}; use super::*; use crate::messages::portfolio::document::graph_operation::utility_types::TransformIn; use crate::messages::portfolio::document::node_graph::document_node_definitions::resolve_document_node_type; use crate::messages::portfolio::document::overlays::utility_types::OverlayContext; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::network_interface::{InputConnector, NodeTemplate}; -use crate::messages::tool::common_functionality::gizmos::shape_gizmos::number_of_points_dial::NumberOfPointsDial; -use crate::messages::tool::common_functionality::gizmos::shape_gizmos::number_of_points_dial::NumberOfPointsDialState; -use crate::messages::tool::common_functionality::gizmos::shape_gizmos::point_radius_handle::PointRadiusHandle; -use crate::messages::tool::common_functionality::gizmos::shape_gizmos::point_radius_handle::PointRadiusHandleState; -use crate::messages::tool::common_functionality::graph_modification_utils; +use crate::messages::tool::common_functionality::gizmos::shape_gizmos::number_of_points_dial::{NumberOfPointsDial, NumberOfPointsDialState}; +use crate::messages::tool::common_functionality::gizmos::shape_gizmos::point_radius_handle::{PointRadiusHandle, PointRadiusHandleState}; +use crate::messages::tool::common_functionality::graph_modification_utils::{self, NodeGraphLayer}; use crate::messages::tool::common_functionality::shape_editor::ShapeState; -use crate::messages::tool::common_functionality::shapes::shape_utility::ShapeGizmoHandler; -use crate::messages::tool::common_functionality::shapes::shape_utility::polygon_outline; +use crate::messages::tool::common_functionality::shapes::shape_utility::{ShapeGizmoHandler, polygon_outline}; +use crate::messages::tool::tool_messages::shape_tool::ShapeOptionsUpdate; use crate::messages::tool::tool_messages::tool_prelude::*; use glam::DAffine2; use graph_craft::document::NodeInput; @@ -61,13 +58,13 @@ impl ShapeGizmoHandler for PolygonGizmoHandler { &self, document: &DocumentMessageHandler, selected_polygon_layer: Option, - input: &InputPreprocessorMessageHandler, + _input: &InputPreprocessorMessageHandler, shape_editor: &mut &mut ShapeState, mouse_position: DVec2, overlay_context: &mut OverlayContext, ) { self.number_of_points_dial.overlays(document, selected_polygon_layer, shape_editor, mouse_position, overlay_context); - self.point_radius_handle.overlays(selected_polygon_layer, document, input, overlay_context); + self.point_radius_handle.overlays(selected_polygon_layer, document, overlay_context); polygon_outline(selected_polygon_layer, document, overlay_context); } @@ -75,7 +72,7 @@ impl ShapeGizmoHandler for PolygonGizmoHandler { fn dragging_overlays( &self, document: &DocumentMessageHandler, - input: &InputPreprocessorMessageHandler, + _input: &InputPreprocessorMessageHandler, shape_editor: &mut &mut ShapeState, mouse_position: DVec2, overlay_context: &mut OverlayContext, @@ -85,7 +82,7 @@ impl ShapeGizmoHandler for PolygonGizmoHandler { } if self.point_radius_handle.is_dragging_or_snapped() { - self.point_radius_handle.overlays(None, document, input, overlay_context); + self.point_radius_handle.overlays(None, document, overlay_context); } } @@ -119,6 +116,7 @@ impl Polygon { pub fn update_shape( document: &DocumentMessageHandler, ipp: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, layer: LayerNodeIdentifier, shape_tool_data: &mut ShapeToolData, modifier: ShapeToolModifierKey, @@ -126,7 +124,7 @@ impl Polygon { ) { let [center, lock_ratio, _] = modifier; - if let Some([start, end]) = shape_tool_data.data.calculate_points(document, ipp, center, lock_ratio) { + if let Some([start, end]) = shape_tool_data.data.calculate_points(document, ipp, viewport, center, lock_ratio) { // TODO: We need to determine how to allow the polygon node to make irregular shapes update_radius_sign(end, start, layer, document, responses); @@ -160,4 +158,35 @@ impl Polygon { }); } } + + /// Updates the number of sides of a polygon or star node and syncs the Shape tool UI widget accordingly. + /// Increases or decreases the side count based on user input, clamped to a minimum of 3. + pub fn decrease_or_increase_sides(decrease: bool, layer: LayerNodeIdentifier, document: &DocumentMessageHandler, responses: &mut VecDeque) { + let Some(node_id) = graph_modification_utils::get_polygon_id(layer, &document.network_interface).or(graph_modification_utils::get_star_id(layer, &document.network_interface)) else { + return; + }; + + let Some(node_inputs) = NodeGraphLayer::new(layer, &document.network_interface) + .find_node_inputs("Regular Polygon") + .or(NodeGraphLayer::new(layer, &document.network_interface).find_node_inputs("Star")) + else { + return; + }; + + let Some(&TaggedValue::U32(n)) = node_inputs.get(1).unwrap().as_value() else { + return; + }; + + let new_dimension = if decrease { (n - 1).max(3) } else { n + 1 }; + + responses.add(ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::Vertices(new_dimension), + }); + + responses.add(NodeGraphMessage::SetInput { + input_connector: InputConnector::node(node_id, 1), + input: NodeInput::value(TaggedValue::U32(new_dimension), false), + }); + responses.add(NodeGraphMessage::RunDocumentGraph); + } } diff --git a/editor/src/messages/tool/common_functionality/shapes/rectangle_shape.rs b/editor/src/messages/tool/common_functionality/shapes/rectangle_shape.rs index 56cdbe4d1..16f95d151 100644 --- a/editor/src/messages/tool/common_functionality/shapes/rectangle_shape.rs +++ b/editor/src/messages/tool/common_functionality/shapes/rectangle_shape.rs @@ -23,6 +23,7 @@ impl Rectangle { pub fn update_shape( document: &DocumentMessageHandler, ipp: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, layer: LayerNodeIdentifier, shape_tool_data: &mut ShapeToolData, modifier: ShapeToolModifierKey, @@ -30,7 +31,7 @@ impl Rectangle { ) { let [center, lock_ratio, _] = modifier; - if let Some([start, end]) = shape_tool_data.data.calculate_points(document, ipp, center, lock_ratio) { + if let Some([start, end]) = shape_tool_data.data.calculate_points(document, ipp, viewport, center, lock_ratio) { let Some(node_id) = graph_modification_utils::get_rectangle_id(layer, &document.network_interface) else { return; }; diff --git a/editor/src/messages/tool/common_functionality/shapes/shape_utility.rs b/editor/src/messages/tool/common_functionality/shapes/shape_utility.rs index aa43e0cb2..a94847c51 100644 --- a/editor/src/messages/tool/common_functionality/shapes/shape_utility.rs +++ b/editor/src/messages/tool/common_functionality/shapes/shape_utility.rs @@ -11,12 +11,13 @@ use crate::messages::tool::common_functionality::shape_editor::ShapeState; use crate::messages::tool::common_functionality::transformation_cage::BoundingBoxManager; use crate::messages::tool::tool_messages::tool_prelude::Key; use crate::messages::tool::utility_types::*; -use bezier_rs::Subpath; use glam::{DAffine2, DMat2, DVec2}; use graph_craft::document::NodeInput; use graph_craft::document::value::TaggedValue; +use graphene_std::NodeInputDecleration; +use graphene_std::subpath::{self, Subpath}; use graphene_std::vector::click_target::ClickTargetType; -use graphene_std::vector::misc::{ArcType, dvec2_to_point}; +use graphene_std::vector::misc::{ArcType, GridType, dvec2_to_point}; use kurbo::{BezPath, PathEl, Shape}; use std::collections::VecDeque; use std::f64::consts::{PI, TAU}; @@ -28,6 +29,8 @@ pub enum ShapeType { Star, Circle, Arc, + Spiral, + Grid, Rectangle, Ellipse, Line, @@ -40,6 +43,8 @@ impl ShapeType { Self::Star => "Star", Self::Circle => "Circle", Self::Arc => "Arc", + Self::Grid => "Grid", + Self::Spiral => "Spiral", Self::Rectangle => "Rectangle", Self::Ellipse => "Ellipse", Self::Line => "Line", @@ -47,7 +52,7 @@ impl ShapeType { .into() } - pub fn tooltip(&self) -> String { + pub fn tooltip_label(&self) -> String { (match self { Self::Line => "Line Tool", Self::Rectangle => "Rectangle Tool", @@ -57,6 +62,14 @@ impl ShapeType { .into() } + pub fn tooltip_description(&self) -> String { + (match self { + // TODO: Add descriptions to all the shape tools + _ => "", + }) + .into() + } + pub fn icon_name(&self) -> String { (match self { Self::Line => "VectorLineTool", @@ -363,9 +376,9 @@ pub fn arc_outline(layer: Option, document: &DocumentMessag start_angle / 360. * std::f64::consts::TAU, sweep_angle / 360. * std::f64::consts::TAU, match arc_type { - ArcType::Open => bezier_rs::ArcType::Open, - ArcType::Closed => bezier_rs::ArcType::Closed, - ArcType::PieSlice => bezier_rs::ArcType::PieSlice, + ArcType::Open => subpath::ArcType::Open, + ArcType::Closed => subpath::ArcType::Closed, + ArcType::PieSlice => subpath::ArcType::PieSlice, }, ))]; let viewport = document.metadata().transform_to_viewport(layer); @@ -475,3 +488,23 @@ pub fn calculate_arc_text_transform(angle: f64, offset_angle: f64, center: DVec2 ); DAffine2::from_translation(text_texture_position + center) } + +/// Extract the node input values of Grid. +/// Returns an option of (grid_type, spacing, columns, rows, angles). +pub fn extract_grid_parameters(layer: LayerNodeIdentifier, document: &DocumentMessageHandler) -> Option<(GridType, DVec2, u32, u32, DVec2)> { + use graphene_std::vector::generator_nodes::grid::*; + + let node_inputs = NodeGraphLayer::new(layer, &document.network_interface).find_node_inputs("Grid")?; + + let (Some(&TaggedValue::GridType(grid_type)), Some(&TaggedValue::DVec2(spacing)), Some(&TaggedValue::U32(columns)), Some(&TaggedValue::U32(rows)), Some(&TaggedValue::DVec2(angles))) = ( + node_inputs.get(GridTypeInput::INDEX)?.as_value(), + node_inputs.get(SpacingInput::::INDEX)?.as_value(), + node_inputs.get(ColumnsInput::INDEX)?.as_value(), + node_inputs.get(RowsInput::INDEX)?.as_value(), + node_inputs.get(AnglesInput::INDEX)?.as_value(), + ) else { + return None; + }; + + Some((grid_type, spacing, columns, rows, angles)) +} diff --git a/editor/src/messages/tool/common_functionality/shapes/spiral_shape.rs b/editor/src/messages/tool/common_functionality/shapes/spiral_shape.rs new file mode 100644 index 000000000..caf0346be --- /dev/null +++ b/editor/src/messages/tool/common_functionality/shapes/spiral_shape.rs @@ -0,0 +1,123 @@ +use super::*; +use crate::messages::portfolio::document::graph_operation::utility_types::TransformIn; +use crate::messages::portfolio::document::node_graph::document_node_definitions::resolve_document_node_type; +use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; +use crate::messages::portfolio::document::utility_types::network_interface::{InputConnector, NodeTemplate}; +use crate::messages::tool::common_functionality::graph_modification_utils::{self, NodeGraphLayer}; +use crate::messages::tool::common_functionality::snapping::{SnapCandidatePoint, SnapData, SnapTypeConfiguration}; +use crate::messages::tool::tool_messages::shape_tool::ShapeOptionsUpdate; +use crate::messages::tool::tool_messages::tool_prelude::*; +use glam::DAffine2; +use graph_craft::document::NodeInput; +use graph_craft::document::value::TaggedValue; +use graphene_std::NodeInputDecleration; +use graphene_std::vector::misc::SpiralType; +use std::collections::VecDeque; + +#[derive(Default)] +pub struct Spiral; + +impl Spiral { + pub fn create_node(spiral_type: SpiralType, turns: f64) -> NodeTemplate { + let inner_radius = match spiral_type { + SpiralType::Archimedean => 0., + SpiralType::Logarithmic => 0.1, + }; + + let node_type = resolve_document_node_type("Spiral").expect("Spiral node can't be found"); + node_type.node_template_input_override([ + None, + Some(NodeInput::value(TaggedValue::SpiralType(spiral_type), false)), + Some(NodeInput::value(TaggedValue::F64(turns), false)), + Some(NodeInput::value(TaggedValue::F64(0.), false)), + Some(NodeInput::value(TaggedValue::F64(inner_radius), false)), + Some(NodeInput::value(TaggedValue::F64(0.1), false)), + Some(NodeInput::value(TaggedValue::F64(90.), false)), + ]) + } + + pub fn update_shape( + document: &DocumentMessageHandler, + ipp: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, + layer: LayerNodeIdentifier, + shape_tool_data: &mut ShapeToolData, + responses: &mut VecDeque, + ) { + use graphene_std::vector::generator_nodes::spiral::*; + + let viewport_drag_start = shape_tool_data.data.viewport_drag_start(document); + + let ignore = vec![layer]; + let snap_data = SnapData::ignore(document, ipp, viewport, &ignore); + let config = SnapTypeConfiguration::default(); + let document_mouse = document.metadata().document_to_viewport.inverse().transform_point2(ipp.mouse.position); + let snapped = shape_tool_data.data.snap_manager.free_snap(&snap_data, &SnapCandidatePoint::handle(document_mouse), config); + let snapped_viewport_point = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); + shape_tool_data.data.snap_manager.update_indicator(snapped); + + let dragged_distance = (viewport_drag_start - snapped_viewport_point).length(); + + let Some(node_id) = graph_modification_utils::get_spiral_id(layer, &document.network_interface) else { + return; + }; + + let Some(node_inputs) = NodeGraphLayer::new(layer, &document.network_interface).find_node_inputs("Spiral") else { + return; + }; + + let Some(&TaggedValue::SpiralType(spiral_type)) = node_inputs.get(SpiralTypeInput::INDEX).unwrap().as_value() else { + return; + }; + + let new_radius = match spiral_type { + SpiralType::Archimedean => dragged_distance, + SpiralType::Logarithmic => (dragged_distance).max(0.1), + }; + + responses.add(GraphOperationMessage::TransformSet { + layer, + transform: DAffine2::from_scale_angle_translation(DVec2::ONE, 0., viewport_drag_start), + transform_in: TransformIn::Viewport, + skip_rerender: false, + }); + + responses.add(NodeGraphMessage::SetInput { + input_connector: InputConnector::node(node_id, OuterRadiusInput::INDEX), + input: NodeInput::value(TaggedValue::F64(new_radius), false), + }); + } + + /// Updates the number of turns of a Spiral node and recalculates its radius based on drag distance. + /// Also updates the Shape tool's turns UI widget to reflect the change. + pub fn update_turns(decrease: bool, layer: LayerNodeIdentifier, document: &DocumentMessageHandler, responses: &mut VecDeque) { + use graphene_std::vector::generator_nodes::spiral::*; + + let Some(node_inputs) = NodeGraphLayer::new(layer, &document.network_interface).find_node_inputs("Spiral") else { + return; + }; + + let Some(node_id) = graph_modification_utils::get_spiral_id(layer, &document.network_interface) else { + return; + }; + + let Some(&TaggedValue::F64(mut turns)) = node_inputs.get(TurnsInput::INDEX).unwrap().as_value() else { + return; + }; + + if decrease { + turns = (turns - 1.).max(1.); + } else { + turns += 1.; + } + + responses.add(ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::Turns(turns), + }); + + responses.add(NodeGraphMessage::SetInput { + input_connector: InputConnector::node(node_id, TurnsInput::INDEX), + input: NodeInput::value(TaggedValue::F64(turns), false), + }); + } +} diff --git a/editor/src/messages/tool/common_functionality/shapes/star_shape.rs b/editor/src/messages/tool/common_functionality/shapes/star_shape.rs index 4effa9895..874f464e9 100644 --- a/editor/src/messages/tool/common_functionality/shapes/star_shape.rs +++ b/editor/src/messages/tool/common_functionality/shapes/star_shape.rs @@ -58,13 +58,13 @@ impl ShapeGizmoHandler for StarGizmoHandler { &self, document: &DocumentMessageHandler, selected_star_layer: Option, - input: &InputPreprocessorMessageHandler, + _input: &InputPreprocessorMessageHandler, shape_editor: &mut &mut ShapeState, mouse_position: DVec2, overlay_context: &mut OverlayContext, ) { self.number_of_points_dial.overlays(document, selected_star_layer, shape_editor, mouse_position, overlay_context); - self.point_radius_handle.overlays(selected_star_layer, document, input, overlay_context); + self.point_radius_handle.overlays(selected_star_layer, document, overlay_context); star_outline(selected_star_layer, document, overlay_context); } @@ -72,7 +72,7 @@ impl ShapeGizmoHandler for StarGizmoHandler { fn dragging_overlays( &self, document: &DocumentMessageHandler, - input: &InputPreprocessorMessageHandler, + _input: &InputPreprocessorMessageHandler, shape_editor: &mut &mut ShapeState, mouse_position: DVec2, overlay_context: &mut OverlayContext, @@ -82,7 +82,7 @@ impl ShapeGizmoHandler for StarGizmoHandler { } if self.point_radius_handle.is_dragging_or_snapped() { - self.point_radius_handle.overlays(None, document, input, overlay_context); + self.point_radius_handle.overlays(None, document, overlay_context); } } @@ -121,6 +121,7 @@ impl Star { pub fn update_shape( document: &DocumentMessageHandler, ipp: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, layer: LayerNodeIdentifier, shape_tool_data: &mut ShapeToolData, modifier: ShapeToolModifierKey, @@ -128,7 +129,7 @@ impl Star { ) { let [center, lock_ratio, _] = modifier; - if let Some([start, end]) = shape_tool_data.data.calculate_points(document, ipp, center, lock_ratio) { + if let Some([start, end]) = shape_tool_data.data.calculate_points(document, ipp, viewport, center, lock_ratio) { // TODO: We need to determine how to allow the polygon node to make irregular shapes update_radius_sign(end, start, layer, document, responses); diff --git a/editor/src/messages/tool/common_functionality/snapping.rs b/editor/src/messages/tool/common_functionality/snapping.rs index c9628e3c9..9b53cce62 100644 --- a/editor/src/messages/tool/common_functionality/snapping.rs +++ b/editor/src/messages/tool/common_functionality/snapping.rs @@ -10,14 +10,16 @@ use crate::messages::portfolio::document::utility_types::document_metadata::Laye use crate::messages::portfolio::document::utility_types::misc::{GridSnapTarget, PathSnapTarget, SnapTarget}; use crate::messages::prelude::*; pub use alignment_snapper::*; -use bezier_rs::TValue; pub use distribution_snapper::*; use glam::{DAffine2, DVec2}; use graphene_std::renderer::Quad; use graphene_std::renderer::Rect; use graphene_std::vector::NoHashBuilder; use graphene_std::vector::PointId; +use graphene_std::vector::algorithms::intersection::filtered_segment_intersections; +use graphene_std::vector::misc::point_to_dvec2; pub use grid_snapper::*; +use kurbo::ParamCurve; pub use layer_snapper::*; pub use snap_results::*; use std::cmp::Ordering; @@ -81,6 +83,7 @@ impl SnapConstraint { } } } + pub fn snap_tolerance(document: &DocumentMessageHandler) -> f64 { document.snapping_state.tolerance / document.document_ptz.zoom() } @@ -127,13 +130,16 @@ fn get_closest_point(points: Vec) -> Option { } } } + fn get_closest_curve(curves: &[SnappedCurve], exclude_paths: bool) -> Option<&SnappedPoint> { let keep_curve = |curve: &&SnappedCurve| !exclude_paths || curve.point.target != SnapTarget::Path(PathSnapTarget::AlongPath); curves.iter().filter(keep_curve).map(|curve| &curve.point).min_by(compare_points) } + fn get_closest_line(lines: &[SnappedLine]) -> Option<&SnappedPoint> { lines.iter().map(|curve| &curve.point).min_by(compare_points) } + fn get_closest_intersection(snap_to: DVec2, curves: &[SnappedCurve]) -> Option { let mut best = None; for curve_i in curves { @@ -141,8 +147,8 @@ fn get_closest_intersection(snap_to: DVec2, curves: &[SnappedCurve]) -> Option Option Option { let mut best = None; for line_i in lines { @@ -199,29 +206,31 @@ pub struct SnapCache { pub struct SnapData<'a> { pub document: &'a DocumentMessageHandler, pub input: &'a InputPreprocessorMessageHandler, + pub viewport: &'a ViewportMessageHandler, pub ignore: &'a [LayerNodeIdentifier], pub node_snap_cache: Option<&'a SnapCache>, pub candidates: Option<&'a Vec>, pub alignment_candidates: Option<&'a Vec>, } impl<'a> SnapData<'a> { - pub fn new(document: &'a DocumentMessageHandler, input: &'a InputPreprocessorMessageHandler) -> Self { - Self::ignore(document, input, &[]) + pub fn new(document: &'a DocumentMessageHandler, input: &'a InputPreprocessorMessageHandler, viewport: &'a ViewportMessageHandler) -> Self { + Self::ignore(document, input, viewport, &[]) } - pub fn ignore(document: &'a DocumentMessageHandler, input: &'a InputPreprocessorMessageHandler, ignore: &'a [LayerNodeIdentifier]) -> Self { + pub fn ignore(document: &'a DocumentMessageHandler, input: &'a InputPreprocessorMessageHandler, viewport: &'a ViewportMessageHandler, ignore: &'a [LayerNodeIdentifier]) -> Self { Self { document, input, + viewport, ignore, candidates: None, alignment_candidates: None, node_snap_cache: None, } } - pub fn new_snap_cache(document: &'a DocumentMessageHandler, input: &'a InputPreprocessorMessageHandler, snap_cache: &'a SnapCache) -> Self { + pub fn new_snap_cache(document: &'a DocumentMessageHandler, input: &'a InputPreprocessorMessageHandler, viewport: &'a ViewportMessageHandler, snap_cache: &'a SnapCache) -> Self { Self { node_snap_cache: Some(snap_cache), - ..Self::new(document, input) + ..Self::new(document, input, viewport) } } fn get_candidates(&self) -> &[LayerNodeIdentifier] { @@ -237,6 +246,7 @@ impl<'a> SnapData<'a> { self.node_snap_cache.is_some_and(|cache| !cache.manipulators.is_empty()) } } + impl SnapManager { pub fn update_indicator(&mut self, snapped_point: SnappedPoint) { self.indicator = snapped_point.is_snapped().then_some(snapped_point); @@ -266,22 +276,22 @@ impl SnapManager { snapped_points.push(closest_curve.clone()); } - if document.snapping_state.target_enabled(SnapTarget::Grid(GridSnapTarget::Line)) { - if let Some(closest_line) = get_closest_line(&snap_results.grid_lines) { - snapped_points.push(closest_line.clone()); - } + if document.snapping_state.target_enabled(SnapTarget::Grid(GridSnapTarget::Line)) + && let Some(closest_line) = get_closest_line(&snap_results.grid_lines) + { + snapped_points.push(closest_line.clone()); } if !constrained { - if document.snapping_state.target_enabled(SnapTarget::Path(PathSnapTarget::IntersectionPoint)) { - if let Some(closest_curves_intersection) = get_closest_intersection(point.document_point, &snap_results.curves) { - snapped_points.push(closest_curves_intersection); - } + if document.snapping_state.target_enabled(SnapTarget::Path(PathSnapTarget::IntersectionPoint)) + && let Some(closest_curves_intersection) = get_closest_intersection(point.document_point, &snap_results.curves) + { + snapped_points.push(closest_curves_intersection); } - if document.snapping_state.target_enabled(SnapTarget::Grid(GridSnapTarget::Intersection)) { - if let Some(closest_grid_intersection) = get_grid_intersection(point.document_point, &snap_results.grid_lines) { - snapped_points.push(closest_grid_intersection); - } + if document.snapping_state.target_enabled(SnapTarget::Grid(GridSnapTarget::Intersection)) + && let Some(closest_grid_intersection) = get_grid_intersection(point.document_point, &snap_results.grid_lines) + { + snapped_points.push(closest_grid_intersection); } } @@ -293,7 +303,7 @@ impl SnapManager { for point in snapped_points { let viewport_point = document.metadata().document_to_viewport.transform_point2(point.snapped_point_document); - let on_screen = viewport_point.cmpgt(DVec2::ZERO).all() && viewport_point.cmplt(snap_data.input.viewport_bounds.size()).all(); + let on_screen = viewport_point.cmpgt(DVec2::ZERO).all() && viewport_point.cmplt(snap_data.viewport.size().into()).all(); if !on_screen && !off_screen { continue; } @@ -324,11 +334,12 @@ impl SnapManager { } return; } - let Some(bounds) = document.metadata().bounding_box_with_transform(layer, DAffine2::IDENTITY) else { + // We use a loose bounding box here since these are potential candidates which will be filtered later anyway + let Some(bounds) = document.metadata().loose_bounding_box_with_transform(layer, DAffine2::IDENTITY) else { return; }; let layer_bounds = document.metadata().transform_to_document(layer) * Quad::from_box(bounds); - let screen_bounds = document.metadata().document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, snap_data.input.viewport_bounds.size()]); + let screen_bounds = document.metadata().document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, snap_data.viewport.size().into()]); if screen_bounds.intersects(layer_bounds) { if self.alignment_candidates.as_ref().is_none_or(|candidates| candidates.len() <= 100) { self.alignment_candidates.get_or_insert_with(Vec::new).push(layer); diff --git a/editor/src/messages/tool/common_functionality/snapping/alignment_snapper.rs b/editor/src/messages/tool/common_functionality/snapping/alignment_snapper.rs index 4d5645e53..bd88c9d85 100644 --- a/editor/src/messages/tool/common_functionality/snapping/alignment_snapper.rs +++ b/editor/src/messages/tool/common_functionality/snapping/alignment_snapper.rs @@ -67,34 +67,36 @@ impl AlignmentSnapper { let target_position = target_point.document_point; // Perpendicular snap for line's endpoints - if let Some(quad) = target_point.quad.map(|q| q.0) { - if quad[0] == quad[3] && quad[1] == quad[2] && quad[0] == target_point.document_point { - let [p1, p2, ..] = quad; - let Some(direction) = (p2 - p1).try_normalize() else { return }; - let normal = DVec2::new(-direction.y, direction.x); + if let Some(quad) = target_point.quad.map(|q| q.0) + && quad[0] == quad[3] + && quad[1] == quad[2] + && quad[0] == target_point.document_point + { + let [p1, p2, ..] = quad; + let Some(direction) = (p2 - p1).try_normalize() else { return }; + let normal = DVec2::new(-direction.y, direction.x); - for endpoint in [p1, p2] { - if let Some(perpendicular_snap) = Quad::intersect_rays(point.document_point, direction, endpoint, normal) { - let distance_squared = point.document_point.distance_squared(perpendicular_snap); - if distance_squared < tolerance_squared { - let distance = distance_squared.sqrt(); - let distance_to_align_target = perpendicular_snap.distance_squared(endpoint).sqrt(); + for endpoint in [p1, p2] { + if let Some(perpendicular_snap) = Quad::intersect_rays(point.document_point, direction, endpoint, normal) { + let distance_squared = point.document_point.distance_squared(perpendicular_snap); + if distance_squared < tolerance_squared { + let distance = distance_squared.sqrt(); + let distance_to_align_target = perpendicular_snap.distance_squared(endpoint).sqrt(); - let snap_point = SnappedPoint { - snapped_point_document: perpendicular_snap, - source: point.source, - target: SnapTarget::Alignment(AlignmentSnapTarget::PerpendicularToEndpoint), - target_bounds: Some(Quad(quad)), - distance, - tolerance, - distance_to_align_target, - fully_constrained: false, - at_intersection: true, - alignment_target_horizontal: Some(endpoint), - ..Default::default() - }; - snap_results.points.push(snap_point); - } + let snap_point = SnappedPoint { + snapped_point_document: perpendicular_snap, + source: point.source, + target: SnapTarget::Alignment(AlignmentSnapTarget::PerpendicularToEndpoint), + target_bounds: Some(Quad(quad)), + distance, + tolerance, + distance_to_align_target, + fully_constrained: false, + at_intersection: true, + alignment_target_horizontal: Some(endpoint), + ..Default::default() + }; + snap_results.points.push(snap_point); } } } diff --git a/editor/src/messages/tool/common_functionality/snapping/distribution_snapper.rs b/editor/src/messages/tool/common_functionality/snapping/distribution_snapper.rs index 1622effaf..543c2280f 100644 --- a/editor/src/messages/tool/common_functionality/snapping/distribution_snapper.rs +++ b/editor/src/messages/tool/common_functionality/snapping/distribution_snapper.rs @@ -76,7 +76,7 @@ impl DistributionSnapper { self.down.clear(); self.up.clear(); - let screen_bounds = (document.metadata().document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, snap_data.input.viewport_bounds.size()])).bounding_box(); + let screen_bounds = (document.metadata().document_to_viewport.inverse() * Quad::from_box([DVec2::ZERO, snap_data.viewport.size().into()])).bounding_box(); let max_extent = (screen_bounds[1] - screen_bounds[0]).abs().max_element(); // Collect artboard bounds diff --git a/editor/src/messages/tool/common_functionality/snapping/layer_snapper.rs b/editor/src/messages/tool/common_functionality/snapping/layer_snapper.rs index 0c4148e56..991985571 100644 --- a/editor/src/messages/tool/common_functionality/snapping/layer_snapper.rs +++ b/editor/src/messages/tool/common_functionality/snapping/layer_snapper.rs @@ -3,11 +3,17 @@ use crate::consts::HIDE_HANDLE_DISTANCE; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::misc::*; use crate::messages::prelude::*; -use bezier_rs::{Bezier, Identifier, Subpath, TValue}; -use glam::{DAffine2, DVec2}; +use glam::{DAffine2, DVec2, FloatExt}; use graphene_std::math::math_ext::QuadExt; use graphene_std::renderer::Quad; +use graphene_std::subpath::pathseg_points; +use graphene_std::subpath::{Identifier, ManipulatorGroup, Subpath}; use graphene_std::vector::PointId; +use graphene_std::vector::algorithms::bezpath_algorithms::{pathseg_normals_to_point, pathseg_tangents_to_point}; +use graphene_std::vector::algorithms::intersection::filtered_segment_intersections; +use graphene_std::vector::misc::dvec2_to_point; +use graphene_std::vector::misc::point_to_dvec2; +use kurbo::{Affine, ParamCurve, PathSeg}; #[derive(Clone, Debug, Default)] pub struct LayerSnapper { @@ -37,7 +43,7 @@ impl LayerSnapper { return; } - for document_curve in bounds.bezier_lines() { + for document_curve in bounds.to_lines() { self.paths_to_snap.push(SnapCandidatePath { document_curve, layer, @@ -70,7 +76,7 @@ impl LayerSnapper { if document.snapping_state.target_enabled(SnapTarget::Path(PathSnapTarget::IntersectionPoint)) || document.snapping_state.target_enabled(SnapTarget::Path(PathSnapTarget::AlongPath)) { for subpath in document.metadata().layer_outline(layer) { for (start_index, curve) in subpath.iter().enumerate() { - let document_curve = curve.apply_transformation(|p| transform.transform_point2(p)); + let document_curve = Affine::new(transform.to_cols_array()) * curve; let start = subpath.manipulator_groups()[start_index].id; if snap_data.ignore_manipulator(layer, start) || snap_data.ignore_manipulator(layer, subpath.manipulator_groups()[(start_index + 1) % subpath.len()].id) { continue; @@ -98,13 +104,14 @@ impl LayerSnapper { for path in &self.paths_to_snap { // Skip very short paths - if path.document_curve.start.distance_squared(path.document_curve.end) < tolerance * tolerance * 2. { + if path.document_curve.start().distance_squared(path.document_curve.end()) < tolerance * tolerance * 2. { continue; } - let time = path.document_curve.project(point.document_point); - let snapped_point_document = path.document_curve.evaluate(bezier_rs::TValue::Parametric(time)); - - let distance = snapped_point_document.distance(point.document_point); + let Some((distance_squared, closest)) = path.approx_nearest_point(point.document_point, 10) else { + continue; + }; + let snapped_point_document = point_to_dvec2(closest); + let distance = distance_squared.sqrt(); if distance < tolerance { snap_results.curves.push(SnappedCurve { @@ -144,8 +151,8 @@ impl LayerSnapper { for path in &self.paths_to_snap { for constraint_path in constraint_path.iter() { - for time in path.document_curve.intersections(&constraint_path, None, None) { - let snapped_point_document = path.document_curve.evaluate(bezier_rs::TValue::Parametric(time)); + for time in filtered_segment_intersections(path.document_curve, constraint_path, None, None) { + let snapped_point_document = point_to_dvec2(path.document_curve.eval(time)); let distance = snapped_point_document.distance(point.document_point); @@ -266,8 +273,8 @@ impl LayerSnapper { fn normals_and_tangents(path: &SnapCandidatePath, normals: bool, tangents: bool, point: &SnapCandidatePoint, tolerance: f64, snap_results: &mut SnapResults) { if normals && path.bounds.is_none() { for &neighbor in &point.neighbors { - for t in path.document_curve.normals_to_point(neighbor) { - let normal_point = path.document_curve.evaluate(TValue::Parametric(t)); + for t in pathseg_normals_to_point(path.document_curve, dvec2_to_point(neighbor)) { + let normal_point = point_to_dvec2(path.document_curve.eval(t)); let distance = normal_point.distance(point.document_point); if distance > tolerance { continue; @@ -287,8 +294,8 @@ fn normals_and_tangents(path: &SnapCandidatePath, normals: bool, tangents: bool, } if tangents && path.bounds.is_none() { for &neighbor in &point.neighbors { - for t in path.document_curve.tangents_to_point(neighbor) { - let tangent_point = path.document_curve.evaluate(TValue::Parametric(t)); + for t in pathseg_tangents_to_point(path.document_curve, dvec2_to_point(neighbor)) { + let tangent_point = point_to_dvec2(path.document_curve.eval(t)); let distance = tangent_point.distance(point.document_point); if distance > tolerance { continue; @@ -310,13 +317,106 @@ fn normals_and_tangents(path: &SnapCandidatePath, normals: bool, tangents: bool, #[derive(Clone, Debug)] struct SnapCandidatePath { - document_curve: Bezier, + document_curve: PathSeg, layer: LayerNodeIdentifier, start: PointId, target: SnapTarget, bounds: Option, } +impl SnapCandidatePath { + /// Calculates the point on the curve which lies closest to `point`. + /// + /// ## Algorithm: + /// 1. We first perform a coarse scan of the path segment to find the most promising starting point. + /// 2. Afterwards we refine this point by performing a binary search to either side assuming that the segment contains at most one extremal point. + /// 3. The smaller of the two resulting distances is returned. + /// + /// ## Visualization: + /// ```text + /// Query Point (ร—) + /// ร— + /// /|\ + /// / | \ distance checks + /// / | \ + /// v v v + /// โ—---โ—---โ—---โ—---โ— <- Curve with coarse scan points + /// 0 0.25 0.5 0.75 1 (parameter t values) + /// ^ ^ + /// | | | + /// min mid max + /// Find closest scan point + /// + /// Refine left region using binary search: + /// + /// โ—------โ—------โ— + /// 0.25 0.375 0.5 + /// + /// Result: | (=0.4) + /// And the right region: + /// + /// โ—------โ—------โ— + /// 0.5 0.625 0.75 + /// Result: | (=0.5) + /// + /// The t value with minimal dist is thus 0.4 + /// Return: (dist_closest, point_on_curve) + /// ``` + pub fn approx_nearest_point(&self, point: DVec2, lut_steps: usize) -> Option<(f64, kurbo::Point)> { + let point = dvec2_to_point(point); + + let time_values = (0..lut_steps).map(|x| x as f64 / lut_steps as f64); + let points = time_values.map(|t| (t, self.document_curve.eval(t))); + let points_with_distances = points.map(|(t, p)| (t, p.distance_squared(point), p)); + let (t, _, _) = points_with_distances.min_by(|(_, a, _), (_, b, _)| a.partial_cmp(b).unwrap_or(std::cmp::Ordering::Equal))?; + + let min_t = (t - (lut_steps as f64).recip()).max(0.); + let max_t = (t + (lut_steps as f64).recip()).min(1.); + let left = self.refine_nearest_point(point, min_t, t); + let right = self.refine_nearest_point(point, t, max_t); + + if left.0 < right.0 { Some(left) } else { Some(right) } + } + + /// Refines the nearest point search within a given parameter range using binary search. + /// + /// This method performs iterative refinement by: + /// 1. Evaluating the midpoint of the current parameter range + /// 2. Comparing distances at the endpoints and midpoint + /// 3. Narrowing the search range to the side with the shorter distance + /// 4. Continuing until convergence (when the range becomes very small) + /// + /// Returns a tuple of (parameter_t, closest_point) where parameter_t is in the range [min_t, max_t]. + fn refine_nearest_point(&self, point: kurbo::Point, mut min_t: f64, mut max_t: f64) -> (f64, kurbo::Point) { + let mut min_dist = self.document_curve.eval(min_t).distance_squared(point); + let mut max_dist = self.document_curve.eval(max_t).distance_squared(point); + let mut mid_t = max_t.lerp(min_t, 0.5); + let mut mid_point = self.document_curve.eval(mid_t); + let mut mid_dist = mid_point.distance_squared(point); + + for _ in 0..10 { + if (min_dist - max_dist).abs() < 1e-3 { + return (mid_dist, mid_point); + } + if mid_dist > min_dist && mid_dist > max_dist { + return (mid_dist, mid_point); + } + if max_dist > min_dist { + max_t = mid_t; + max_dist = mid_dist; + } else { + min_t = mid_t; + min_dist = mid_dist; + } + mid_t = max_t.lerp(min_t, 0.5); + mid_point = self.document_curve.eval(mid_t); + mid_dist = mid_point.distance_squared(point); + } + + (mid_dist, mid_point) + } +} + #[derive(Clone, Debug, Default)] pub struct SnapCandidatePoint { pub document_point: DVec2, @@ -440,12 +540,13 @@ fn subpath_anchor_snap_points(layer: LayerNodeIdentifier, subpath: &Subpath= crate::consts::MAX_LAYER_SNAP_POINTS { return; } + let curve = pathseg_points(curve); - let in_handle = curve.handle_start().map(|handle| handle - curve.start).filter(handle_not_under(to_document)); - let out_handle = curve.handle_end().map(|handle| handle - curve.end).filter(handle_not_under(to_document)); + let in_handle = curve.p1.map(|handle| handle - curve.p0).filter(handle_not_under(to_document)); + let out_handle = curve.p2.map(|handle| handle - curve.p3).filter(handle_not_under(to_document)); if in_handle.is_none() && out_handle.is_none() { points.push(SnapCandidatePoint::new( - to_document.transform_point2(curve.start() * 0.5 + curve.end * 0.5), + to_document.transform_point2(curve.p0 * 0.5 + curve.p3 * 0.5), SnapSource::Path(PathSnapSource::LineMidpoint), SnapTarget::Path(PathSnapTarget::LineMidpoint), Some(layer), @@ -487,7 +588,7 @@ fn subpath_anchor_snap_points(layer: LayerNodeIdentifier, subpath: &Subpath, to_document: DAffine2, subpath: &Subpath, index: usize) -> bool { +pub fn are_manipulator_handles_colinear(manipulators: &ManipulatorGroup, to_document: DAffine2, subpath: &Subpath, index: usize) -> bool { let anchor = manipulators.anchor; let handle_in = manipulators.in_handle.map(|handle| anchor - handle).filter(handle_not_under(to_document)); let handle_out = manipulators.out_handle.map(|handle| handle - anchor).filter(handle_not_under(to_document)); diff --git a/editor/src/messages/tool/common_functionality/snapping/snap_results.rs b/editor/src/messages/tool/common_functionality/snapping/snap_results.rs index 3ab53e4dd..415ead679 100644 --- a/editor/src/messages/tool/common_functionality/snapping/snap_results.rs +++ b/editor/src/messages/tool/common_functionality/snapping/snap_results.rs @@ -2,11 +2,11 @@ use super::DistributionMatch; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::misc::{DistributionSnapTarget, SnapSource, SnapTarget}; use crate::messages::tool::common_functionality::snapping::SnapCandidatePoint; -use bezier_rs::Bezier; use glam::DVec2; use graphene_std::renderer::Quad; use graphene_std::renderer::Rect; use graphene_std::vector::PointId; +use kurbo::PathSeg; use std::collections::VecDeque; #[derive(Clone, Debug, Default)] @@ -120,5 +120,5 @@ pub struct SnappedCurve { pub layer: LayerNodeIdentifier, pub start: PointId, pub point: SnappedPoint, - pub document_curve: Bezier, + pub document_curve: PathSeg, } diff --git a/editor/src/messages/tool/common_functionality/transformation_cage.rs b/editor/src/messages/tool/common_functionality/transformation_cage.rs index cb5ce0e91..dba65b408 100644 --- a/editor/src/messages/tool/common_functionality/transformation_cage.rs +++ b/editor/src/messages/tool/common_functionality/transformation_cage.rs @@ -1,8 +1,8 @@ use super::snapping::{self, SnapCandidatePoint, SnapConstraint, SnapData, SnapManager, SnappedPoint}; use crate::consts::{ - BOUNDS_ROTATE_THRESHOLD, BOUNDS_SELECT_THRESHOLD, COLOR_OVERLAY_WHITE, MAX_LENGTH_FOR_NO_WIDTH_OR_HEIGHT, MAXIMUM_ALT_SCALE_FACTOR, MIN_LENGTH_FOR_CORNERS_VISIBILITY, - MIN_LENGTH_FOR_EDGE_RESIZE_PRIORITY_OVER_CORNERS, MIN_LENGTH_FOR_MIDPOINT_VISIBILITY, MIN_LENGTH_FOR_RESIZE_TO_INCLUDE_INTERIOR, MIN_LENGTH_FOR_SKEW_TRIANGLE_VISIBILITY, RESIZE_HANDLE_SIZE, - SELECTION_DRAG_ANGLE, SKEW_TRIANGLE_OFFSET, SKEW_TRIANGLE_SIZE, + BOUNDS_ROTATE_THRESHOLD, BOUNDS_SELECT_THRESHOLD, MAX_LENGTH_FOR_NO_WIDTH_OR_HEIGHT, MAXIMUM_ALT_SCALE_FACTOR, MIN_LENGTH_FOR_CORNERS_VISIBILITY, MIN_LENGTH_FOR_EDGE_RESIZE_PRIORITY_OVER_CORNERS, + MIN_LENGTH_FOR_MIDPOINT_VISIBILITY, MIN_LENGTH_FOR_RESIZE_TO_INCLUDE_INTERIOR, MIN_LENGTH_FOR_SKEW_TRIANGLE_VISIBILITY, RESIZE_HANDLE_SIZE, SELECTION_DRAG_ANGLE, SKEW_TRIANGLE_OFFSET, + SKEW_TRIANGLE_SIZE, }; use crate::messages::frontend::utility_types::MouseCursorIcon; use crate::messages::portfolio::document::overlays::utility_types::OverlayContext; @@ -489,13 +489,7 @@ impl BoundingBoxManager { if (end - start).length() < MIN_LENGTH_FOR_SKEW_TRIANGLE_VISIBILITY { return; } - - let edge_dir = (end - start).normalize(); - let mid = end.midpoint(start); - - for edge in [edge_dir, -edge_dir] { - overlay_context.draw_triangle(mid + edge * (3. + SKEW_TRIANGLE_OFFSET), edge, SKEW_TRIANGLE_SIZE, None, None); - } + overlay_context.skew_handles(start, end); }; if let Some([start, end]) = self.edge_endpoints_vector_from_edge_bool(hover_edge) { @@ -565,11 +559,6 @@ impl BoundingBoxManager { self.render_quad(overlay_context); } - let mut draw_handle = |point: DVec2, angle: f64| { - let quad = DAffine2::from_angle_translation(angle, point) * Quad::from_box([DVec2::splat(-RESIZE_HANDLE_SIZE / 2.), DVec2::splat(RESIZE_HANDLE_SIZE / 2.)]); - overlay_context.quad(quad, None, Some(COLOR_OVERLAY_WHITE)); - }; - let horizontal_angle = (quad.top_left() - quad.bottom_left()).to_angle(); let vertical_angle = (quad.top_left() - quad.top_right()).to_angle(); @@ -579,7 +568,7 @@ impl BoundingBoxManager { TransformCageSizeCategory::Full | TransformCageSizeCategory::Narrow | TransformCageSizeCategory::ReducedLandscape ) { for point in horizontal_edges { - draw_handle(point, horizontal_angle); + overlay_context.resize_handle(point, horizontal_angle); } } @@ -589,7 +578,7 @@ impl BoundingBoxManager { TransformCageSizeCategory::Full | TransformCageSizeCategory::Narrow | TransformCageSizeCategory::ReducedPortrait ) { for point in vertical_edges { - draw_handle(point, vertical_angle); + overlay_context.resize_handle(point, vertical_angle); } } @@ -606,14 +595,14 @@ impl BoundingBoxManager { TransformCageSizeCategory::Full | TransformCageSizeCategory::ReducedBoth | TransformCageSizeCategory::ReducedLandscape | TransformCageSizeCategory::ReducedPortrait ) { for point in quad.0 { - draw_handle(point, angle); + overlay_context.resize_handle(point, angle); } } // Draw the flat line endpoint drag handles if category == TransformCageSizeCategory::Flat { - draw_handle(self.transform.transform_point2(self.bounds[0]), angle); - draw_handle(self.transform.transform_point2(self.bounds[1]), angle); + overlay_context.resize_handle(self.transform.transform_point2(self.bounds[0]), angle); + overlay_context.resize_handle(self.transform.transform_point2(self.bounds[1]), angle); } } @@ -780,17 +769,17 @@ impl BoundingBoxManager { let edges = self.check_selected_edges(input.mouse.position); let is_near_square = edges.is_some_and(|hover_edge| self.over_extended_edge_midpoint(input.mouse.position, hover_edge)); - if dragging_bounds && is_near_square { - if let Some(skew_edge) = skew_edge { - if self.check_skew_handle(input.mouse.position, skew_edge) { - if skew_edge.0 || skew_edge.1 { - return MouseCursorIcon::EWResize; - } else if skew_edge.2 || skew_edge.3 { - return MouseCursorIcon::NSResize; - } - } - }; - } + if dragging_bounds + && is_near_square + && let Some(skew_edge) = skew_edge + && self.check_skew_handle(input.mouse.position, skew_edge) + { + if skew_edge.0 || skew_edge.1 { + return MouseCursorIcon::EWResize; + } else if skew_edge.2 || skew_edge.3 { + return MouseCursorIcon::NSResize; + } + }; match edges { Some((top, bottom, left, right)) => match (top, bottom, left, right) { diff --git a/editor/src/messages/tool/common_functionality/utility_functions.rs b/editor/src/messages/tool/common_functionality/utility_functions.rs index c425ada6c..0e93ca164 100644 --- a/editor/src/messages/tool/common_functionality/utility_functions.rs +++ b/editor/src/messages/tool/common_functionality/utility_functions.rs @@ -1,34 +1,29 @@ use super::snapping::{SnapCandidatePoint, SnapData, SnapManager}; use super::transformation_cage::{BoundingBoxManager, SizeSnapData}; use crate::consts::ROTATE_INCREMENT; -use crate::messages::portfolio::document::utility_types::document_metadata::{DocumentMetadata, LayerNodeIdentifier}; -use crate::messages::portfolio::document::utility_types::network_interface::NodeNetworkInterface; +use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; +use crate::messages::portfolio::document::utility_types::network_interface::{NodeNetworkInterface, OutputConnector}; use crate::messages::portfolio::document::utility_types::transformation::Selected; use crate::messages::prelude::*; use crate::messages::tool::common_functionality::graph_modification_utils::{NodeGraphLayer, get_text}; use crate::messages::tool::common_functionality::transformation_cage::SelectedEdges; use crate::messages::tool::tool_messages::path_tool::PathOverlayMode; use crate::messages::tool::utility_types::ToolType; -use bezier_rs::{Bezier, BezierHandles}; use glam::{DAffine2, DVec2}; use graph_craft::concrete; use graph_craft::document::value::TaggedValue; use graphene_std::renderer::Quad; +use graphene_std::subpath::{Bezier, BezierHandles}; use graphene_std::table::Table; -use graphene_std::text::{FontCache, load_font}; -use graphene_std::vector::misc::{HandleId, ManipulatorPointId}; +use graphene_std::text::FontCache; +use graphene_std::vector::algorithms::bezpath_algorithms::pathseg_compute_lookup_table; +use graphene_std::vector::misc::{HandleId, ManipulatorPointId, dvec2_to_point}; use graphene_std::vector::{HandleExt, PointId, SegmentId, Vector, VectorModification, VectorModificationType}; -use kurbo::{CubicBez, Line, ParamCurveExtrema, PathSeg, Point, QuadBez}; +use kurbo::{CubicBez, DEFAULT_ACCURACY, Line, ParamCurve, PathSeg, Point, QuadBez, Shape}; /// Determines if a path should be extended. Goal in viewport space. Returns the path and if it is extending from the start, if applicable. -pub fn should_extend( - document: &DocumentMessageHandler, - goal: DVec2, - tolerance: f64, - layers: impl Iterator, - preferences: &PreferencesMessageHandler, -) -> Option<(LayerNodeIdentifier, PointId, DVec2)> { - closest_point(document, goal, tolerance, layers, |_| false, preferences) +pub fn should_extend(document: &DocumentMessageHandler, goal: DVec2, tolerance: f64, layers: impl Iterator) -> Option<(LayerNodeIdentifier, PointId, DVec2)> { + closest_point(document, goal, tolerance, layers, |_| false) } /// Determine the closest point to the goal point under max_distance. @@ -39,7 +34,6 @@ pub fn closest_point( max_distance: f64, layers: impl Iterator, exclude: T, - preferences: &PreferencesMessageHandler, ) -> Option<(LayerNodeIdentifier, PointId, DVec2)> where T: Fn(PointId) -> bool, @@ -49,7 +43,7 @@ where for layer in layers { let viewspace = document.metadata().transform_to_viewport(layer); let Some(vector) = document.network_interface.compute_modified_vector(layer) else { continue }; - for id in vector.extendable_points(preferences.vector_meshes) { + for id in vector.anchor_points() { if exclude(id) { continue; } @@ -73,8 +67,7 @@ pub fn text_bounding_box(layer: LayerNodeIdentifier, document: &DocumentMessageH return Quad::from_box([DVec2::ZERO, DVec2::ZERO]); }; - let font_data = font_cache.get(font).map(|data| load_font(data)); - let far = graphene_std::text::bounding_box(text, font_data, typesetting, false); + let far = graphene_std::text::bounding_box(text, font, font_cache, typesetting, false); // TODO: Once the instance tables refactor is complete and per_glyph_instances can be removed (since it'll be the default), // TODO: remove this because the top of the dashed bounding overlay should no longer be based on the first line's baseline. @@ -170,8 +163,8 @@ pub fn is_visible_point( manipulator_point_id: ManipulatorPointId, vector: &Vector, path_overlay_mode: PathOverlayMode, - frontier_handles_info: &Option>>, - selected_segments: Vec, + frontier_handles_for_layer: Option<&HashMap>>, + selected_segments: &[SegmentId], selected_points: &HashSet, ) -> bool { match manipulator_point_id { @@ -196,7 +189,7 @@ pub fn is_visible_point( warn!("No anchor for selected handle"); return false; }; - let Some(frontier_handles) = frontier_handles_info else { + let Some(frontier_handles) = frontier_handles_for_layer else { warn!("No frontier handles info provided"); return false; }; @@ -208,25 +201,6 @@ pub fn is_visible_point( } } -/// Function to find the bounding box of bezier (uses method from kurbo) -pub fn calculate_bezier_bbox(bezier: Bezier) -> [DVec2; 2] { - let start = Point::new(bezier.start.x, bezier.start.y); - let end = Point::new(bezier.end.x, bezier.end.y); - let bbox = match bezier.handles { - BezierHandles::Cubic { handle_start, handle_end } => { - let p1 = Point::new(handle_start.x, handle_start.y); - let p2 = Point::new(handle_end.x, handle_end.y); - CubicBez::new(start, p1, p2, end).bounding_box() - } - BezierHandles::Quadratic { handle } => { - let p1 = Point::new(handle.x, handle.y); - QuadBez::new(start, p1, end).bounding_box() - } - BezierHandles::Linear => Line::new(start, end).bounding_box(), - }; - [DVec2::new(bbox.x0, bbox.y0), DVec2::new(bbox.x1, bbox.y1)] -} - pub fn is_intersecting(bezier: Bezier, quad: [DVec2; 2], transform: DAffine2) -> bool { let to_layerspace = transform.inverse(); let quad = [to_layerspace.transform_point2(quad[0]), to_layerspace.transform_point2(quad[1])]; @@ -281,6 +255,7 @@ pub fn resize_bounds( snap_manager: &mut SnapManager, snap_candidates: &mut Vec, input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, center: bool, constrain: bool, tool: ToolType, @@ -290,7 +265,7 @@ pub fn resize_bounds( let snap = Some(SizeSnapData { manager: snap_manager, points: snap_candidates, - snap_data: SnapData::ignore(document, input, dragging_layers), + snap_data: SnapData::ignore(document, input, viewport, dragging_layers), }); let (position, size) = movement.new_size(input.mouse.position, bounds.original_bound_transform, center, constrain, snap); let (delta, mut pivot) = movement.bounds_to_scale_transform(position, size); @@ -496,19 +471,19 @@ pub fn log_optimization(a: f64, b: f64, p1: DVec2, p3: DVec2, d1: DVec2, d2: DVe let c1 = p1 + d1 * start_handle_length; let c2 = p3 + d2 * end_handle_length; - let new_curve = Bezier::from_cubic_coordinates(p1.x, p1.y, c1.x, c1.y, c2.x, c2.y, p3.x, p3.y); + let new_curve = PathSeg::Cubic(CubicBez::new(Point::new(p1.x, p1.y), Point::new(c1.x, c1.y), Point::new(c2.x, c2.y), Point::new(p3.x, p3.y))); // Sample 2*n points from new curve and get the L2 metric between all of points - let points = new_curve.compute_lookup_table(Some(2 * n), None).collect::>(); + let points = pathseg_compute_lookup_table(new_curve, Some(2 * n), false); - let dist = points1.iter().zip(points.iter()).map(|(p1, p2)| (p1.x - p2.x).powi(2) + (p1.y - p2.y).powi(2)).sum::(); + let dist = points1.iter().zip(points).map(|(p1, p2)| (p1.x - p2.x).powi(2) + (p1.y - p2.y).powi(2)).sum::(); dist / (2 * n) as f64 } /// Calculates optimal handle lengths with adam optimization. #[allow(clippy::too_many_arguments)] -pub fn find_two_param_best_approximate(p1: DVec2, p3: DVec2, d1: DVec2, d2: DVec2, min_len1: f64, min_len2: f64, farther_segment: Bezier, other_segment: Bezier) -> (DVec2, DVec2) { +pub fn find_two_param_best_approximate(p1: DVec2, p3: DVec2, d1: DVec2, d2: DVec2, min_len1: f64, min_len2: f64, further_segment: PathSeg, other_segment: PathSeg) -> (DVec2, DVec2) { let h = 1e-6; let tol = 1e-6; let max_iter = 200; @@ -530,21 +505,25 @@ pub fn find_two_param_best_approximate(p1: DVec2, p3: DVec2, d1: DVec2, d2: DVec let n = 20; - let farther_segment = if farther_segment.start.distance(p1) >= f64::EPSILON { - farther_segment.reverse() + let further_segment = if further_segment.start().distance(dvec2_to_point(p1)) >= f64::EPSILON { + further_segment.reverse() } else { - farther_segment + further_segment }; - let other_segment = if other_segment.end.distance(p3) >= f64::EPSILON { other_segment.reverse() } else { other_segment }; + let other_segment = if other_segment.end().distance(dvec2_to_point(p3)) >= f64::EPSILON { + other_segment.reverse() + } else { + other_segment + }; // Now we sample points proportional to the lengths of the beziers - let l1 = farther_segment.length(None); - let l2 = other_segment.length(None); + let l1 = further_segment.perimeter(DEFAULT_ACCURACY); + let l2 = other_segment.perimeter(DEFAULT_ACCURACY); let ratio = l1 / (l1 + l2); let n_points1 = ((2 * n) as f64 * ratio).floor() as usize; - let mut points1 = farther_segment.compute_lookup_table(Some(n_points1), None).collect::>(); - let mut points2 = other_segment.compute_lookup_table(Some(n), None).collect::>(); + let mut points1 = pathseg_compute_lookup_table(further_segment, Some(n_points1), false).collect::>(); + let mut points2 = pathseg_compute_lookup_table(other_segment, Some(n), false).collect::>(); points1.append(&mut points2); let f = |a: f64, b: f64| -> f64 { log_optimization(a, b, p1, p3, d1, d2, &points1, n) }; @@ -582,34 +561,30 @@ pub fn find_two_param_best_approximate(p1: DVec2, p3: DVec2, d1: DVec2, d2: DVec (d1 * len1, d2 * len2) } -pub fn make_path_editable_is_allowed(network_interface: &NodeNetworkInterface, metadata: &DocumentMetadata) -> Option { +pub fn make_path_editable_is_allowed(network_interface: &mut NodeNetworkInterface) -> Option { // Must have exactly one layer selected let selected_nodes = network_interface.selected_nodes(); - let mut selected_layers = selected_nodes.selected_layers(metadata); + let mut selected_layers = selected_nodes.selected_layers(network_interface.document_metadata()); let first_layer = selected_layers.next()?; if selected_layers.next().is_some() { return None; } + for _ in selected_layers {} // Must be a layer of type Table - let compatible_type = NodeGraphLayer::new(first_layer, network_interface) - .horizontal_layer_flow() - .nth(1) - .map(|node_id| { - let (output_type, _) = network_interface.output_type(&node_id, 0, &[]); - output_type.nested_type() == concrete!(Table).nested_type() - }) - .unwrap_or_default(); - if !compatible_type { + let node_id = NodeGraphLayer::new(first_layer, network_interface).horizontal_layer_flow().nth(1)?; + + let output_type = network_interface.output_type(&OutputConnector::node(node_id, 0), &[]); + if output_type.compiled_nested_type() != Some(&concrete!(Table)) { return None; } // Must not already have an existing Path node, in the right-most part of the layer chain, which has an empty set of modifications // (otherwise users could repeatedly keep running this command and stacking up empty Path nodes) - if let Some(TaggedValue::VectorModification(modifications)) = NodeGraphLayer::new(first_layer, network_interface).find_input("Path", 1) { - if modifications.as_ref() == &VectorModification::default() { - return None; - } + if let Some(TaggedValue::VectorModification(modifications)) = NodeGraphLayer::new(first_layer, network_interface).find_input("Path", 1) + && modifications.as_ref() == &VectorModification::default() + { + return None; } Some(first_layer) diff --git a/editor/src/messages/tool/tool_message.rs b/editor/src/messages/tool/tool_message.rs index 70668a26d..02f28e019 100644 --- a/editor/src/messages/tool/tool_message.rs +++ b/editor/src/messages/tool/tool_message.rs @@ -79,6 +79,7 @@ pub enum ToolMessage { PreUndo, Redo, RefreshToolOptions, + RefreshToolShelf, ResetColors, SelectWorkingColor { color: Color, diff --git a/editor/src/messages/tool/tool_message_handler.rs b/editor/src/messages/tool/tool_message_handler.rs index 93b379639..0a263e199 100644 --- a/editor/src/messages/tool/tool_message_handler.rs +++ b/editor/src/messages/tool/tool_message_handler.rs @@ -7,11 +7,11 @@ use crate::messages::portfolio::document::overlays::utility_types::OverlayProvid use crate::messages::portfolio::utility_types::PersistentData; use crate::messages::prelude::*; use crate::messages::tool::transform_layer::transform_layer_message_handler::TransformLayerMessageContext; -use crate::messages::tool::utility_types::ToolType; +use crate::messages::tool::utility_types::{HintData, ToolType}; use crate::node_graph_executor::NodeGraphExecutor; use graphene_std::raster::color::Color; -const ARTBOARD_OVERLAY_PROVIDER: OverlayProvider = |overlay_context| DocumentMessage::DrawArtboardOverlays(overlay_context).into(); +const ARTBOARD_OVERLAY_PROVIDER: OverlayProvider = |context| DocumentMessage::DrawArtboardOverlays { context }.into(); #[derive(ExtractField)] pub struct ToolMessageContext<'a> { @@ -21,6 +21,7 @@ pub struct ToolMessageContext<'a> { pub persistent_data: &'a PersistentData, pub node_graph: &'a NodeGraphExecutor, pub preferences: &'a PreferencesMessageHandler, + pub viewport: &'a ViewportMessageHandler, } #[derive(Debug, Default, ExtractField)] @@ -41,8 +42,8 @@ impl MessageHandler> for ToolMessageHandler persistent_data, node_graph, preferences, + viewport, } = context; - let font_cache = &persistent_data.font_cache; match message { // Messages @@ -54,6 +55,7 @@ impl MessageHandler> for ToolMessageHandler input, tool_data: &self.tool_state.tool_data, shape_editor: &mut self.shape_editor, + viewport, }, ), @@ -75,8 +77,8 @@ impl MessageHandler> for ToolMessageHandler self.tool_state.tool_data.active_tool_type = ToolType::Shape; } responses.add_front(ToolMessage::ActivateTool { tool_type: ToolType::Shape }); - responses.add(ShapeToolMessage::SetShape(ShapeType::Polygon)); - responses.add(ShapeToolMessage::HideShapeTypeWidget(false)) + responses.add(ShapeToolMessage::SetShape { shape: ShapeType::Polygon }); + responses.add(ShapeToolMessage::HideShapeTypeWidget { hide: false }) } ToolMessage::ActivateToolBrush => responses.add_front(ToolMessage::ActivateTool { tool_type: ToolType::Brush }), ToolMessage::ActivateToolShapeLine | ToolMessage::ActivateToolShapeRectangle | ToolMessage::ActivateToolShapeEllipse => { @@ -89,8 +91,8 @@ impl MessageHandler> for ToolMessageHandler self.tool_state.tool_data.active_shape_type = Some(shape.tool_type()); responses.add_front(ToolMessage::ActivateTool { tool_type: ToolType::Shape }); - responses.add(ShapeToolMessage::HideShapeTypeWidget(true)); - responses.add(ShapeToolMessage::SetShape(shape)); + responses.add(ShapeToolMessage::HideShapeTypeWidget { hide: true }); + responses.add(ShapeToolMessage::SetShape { shape }); } ToolMessage::ActivateTool { tool_type } => { let tool_data = &mut self.tool_state.tool_data; @@ -98,7 +100,7 @@ impl MessageHandler> for ToolMessageHandler let tool_type = tool_type.get_tool(); responses.add(ToolMessage::RefreshToolOptions); - tool_data.send_layout(responses, LayoutTarget::ToolShelf); + responses.add(ToolMessage::RefreshToolShelf); // Do nothing if switching to the same tool if self.tool_is_active && tool_type == old_tool { @@ -119,10 +121,11 @@ impl MessageHandler> for ToolMessageHandler document_id, global_tool_data: &self.tool_state.document_tool_data, input, - font_cache, shape_editor: &mut self.shape_editor, node_graph, preferences, + viewport, + persistent_data, }; if let Some(tool_abort_message) = tool.event_to_message_map().tool_abort { @@ -139,7 +142,10 @@ impl MessageHandler> for ToolMessageHandler } } - if matches!(old_tool, ToolType::Path | ToolType::Select) { + // If a G/R/S transform is active while using Path, Select, Pen, or Shape, + // and the user switches to a different tool, cancel the current transform + // operation to avoid leaving it in an inconsistent state + if matches!(old_tool, ToolType::Path | ToolType::Select | ToolType::Pen | ToolType::Shape) { responses.add(TransformLayerMessage::CancelTransformOperation); } }; @@ -156,30 +162,34 @@ impl MessageHandler> for ToolMessageHandler // Subscribe new tool tool_data.tools.get(&tool_type).unwrap().activate(responses); + // Re-add the artboard overlay provider when tools are reactivated + responses.add(OverlaysMessage::AddProvider { provider: ARTBOARD_OVERLAY_PROVIDER }); + // Send the SelectionChanged message to the active tool, this will ensure the selection is updated - responses.add(BroadcastEvent::SelectionChanged); + responses.add(EventMessage::SelectionChanged); // Update the working colors for the active tool - responses.add(BroadcastEvent::WorkingColorChanged); + responses.add(EventMessage::WorkingColorChanged); // Send tool options to the frontend responses.add(ToolMessage::RefreshToolOptions); // Notify the frontend about the new active tool to be displayed - tool_data.send_layout(responses, LayoutTarget::ToolShelf); + responses.add(ToolMessage::RefreshToolShelf); } ToolMessage::DeactivateTools => { let tool_data = &mut self.tool_state.tool_data; tool_data.tools.get(&tool_data.active_tool_type).unwrap().deactivate(responses); // Unsubscribe the transform layer to selection change events - let message = Box::new(TransformLayerMessage::SelectionChanged.into()); - let on = BroadcastEvent::SelectionChanged; - responses.add(BroadcastMessage::UnsubscribeEvent { message, on }); + responses.add(BroadcastMessage::UnsubscribeEvent { + on: EventMessage::SelectionChanged, + send: Box::new(TransformLayerMessage::SelectionChanged.into()), + }); - responses.add(OverlaysMessage::RemoveProvider(ARTBOARD_OVERLAY_PROVIDER)); + responses.add(OverlaysMessage::RemoveProvider { provider: ARTBOARD_OVERLAY_PROVIDER }); - responses.add(FrontendMessage::UpdateInputHints { hint_data: Default::default() }); + HintData::clear_layout(responses); responses.add(FrontendMessage::UpdateMouseCursor { cursor: Default::default() }); self.tool_is_active = false; @@ -187,12 +197,12 @@ impl MessageHandler> for ToolMessageHandler ToolMessage::InitTools => { // Subscribe the transform layer to selection change events responses.add(BroadcastMessage::SubscribeEvent { - on: BroadcastEvent::SelectionChanged, + on: EventMessage::SelectionChanged, send: Box::new(TransformLayerMessage::SelectionChanged.into()), }); responses.add(BroadcastMessage::SubscribeEvent { - on: BroadcastEvent::SelectionChanged, + on: EventMessage::SelectionChanged, send: Box::new(SelectToolMessage::SyncHistory.into()), }); @@ -206,10 +216,10 @@ impl MessageHandler> for ToolMessageHandler tool_data.tools.get(active_tool).unwrap().activate(responses); // Register initial properties - tool_data.tools.get(active_tool).unwrap().send_layout(responses, LayoutTarget::ToolOptions); + tool_data.tools.get(active_tool).unwrap().refresh_options(responses, persistent_data); // Notify the frontend about the initial active tool - tool_data.send_layout(responses, LayoutTarget::ToolShelf); + tool_data.send_layout(responses, LayoutTarget::ToolShelf, preferences.brush_tool); // Notify the frontend about the initial working colors document_data.update_working_colors(responses); @@ -219,22 +229,23 @@ impl MessageHandler> for ToolMessageHandler document_id, global_tool_data: &self.tool_state.document_tool_data, input, - font_cache, shape_editor: &mut self.shape_editor, node_graph, preferences, + viewport, + persistent_data, }; // Set initial hints and cursor tool_data.active_tool_mut().process_message(ToolMessage::UpdateHints, responses, &mut data); tool_data.active_tool_mut().process_message(ToolMessage::UpdateCursor, responses, &mut data); - responses.add(OverlaysMessage::AddProvider(ARTBOARD_OVERLAY_PROVIDER)); + responses.add(OverlaysMessage::AddProvider { provider: ARTBOARD_OVERLAY_PROVIDER }); } ToolMessage::PreUndo => { let tool_data = &mut self.tool_state.tool_data; if tool_data.active_tool_type != ToolType::Pen { - responses.add(BroadcastEvent::ToolAbort); + responses.add(EventMessage::ToolAbort); } } ToolMessage::Redo => { @@ -245,7 +256,12 @@ impl MessageHandler> for ToolMessageHandler } ToolMessage::RefreshToolOptions => { let tool_data = &mut self.tool_state.tool_data; - tool_data.tools.get(&tool_data.active_tool_type).unwrap().send_layout(responses, LayoutTarget::ToolOptions); + + tool_data.tools.get(&tool_data.active_tool_type).unwrap().refresh_options(responses, persistent_data); + } + ToolMessage::RefreshToolShelf => { + let tool_data = &mut self.tool_state.tool_data; + tool_data.send_layout(responses, LayoutTarget::ToolShelf, preferences.brush_tool); } ToolMessage::ResetColors => { let document_data = &mut self.tool_state.document_tool_data; @@ -325,10 +341,11 @@ impl MessageHandler> for ToolMessageHandler document_id, global_tool_data: &self.tool_state.document_tool_data, input, - font_cache, shape_editor: &mut self.shape_editor, node_graph, preferences, + viewport, + persistent_data, }; if matches!(tool_message, ToolMessage::UpdateHints) { if graph_view_overlay_open { @@ -367,8 +384,6 @@ impl MessageHandler> for ToolMessageHandler ActivateToolShape, ActivateToolText, - ActivateToolBrush, - ToggleSelectVsPath, SelectRandomWorkingColor, @@ -383,3 +398,17 @@ impl MessageHandler> for ToolMessageHandler list } } + +impl ToolMessageHandler { + pub fn actions_with_preferences(&self, preferences: &PreferencesMessageHandler) -> ActionList { + let mut list = self.actions(); + + if preferences.brush_tool { + list.extend(actions!(ToolMessageDiscriminant; + ActivateToolBrush, + )); + } + + list + } +} diff --git a/editor/src/messages/tool/tool_messages/artboard_tool.rs b/editor/src/messages/tool/tool_messages/artboard_tool.rs index aafc86923..e257dc359 100644 --- a/editor/src/messages/tool/tool_messages/artboard_tool.rs +++ b/editor/src/messages/tool/tool_messages/artboard_tool.rs @@ -4,15 +4,15 @@ use crate::messages::portfolio::document::overlays::utility_types::OverlayContex use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::tool::common_functionality::auto_panning::AutoPanning; use crate::messages::tool::common_functionality::compass_rose::Axis; +use crate::messages::tool::common_functionality::measure; use crate::messages::tool::common_functionality::resize::Resize; use crate::messages::tool::common_functionality::snapping; use crate::messages::tool::common_functionality::snapping::SnapCandidatePoint; use crate::messages::tool::common_functionality::snapping::SnapData; -use crate::messages::tool::common_functionality::snapping::SnapManager; use crate::messages::tool::common_functionality::transformation_cage::*; use graph_craft::document::NodeId; use graphene_std::Artboard; -use graphene_std::renderer::Quad; +use graphene_std::renderer::{Quad, Rect}; use graphene_std::table::Table; #[derive(Default, ExtractField)] @@ -26,7 +26,7 @@ pub struct ArtboardTool { pub enum ArtboardToolMessage { // Standard messages Abort, - Overlays(OverlayContext), + Overlays { context: OverlayContext }, // Tool-specific messages UpdateSelectedArtboard, @@ -42,7 +42,7 @@ impl ToolMetadata for ArtboardTool { fn icon_name(&self) -> String { "GeneralArtboardTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Artboard Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -75,7 +75,7 @@ impl<'a> MessageHandler> for Artb impl LayoutHolder for ArtboardTool { fn layout(&self) -> Layout { - Layout::WidgetLayout(WidgetLayout::default()) + Layout::default() } } @@ -83,7 +83,7 @@ impl ToolTransition for ArtboardTool { fn event_to_message_map(&self) -> EventToMessageMap { EventToMessageMap { tool_abort: Some(ArtboardToolMessage::Abort.into()), - overlay_provider: Some(|overlay_context| ArtboardToolMessage::Overlays(overlay_context).into()), + overlay_provider: Some(|context| ArtboardToolMessage::Overlays { context }.into()), ..Default::default() } } @@ -107,7 +107,6 @@ impl Default for ArtboardToolFsmState { struct ArtboardToolData { bounding_box_manager: Option, selected_artboard: Option, - snap_manager: SnapManager, cursor: MouseCursorIcon, drag_start: DVec2, drag_current: DVec2, @@ -146,12 +145,12 @@ impl ArtboardToolData { } } - fn hovered_artboard(document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler) -> Option { - document.click_xray(input).find(|&layer| document.network_interface.is_artboard(&layer.to_node(), &[])) + fn hovered_artboard(document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) -> Option { + document.click_xray(input, viewport).find(|&layer| document.network_interface.is_artboard(&layer.to_node(), &[])) } - fn select_artboard(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, responses: &mut VecDeque) -> bool { - if let Some(intersection) = Self::hovered_artboard(document, input) { + fn select_artboard(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler, responses: &mut VecDeque) -> bool { + if let Some(intersection) = Self::hovered_artboard(document, input, viewport) { self.selected_artboard = Some(intersection); if let Some(bounds) = document.metadata().bounding_box_document(intersection) { @@ -172,24 +171,37 @@ impl ArtboardToolData { } } - fn resize_artboard(&mut self, responses: &mut VecDeque, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, from_center: bool, constrain_square: bool) { + fn resize_artboard( + &mut self, + responses: &mut VecDeque, + document: &DocumentMessageHandler, + input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, + from_center: bool, + constrain_square: bool, + ) { let Some(bounds) = &self.bounding_box_manager else { return; }; let Some(movement) = &bounds.selected_edges else { return; }; - if self.selected_artboard.unwrap() == LayerNodeIdentifier::ROOT_PARENT { + let Some(selected_artboard) = self.selected_artboard else { + warn!("Attempted to resize artboard with no selected artboard"); + self.bounding_box_manager.take(); // Remove the bounding box manager if there is no artboard. + return; // Just do nothing instead of crashing since the state likely isn't too broken. + }; + if selected_artboard == LayerNodeIdentifier::ROOT_PARENT { log::error!("Selected artboard cannot be ROOT_PARENT"); return; } let center = from_center.then_some(bounds.center_of_transformation); - let ignore = self.selected_artboard.map_or(Vec::new(), |layer| vec![layer]); + let ignore = vec![selected_artboard]; let snap = Some(SizeSnapData { - manager: &mut self.snap_manager, + manager: &mut self.draw.snap_manager, points: &mut self.snap_candidates, - snap_data: SnapData::ignore(document, input, &ignore), + snap_data: SnapData::ignore(document, input, viewport, &ignore), }); let (min, size) = movement.new_size(input.mouse.position, bounds.transform, center, constrain_square, snap); let max = min + size; @@ -197,14 +209,14 @@ impl ArtboardToolData { let size = (max - min).abs(); responses.add(GraphOperationMessage::ResizeArtboard { - layer: self.selected_artboard.unwrap(), + layer: selected_artboard, location: position.round().as_ivec2(), dimensions: size.round().as_ivec2(), }); let translation = position.round().as_ivec2() - self.dragging_current_artboard_location; self.dragging_current_artboard_location = position.round().as_ivec2(); - for child in self.selected_artboard.unwrap().children(document.metadata()) { + for child in selected_artboard.children(document.metadata()) { let local_translation = document.metadata().downstream_transform_to_document(child).inverse().transform_vector2(-translation.as_dvec2()); responses.add(GraphOperationMessage::TransformChange { layer: child, @@ -221,13 +233,13 @@ impl Fsm for ArtboardToolFsmState { type ToolOptions = (); fn transition(self, event: ToolMessage, tool_data: &mut Self::ToolData, tool_action_data: &mut ToolActionMessageContext, _tool_options: &(), responses: &mut VecDeque) -> Self { - let ToolActionMessageContext { document, input, .. } = tool_action_data; + let ToolActionMessageContext { document, input, viewport, .. } = tool_action_data; - let hovered = ArtboardToolData::hovered_artboard(document, input).is_some(); + let hovered = ArtboardToolData::hovered_artboard(document, input, viewport).is_some(); let ToolMessage::Artboard(event) = event else { return self }; match (self, event) { - (state, ArtboardToolMessage::Overlays(mut overlay_context)) => { + (state, ArtboardToolMessage::Overlays { context: mut overlay_context }) => { let display_transform_cage = overlay_context.visibility_settings.transform_cage(); if display_transform_cage && state != ArtboardToolFsmState::Drawing { if let Some(bounds) = tool_data.selected_artboard.and_then(|layer| document.metadata().bounding_box_document(layer)) { @@ -236,12 +248,48 @@ impl Fsm for ArtboardToolFsmState { bounding_box_manager.transform = document.metadata().document_to_viewport; bounding_box_manager.render_overlays(&mut overlay_context, true); + } else { + // If the bounding box is not resolved (e.g. if the artboard is deleted), then discard the bounding box. + tool_data.bounding_box_manager.take(); } } else { tool_data.bounding_box_manager.take(); } - tool_data.snap_manager.draw_overlays(SnapData::new(document, input), &mut overlay_context); + // Measure with Alt held down between selected artboard and hovered layers/artboards + // TODO: Don't use `Key::Alt` directly, instead take it as a variable from the input mappings list like in all other places + let alt_pressed = input.keyboard.get(Key::Alt as usize); + let quick_measurement_enabled = overlay_context.visibility_settings.quick_measurement(); + let not_resizing = !matches!(state, ArtboardToolFsmState::ResizingBounds); + + if quick_measurement_enabled && not_resizing && alt_pressed { + // Get the selected artboard bounds + let selected_artboard_bounds = tool_data.selected_artboard.and_then(|layer| document.metadata().bounding_box_document(layer)).map(Rect::from_box); + + // Find hovered artboard or regular layer + let hovered_artboard = ArtboardToolData::hovered_artboard(document, input, viewport); + let hovered_layer = document.click_xray(input, viewport).find(|&layer| !document.network_interface.is_artboard(&layer.to_node(), &[])); + + // Get bounds for the hovered object (prioritize artboards) + let hovered_bounds = if let Some(artboard) = hovered_artboard { + document.metadata().bounding_box_document(artboard).map(Rect::from_box) + } else if let Some(layer) = hovered_layer { + document.metadata().bounding_box_document(layer).map(Rect::from_box) + } else { + None + }; + + // If both selected artboard and hovered object bounds exist, overlay measurement lines + if let (Some(selected_bounds), Some(hovered_bounds)) = (selected_artboard_bounds, hovered_bounds) { + // Don't measure if it's the same artboard + if selected_artboard_bounds != Some(hovered_bounds) { + let document_to_viewport = document.metadata().document_to_viewport; + measure::overlay(selected_bounds, hovered_bounds, document_to_viewport, document_to_viewport, &mut overlay_context); + } + } + } + + tool_data.draw.snap_manager.draw_overlays(SnapData::new(document, input, viewport), &mut overlay_context); self } @@ -255,11 +303,11 @@ impl Fsm for ArtboardToolFsmState { tool_data.start_resizing(selected_edges, document, input); tool_data.get_snap_candidates(document, input); ArtboardToolFsmState::ResizingBounds - } else if tool_data.select_artboard(document, input, responses) { + } else if tool_data.select_artboard(document, input, viewport, responses) { tool_data.get_snap_candidates(document, input); ArtboardToolFsmState::Dragging } else { - tool_data.draw.start(document, input); + tool_data.draw.start(document, input, viewport); ArtboardToolFsmState::Drawing }; @@ -269,14 +317,14 @@ impl Fsm for ArtboardToolFsmState { (ArtboardToolFsmState::ResizingBounds, ArtboardToolMessage::PointerMove { constrain_axis_or_aspect, center }) => { let from_center = input.keyboard.get(center as usize); let constrain_square = input.keyboard.get(constrain_axis_or_aspect as usize); - tool_data.resize_artboard(responses, document, input, from_center, constrain_square); + tool_data.resize_artboard(responses, document, input, viewport, from_center, constrain_square); // Auto-panning let messages = [ ArtboardToolMessage::PointerOutsideViewport { constrain_axis_or_aspect, center }.into(), ArtboardToolMessage::PointerMove { constrain_axis_or_aspect, center }.into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); ArtboardToolFsmState::ResizingBounds } @@ -285,10 +333,10 @@ impl Fsm for ArtboardToolFsmState { let axis_align = input.keyboard.get(constrain_axis_or_aspect as usize); let ignore = tool_data.selected_artboard.map_or(Vec::new(), |layer| vec![layer]); - let snap_data = SnapData::ignore(document, input, &ignore); + let snap_data = SnapData::ignore(document, input, viewport, &ignore); let document_to_viewport = document.metadata().document_to_viewport; let [start, current] = [tool_data.drag_start, tool_data.drag_current].map(|point| document_to_viewport.transform_point2(point)); - let mouse_delta = snap_drag(start, current, axis_align, Axis::None, snap_data, &mut tool_data.snap_manager, &tool_data.snap_candidates); + let mouse_delta = snap_drag(start, current, axis_align, Axis::None, snap_data, &mut tool_data.draw.snap_manager, &tool_data.snap_candidates); let size = bounds.bounds[1] - bounds.bounds[0]; let position = bounds.bounds[0] + bounds.transform.inverse().transform_vector2(mouse_delta); @@ -315,12 +363,14 @@ impl Fsm for ArtboardToolFsmState { ArtboardToolMessage::PointerOutsideViewport { constrain_axis_or_aspect, center }.into(), ArtboardToolMessage::PointerMove { constrain_axis_or_aspect, center }.into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); } ArtboardToolFsmState::Dragging } (ArtboardToolFsmState::Drawing, ArtboardToolMessage::PointerMove { constrain_axis_or_aspect, center }) => { - let [start, end] = tool_data.draw.calculate_points_ignore_layer(document, input, center, constrain_axis_or_aspect, true); + // The draw.calculate_points_ignore_layer uses this value to avoid snapping to itself. + tool_data.draw.layer = tool_data.selected_artboard; + let [start, end] = tool_data.draw.calculate_points_ignore_layer(document, input, viewport, center, constrain_axis_or_aspect, true); let viewport_to_document = document.metadata().document_to_viewport.inverse(); let [start, end] = [start, end].map(|point| viewport_to_document.transform_point2(point)); if let Some(artboard) = tool_data.selected_artboard { @@ -354,7 +404,7 @@ impl Fsm for ArtboardToolFsmState { ArtboardToolMessage::PointerOutsideViewport { constrain_axis_or_aspect, center }.into(), ArtboardToolMessage::PointerMove { constrain_axis_or_aspect, center }.into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); ArtboardToolFsmState::Drawing } @@ -366,11 +416,11 @@ impl Fsm for ArtboardToolFsmState { .map_or(MouseCursorIcon::Default, |bounds| bounds.get_cursor(input, false, false, None)); if cursor == MouseCursorIcon::Default && !hovered { - tool_data.snap_manager.preview_draw(&SnapData::new(document, input), input.mouse.position); + tool_data.draw.snap_manager.preview_draw(&SnapData::new(document, input, viewport), input.mouse.position); responses.add(OverlaysMessage::Draw); cursor = MouseCursorIcon::Crosshair; } else { - tool_data.snap_manager.cleanup(responses); + tool_data.draw.cleanup(responses); } if tool_data.cursor != cursor { @@ -382,19 +432,19 @@ impl Fsm for ArtboardToolFsmState { } (ArtboardToolFsmState::ResizingBounds, ArtboardToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - let _ = tool_data.auto_panning.shift_viewport(input, responses); + let _ = tool_data.auto_panning.shift_viewport(input, viewport, responses); ArtboardToolFsmState::ResizingBounds } (ArtboardToolFsmState::Dragging, ArtboardToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - tool_data.auto_panning.shift_viewport(input, responses); + tool_data.auto_panning.shift_viewport(input, viewport, responses); ArtboardToolFsmState::Dragging } (ArtboardToolFsmState::Drawing, ArtboardToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - tool_data.auto_panning.shift_viewport(input, responses); + tool_data.auto_panning.shift_viewport(input, viewport, responses); ArtboardToolFsmState::Drawing } @@ -411,7 +461,7 @@ impl Fsm for ArtboardToolFsmState { (ArtboardToolFsmState::Drawing | ArtboardToolFsmState::ResizingBounds | ArtboardToolFsmState::Dragging, ArtboardToolMessage::PointerUp) => { responses.add(DocumentMessage::EndTransaction); - tool_data.snap_manager.cleanup(responses); + tool_data.draw.cleanup(responses); if let Some(bounds) = &mut tool_data.bounding_box_manager { bounds.original_transforms.clear(); @@ -503,7 +553,9 @@ impl Fsm for ArtboardToolFsmState { let scale = DAffine2::from_scale(enlargement_factor); let pivot = DAffine2::from_translation(pivot); let transformation = pivot * scale * pivot.inverse(); - let document_to_viewport = document.navigation_handler.calculate_offset_transform(input.viewport_bounds.center(), &document.document_ptz); + let document_to_viewport = document + .navigation_handler + .calculate_offset_transform(viewport.center_in_viewport_space().into(), &document.document_ptz); let to = document_to_viewport.inverse() * document.metadata().downstream_transform_to_viewport(selected_artboard); let original_transform = document.metadata().upstream_transform(selected_artboard.to_node()); let new = to.inverse() * transformation * to * original_transform; @@ -519,7 +571,7 @@ impl Fsm for ArtboardToolFsmState { (ArtboardToolFsmState::Dragging | ArtboardToolFsmState::Drawing | ArtboardToolFsmState::ResizingBounds, ArtboardToolMessage::Abort) => { responses.add(DocumentMessage::AbortTransaction); - tool_data.snap_manager.cleanup(responses); + tool_data.draw.cleanup(responses); responses.add(OverlaysMessage::Draw); ArtboardToolFsmState::Ready { hovered } @@ -549,7 +601,7 @@ impl Fsm for ArtboardToolFsmState { ]), }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } fn update_cursor(&self, responses: &mut VecDeque) { @@ -569,7 +621,7 @@ mod test_artboard { async fn get_artboards(editor: &mut EditorTestUtils) -> Table { let instrumented = match editor.eval_graph().await { Ok(instrumented) => instrumented, - Err(e) => panic!("Failed to evaluate graph: {}", e), + Err(e) => panic!("Failed to evaluate graph: {e}"), }; instrumented .grab_all_input::>(&editor.runtime) @@ -577,17 +629,53 @@ mod test_artboard { .collect() } + #[derive(Debug, PartialEq)] + struct ArtboardLayoutDocument { + position: IVec2, + dimensions: IVec2, + } + impl ArtboardLayoutDocument { + pub fn new(position: impl Into, dimensions: impl Into) -> Self { + Self { + position: position.into(), + dimensions: dimensions.into(), + } + } + } + + /// Check if all of the artboards exist in any ordering + async fn has_artboards(editor: &mut EditorTestUtils, mut expected: Vec) { + let artboards = get_artboards(editor) + .await + .iter() + .map(|row| ArtboardLayoutDocument::new(row.element.location, row.element.dimensions)) + .collect::>(); + assert_eq!(artboards.len(), expected.len(), "incorrect len: actual {:?}, expected {:?}", artboards, expected); + + for artboard in artboards { + let Some(index) = expected.iter().position(|expected| *expected == artboard) else { + panic!("found {:?} that did not match any expected artboards\nexpected {:?}", artboard, expected); + }; + expected.remove(index); + } + } + #[tokio::test] async fn artboard_draw_simple() { let mut editor = EditorTestUtils::create(); editor.new_document().await; editor.drag_tool(ToolType::Artboard, 10.1, 10.8, 19.9, 0.2, ModifierKeys::empty()).await; + has_artboards(&mut editor, vec![ArtboardLayoutDocument::new((10, 0), (10, 11))]).await; + } - let artboards = get_artboards(&mut editor).await; - - assert_eq!(artboards.len(), 1); - assert_eq!(artboards.get(0).unwrap().element.location, IVec2::new(10, 0)); - assert_eq!(artboards.get(0).unwrap().element.dimensions, IVec2::new(10, 11)); + #[tokio::test] + async fn artboard_snapping() { + let mut editor = EditorTestUtils::create(); + editor.new_document().await; + editor.set_viewport_size(DVec2::splat(-1000.), DVec2::splat(1000.)).await; // Necessary for doing snapping since snaps outside of the viewport are discarded + editor.drag_tool(ToolType::Artboard, 10., 10., 20., 20., ModifierKeys::empty()).await; + editor.drag_tool(ToolType::Artboard, 11., 50., 19., 60., ModifierKeys::empty()).await; + has_artboards(&mut editor, vec![ArtboardLayoutDocument::new((10, 10), (10, 10)), ArtboardLayoutDocument::new((10, 50), (10, 10))]).await; } #[tokio::test] @@ -595,11 +683,7 @@ mod test_artboard { let mut editor = EditorTestUtils::create(); editor.new_document().await; editor.drag_tool(ToolType::Artboard, 10., 10., -10., 11., ModifierKeys::SHIFT).await; - - let artboards = get_artboards(&mut editor).await; - assert_eq!(artboards.len(), 1); - assert_eq!(artboards.get(0).unwrap().element.location, IVec2::new(-10, 10)); - assert_eq!(artboards.get(0).unwrap().element.dimensions, IVec2::new(20, 20)); + has_artboards(&mut editor, vec![ArtboardLayoutDocument::new((-10, 10), (20, 20))]).await; } #[tokio::test] @@ -614,12 +698,9 @@ mod test_artboard { .await; // Viewport coordinates editor.drag_tool(ToolType::Artboard, 0., 0., 0., 10., ModifierKeys::SHIFT).await; - - let artboards = get_artboards(&mut editor).await; - assert_eq!(artboards.len(), 1); - assert_eq!(artboards.get(0).unwrap().element.location, IVec2::new(0, 0)); let desired_size = DVec2::splat(f64::consts::FRAC_1_SQRT_2 * 10.); - assert_eq!(artboards.get(0).unwrap().element.dimensions, desired_size.round().as_ivec2()); + + has_artboards(&mut editor, vec![ArtboardLayoutDocument::new(IVec2::new(0, 0), desired_size.round().as_ivec2())]).await; } #[tokio::test] @@ -635,12 +716,9 @@ mod test_artboard { .await; // Viewport coordinates editor.drag_tool(ToolType::Artboard, 0., 0., 0., 10., ModifierKeys::SHIFT | ModifierKeys::ALT).await; - - let artboards = get_artboards(&mut editor).await; - assert_eq!(artboards.len(), 1); - assert_eq!(artboards.get(0).unwrap().element.location, DVec2::splat(f64::consts::FRAC_1_SQRT_2 * -10.).as_ivec2()); - let desired_size = DVec2::splat(f64::consts::FRAC_1_SQRT_2 * 20.); - assert_eq!(artboards.get(0).unwrap().element.dimensions, desired_size.round().as_ivec2()); + let desired_location = DVec2::splat(f64::consts::FRAC_1_SQRT_2 * -10.).as_ivec2(); + let desired_size = DVec2::splat(f64::consts::FRAC_1_SQRT_2 * 20.).as_ivec2(); + has_artboards(&mut editor, vec![ArtboardLayoutDocument::new(desired_location, desired_size)]).await; } #[tokio::test] @@ -651,8 +729,7 @@ mod test_artboard { editor.drag_tool(ToolType::Artboard, 10.1, 10.8, 19.9, 0.2, ModifierKeys::default()).await; editor.press(Key::Delete, ModifierKeys::default()).await; - let artboards = get_artboards(&mut editor).await; - assert_eq!(artboards.len(), 0); + has_artboards(&mut editor, vec![]).await; } #[tokio::test] @@ -662,7 +739,53 @@ mod test_artboard { editor.new_document().await; editor.drag_tool_cancel_rmb(ToolType::Artboard).await; - let artboards = get_artboards(&mut editor).await; - assert_eq!(artboards.len(), 0); + has_artboards(&mut editor, vec![]).await; + } + + #[tokio::test] + async fn artboard_move() { + let mut editor = EditorTestUtils::create(); + editor.new_document().await; + editor.drag_tool(ToolType::Artboard, 10., 10., 20., 22., ModifierKeys::empty()).await; // Artboard to drag + editor.drag_tool(ToolType::Artboard, 15., 15., 65., 65., ModifierKeys::empty()).await; // Drag from the middle by (50,50) + + has_artboards(&mut editor, vec![ArtboardLayoutDocument::new((60, 60), (10, 12))]).await; + } + #[tokio::test] + async fn artboard_move_snapping() { + let mut editor = EditorTestUtils::create(); + editor.new_document().await; + editor.set_viewport_size(DVec2::splat(-1000.), DVec2::splat(1000.)).await; // Necessary for doing snapping since snaps outside of the viewport are discarded + editor.drag_tool(ToolType::Artboard, 10., 10., 20., 22., ModifierKeys::empty()).await; // Artboard to drag + editor.drag_tool(ToolType::Artboard, 70., 0., 80., 100., ModifierKeys::empty()).await; // Artboard to snap to + editor.drag_tool(ToolType::Artboard, 15., 15., 15. + 49., 15., ModifierKeys::empty()).await; // Drag the artboard so it should snap to the edge + + has_artboards(&mut editor, vec![ArtboardLayoutDocument::new((60, 10), (10, 12)), ArtboardLayoutDocument::new((70, 0), (10, 100))]).await; + } + + #[tokio::test] + async fn first_artboard() { + let mut editor = EditorTestUtils::create(); + + editor.new_document().await; + // Put rectangles in before making the artboard + editor.drag_tool(ToolType::Rectangle, 10., 10., 20., 16., ModifierKeys::empty()).await; + editor.drag_tool(ToolType::Rectangle, 15., 15., 25., 25., ModifierKeys::empty()).await; + + // Put the artboard in + editor.drag_tool(ToolType::Artboard, 5., 5., 30., 10., ModifierKeys::empty()).await; + has_artboards(&mut editor, vec![ArtboardLayoutDocument::new((5, 5), (25, 5))]).await; + let document = editor.active_document(); + + // artboard + // โ”œโ”€โ”€ rectangle1 + // โ””โ”€โ”€ rectangle2 + let artboard = document.metadata().all_layers().next().unwrap(); + let rectangle2 = artboard.first_child(document.metadata()).unwrap(); + let rectangle1 = rectangle2.next_sibling(document.metadata()).unwrap(); + + // The document bounding boxes should remain the same (content shouldn't shift) + assert_eq!(document.metadata().bounding_box_document(rectangle1).unwrap(), [DVec2::new(10., 10.), DVec2::new(20., 16.)]); + assert_eq!(document.metadata().bounding_box_document(rectangle2).unwrap(), [DVec2::new(15., 15.), DVec2::new(25., 25.)]); } } diff --git a/editor/src/messages/tool/tool_messages/brush_tool.rs b/editor/src/messages/tool/tool_messages/brush_tool.rs index 4fba66f7c..17da7b23a 100644 --- a/editor/src/messages/tool/tool_messages/brush_tool.rs +++ b/editor/src/messages/tool/tool_messages/brush_tool.rs @@ -62,7 +62,7 @@ pub enum BrushToolMessage { DragStart, DragStop, PointerMove, - UpdateOptions(BrushToolMessageOptionsUpdate), + UpdateOptions { options: BrushToolMessageOptionsUpdate }, } #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)] @@ -90,7 +90,7 @@ impl ToolMetadata for BrushTool { fn icon_name(&self) -> String { "RasterBrushTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Brush Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -106,60 +106,95 @@ impl LayoutHolder for BrushTool { .min(1.) .max(BRUSH_MAX_SIZE) /* Anything bigger would cause the application to be unresponsive and eventually die */ .unit(" px") - .on_update(|number_input: &NumberInput| BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::Diameter(number_input.value.unwrap())).into()) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .on_update(|number_input: &NumberInput| BrushToolMessage::UpdateOptions { options: BrushToolMessageOptionsUpdate::Diameter(number_input.value.unwrap()) }.into()) + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(self.options.hardness)) .label("Hardness") .min(0.) .max(100.) .mode_range() .unit("%") - .on_update(|number_input: &NumberInput| BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::Hardness(number_input.value.unwrap())).into()) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .on_update(|number_input: &NumberInput| { + BrushToolMessage::UpdateOptions { + options: BrushToolMessageOptionsUpdate::Hardness(number_input.value.unwrap()), + } + .into() + }) + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(self.options.flow)) .label("Flow") .min(1.) .max(100.) .mode_range() .unit("%") - .on_update(|number_input: &NumberInput| BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::Flow(number_input.value.unwrap())).into()) - .widget_holder(), - Separator::new(SeparatorType::Related).widget_holder(), + .on_update(|number_input: &NumberInput| { + BrushToolMessage::UpdateOptions { + options: BrushToolMessageOptionsUpdate::Flow(number_input.value.unwrap()), + } + .into() + }) + .widget_instance(), + Separator::new(SeparatorType::Related).widget_instance(), NumberInput::new(Some(self.options.spacing)) .label("Spacing") .min(1.) .max(100.) .mode_range() .unit("%") - .on_update(|number_input: &NumberInput| BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::Spacing(number_input.value.unwrap())).into()) - .widget_holder(), + .on_update(|number_input: &NumberInput| { + BrushToolMessage::UpdateOptions { + options: BrushToolMessageOptionsUpdate::Spacing(number_input.value.unwrap()), + } + .into() + }) + .widget_instance(), ]; - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); let draw_mode_entries: Vec<_> = [DrawMode::Draw, DrawMode::Erase, DrawMode::Restore] .into_iter() .map(|draw_mode| { - RadioEntryData::new(format!("{draw_mode:?}")) - .label(format!("{draw_mode:?}")) - .on_update(move |_| BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::DrawMode(draw_mode)).into()) + RadioEntryData::new(format!("{draw_mode:?}")).label(format!("{draw_mode:?}")).on_update(move |_| { + BrushToolMessage::UpdateOptions { + options: BrushToolMessageOptionsUpdate::DrawMode(draw_mode), + } + .into() + }) }) .collect(); - widgets.push(RadioInput::new(draw_mode_entries).selected_index(Some(self.options.draw_mode as u32)).widget_holder()); + widgets.push(RadioInput::new(draw_mode_entries).selected_index(Some(self.options.draw_mode as u32)).widget_instance()); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.append(&mut self.options.color.create_widgets( "Color", false, - |_| BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::Color(None)).into(), - |color_type: ToolColorType| WidgetCallback::new(move |_| BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::ColorType(color_type.clone())).into()), - |color: &ColorInput| BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::Color(color.value.as_solid().map(|color| color.to_linear_srgb()))).into(), + |_| { + BrushToolMessage::UpdateOptions { + options: BrushToolMessageOptionsUpdate::Color(None), + } + .into() + }, + |color_type: ToolColorType| { + WidgetCallback::new(move |_| { + BrushToolMessage::UpdateOptions { + options: BrushToolMessageOptionsUpdate::ColorType(color_type.clone()), + } + .into() + }) + }, + |color: &ColorInput| { + BrushToolMessage::UpdateOptions { + options: BrushToolMessageOptionsUpdate::Color(color.value.as_solid().map(|color| color.to_linear_srgb())), + } + .into() + }, )); - widgets.push(Separator::new(SeparatorType::Related).widget_holder()); + widgets.push(Separator::new(SeparatorType::Related).widget_instance()); let blend_mode_entries: Vec> = BlendMode::list() .iter() @@ -167,9 +202,12 @@ impl LayoutHolder for BrushTool { section .iter() .map(|blend_mode| { - MenuListEntry::new(format!("{blend_mode:?}")) - .label(blend_mode.to_string()) - .on_commit(|_| BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::BlendMode(*blend_mode)).into()) + MenuListEntry::new(format!("{blend_mode:?}")).label(blend_mode.to_string()).on_commit(|_| { + BrushToolMessage::UpdateOptions { + options: BrushToolMessageOptionsUpdate::BlendMode(*blend_mode), + } + .into() + }) }) .collect() }) @@ -177,23 +215,23 @@ impl LayoutHolder for BrushTool { widgets.push( DropdownInput::new(blend_mode_entries) .selected_index(self.options.blend_mode.index_in_list().map(|index| index as u32)) - .tooltip("The blend mode used with the background when performing a brush stroke. Only used in draw mode.") + .tooltip_description("The blend mode used with the background when performing a brush stroke. Only used in draw mode.") .disabled(self.options.draw_mode != DrawMode::Draw) - .widget_holder(), + .widget_instance(), ); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } #[message_handler_data] impl<'a> MessageHandler> for BrushTool { fn process_message(&mut self, message: ToolMessage, responses: &mut VecDeque, context: &mut ToolActionMessageContext<'a>) { - let ToolMessage::Brush(BrushToolMessage::UpdateOptions(action)) = message else { + let ToolMessage::Brush(BrushToolMessage::UpdateOptions { options }) = message else { self.fsm_state.process_event(message, &mut self.data, context, &self.options, responses, true); return; }; - match action { + match options { BrushToolMessageOptionsUpdate::BlendMode(blend_mode) => self.options.blend_mode = blend_mode, BrushToolMessageOptionsUpdate::ChangeDiameter(change) => { let needs_rounding = ((self.options.diameter + change.abs() / 2.) % change.abs() - change.abs() / 2.).abs() > 0.5; @@ -373,18 +411,18 @@ impl Fsm for BrushToolFsmState { } (BrushToolFsmState::Drawing, BrushToolMessage::PointerMove) => { - if let Some(layer) = tool_data.layer { - if let Some(stroke) = tool_data.strokes.last_mut() { - let layer_position = document - .network_interface - .document_metadata() - .downstream_transform_to_viewport(layer) - .inverse() - .transform_point2(input.mouse.position); - let layer_position = tool_data.transform.inverse().transform_point2(layer_position); + if let Some(layer) = tool_data.layer + && let Some(stroke) = tool_data.strokes.last_mut() + { + let layer_position = document + .network_interface + .document_metadata() + .downstream_transform_to_viewport(layer) + .inverse() + .transform_point2(input.mouse.position); + let layer_position = tool_data.transform.inverse().transform_point2(layer_position); - stroke.trace.push(BrushInputSample { position: layer_position }) - } + stroke.trace.push(BrushInputSample { position: layer_position }) } tool_data.update_strokes(responses); @@ -408,10 +446,9 @@ impl Fsm for BrushToolFsmState { BrushToolFsmState::Ready } (_, BrushToolMessage::WorkingColorChanged) => { - responses.add(BrushToolMessage::UpdateOptions(BrushToolMessageOptionsUpdate::WorkingColors( - Some(global_tool_data.primary_color), - Some(global_tool_data.secondary_color), - ))); + responses.add(BrushToolMessage::UpdateOptions { + options: BrushToolMessageOptionsUpdate::WorkingColors(Some(global_tool_data.primary_color), Some(global_tool_data.secondary_color)), + }); self } _ => self, @@ -427,7 +464,7 @@ impl Fsm for BrushToolFsmState { BrushToolFsmState::Drawing => HintData(vec![HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()])]), }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } fn update_cursor(&self, responses: &mut VecDeque) { diff --git a/editor/src/messages/tool/tool_messages/eyedropper_tool.rs b/editor/src/messages/tool/tool_messages/eyedropper_tool.rs index d5a082cc2..ea7843a92 100644 --- a/editor/src/messages/tool/tool_messages/eyedropper_tool.rs +++ b/editor/src/messages/tool/tool_messages/eyedropper_tool.rs @@ -25,7 +25,7 @@ impl ToolMetadata for EyedropperTool { fn icon_name(&self) -> String { "GeneralEyedropperTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Eyedropper Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -35,7 +35,7 @@ impl ToolMetadata for EyedropperTool { impl LayoutHolder for EyedropperTool { fn layout(&self) -> Layout { - Layout::WidgetLayout(WidgetLayout::default()) + Layout::default() } } @@ -81,7 +81,9 @@ impl Fsm for EyedropperToolFsmState { type ToolOptions = (); fn transition(self, event: ToolMessage, _tool_data: &mut Self::ToolData, tool_action_data: &mut ToolActionMessageContext, _tool_options: &(), responses: &mut VecDeque) -> Self { - let ToolActionMessageContext { global_tool_data, input, .. } = tool_action_data; + let ToolActionMessageContext { + global_tool_data, input, viewport, .. + } = tool_action_data; let ToolMessage::Eyedropper(event) = event else { return self }; match (self, event) { @@ -97,7 +99,8 @@ impl Fsm for EyedropperToolFsmState { } // Sampling -> Sampling (EyedropperToolFsmState::SamplingPrimary | EyedropperToolFsmState::SamplingSecondary, EyedropperToolMessage::PointerMove) => { - if input.viewport_bounds.in_bounds(input.mouse.position) { + let mouse_position = viewport.logical(input.mouse.position); + if viewport.is_in_bounds(mouse_position + viewport.offset()) { update_cursor_preview(responses, input, global_tool_data, None); } else { disable_cursor_preview(responses); @@ -135,7 +138,7 @@ impl Fsm for EyedropperToolFsmState { } }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } fn update_cursor(&self, responses: &mut VecDeque) { diff --git a/editor/src/messages/tool/tool_messages/fill_tool.rs b/editor/src/messages/tool/tool_messages/fill_tool.rs index 6a9429e3e..f29d73d1b 100644 --- a/editor/src/messages/tool/tool_messages/fill_tool.rs +++ b/editor/src/messages/tool/tool_messages/fill_tool.rs @@ -14,7 +14,7 @@ pub enum FillToolMessage { // Standard messages Abort, WorkingColorChanged, - Overlays(OverlayContext), + Overlays { context: OverlayContext }, // Tool-specific messages PointerMove, @@ -27,7 +27,7 @@ impl ToolMetadata for FillTool { fn icon_name(&self) -> String { "GeneralFillTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Fill Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -37,7 +37,7 @@ impl ToolMetadata for FillTool { impl LayoutHolder for FillTool { fn layout(&self) -> Layout { - Layout::WidgetLayout(WidgetLayout::default()) + Layout::default() } } @@ -67,7 +67,7 @@ impl ToolTransition for FillTool { EventToMessageMap { tool_abort: Some(FillToolMessage::Abort.into()), working_color_changed: Some(FillToolMessage::WorkingColorChanged.into()), - overlay_provider: Some(|overlay_context| FillToolMessage::Overlays(overlay_context).into()), + overlay_provider: Some(|context| FillToolMessage::Overlays { context }.into()), ..Default::default() } } @@ -94,18 +94,22 @@ impl Fsm for FillToolFsmState { responses: &mut VecDeque, ) -> Self { let ToolActionMessageContext { - document, global_tool_data, input, .. + document, + global_tool_data, + input, + viewport, + .. } = handler_data; let ToolMessage::Fill(event) = event else { return self }; match (self, event) { - (_, FillToolMessage::Overlays(mut overlay_context)) => { + (_, FillToolMessage::Overlays { context: mut overlay_context }) => { // Choose the working color to preview let use_secondary = input.keyboard.get(Key::Shift as usize); let preview_color = if use_secondary { global_tool_data.secondary_color } else { global_tool_data.primary_color }; // Get the layer the user is hovering over - if let Some(layer) = document.click(input) { + if let Some(layer) = document.click(input, viewport) { overlay_context.fill_path_pattern(document.metadata().layer_outline(layer), document.metadata().transform_to_viewport(layer), &preview_color); } @@ -117,7 +121,7 @@ impl Fsm for FillToolFsmState { self } (FillToolFsmState::Ready, color_event) => { - let Some(layer_identifier) = document.click(input) else { + let Some(layer_identifier) = document.click(input, viewport) else { return self; }; // If the layer is a raster layer, don't fill it, wait till the flood fill tool is implemented @@ -154,7 +158,7 @@ impl Fsm for FillToolFsmState { FillToolFsmState::Filling => HintData(vec![HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()])]), }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } fn update_cursor(&self, responses: &mut VecDeque) { diff --git a/editor/src/messages/tool/tool_messages/freehand_tool.rs b/editor/src/messages/tool/tool_messages/freehand_tool.rs index eb862b7fe..305abb5af 100644 --- a/editor/src/messages/tool/tool_messages/freehand_tool.rs +++ b/editor/src/messages/tool/tool_messages/freehand_tool.rs @@ -40,7 +40,7 @@ impl Default for FreehandOptions { #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)] pub enum FreehandToolMessage { // Standard messages - Overlays(OverlayContext), + Overlays { context: OverlayContext }, Abort, WorkingColorChanged, @@ -48,7 +48,7 @@ pub enum FreehandToolMessage { DragStart { append_to_selected: Key }, DragStop, PointerMove, - UpdateOptions(FreehandOptionsUpdate), + UpdateOptions { options: FreehandOptionsUpdate }, } #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)] @@ -72,7 +72,7 @@ impl ToolMetadata for FreehandTool { fn icon_name(&self) -> String { "VectorFreehandTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Freehand Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -80,14 +80,19 @@ impl ToolMetadata for FreehandTool { } } -fn create_weight_widget(line_weight: f64) -> WidgetHolder { +fn create_weight_widget(line_weight: f64) -> WidgetInstance { NumberInput::new(Some(line_weight)) .unit(" px") .label("Weight") .min(1.) .max((1_u64 << f64::MANTISSA_DIGITS) as f64) - .on_update(|number_input: &NumberInput| FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::LineWeight(number_input.value.unwrap())).into()) - .widget_holder() + .on_update(|number_input: &NumberInput| { + FreehandToolMessage::UpdateOptions { + options: FreehandOptionsUpdate::LineWeight(number_input.value.unwrap()), + } + .into() + }) + .widget_instance() } impl LayoutHolder for FreehandTool { @@ -95,35 +100,69 @@ impl LayoutHolder for FreehandTool { let mut widgets = self.options.fill.create_widgets( "Fill", true, - |_| FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::FillColor(None)).into(), - |color_type: ToolColorType| WidgetCallback::new(move |_| FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::FillColorType(color_type.clone())).into()), - |color: &ColorInput| FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::FillColor(color.value.as_solid().map(|color| color.to_linear_srgb()))).into(), + |_| { + FreehandToolMessage::UpdateOptions { + options: FreehandOptionsUpdate::FillColor(None), + } + .into() + }, + |color_type: ToolColorType| { + WidgetCallback::new(move |_| { + FreehandToolMessage::UpdateOptions { + options: FreehandOptionsUpdate::FillColorType(color_type.clone()), + } + .into() + }) + }, + |color: &ColorInput| { + FreehandToolMessage::UpdateOptions { + options: FreehandOptionsUpdate::FillColor(color.value.as_solid().map(|color| color.to_linear_srgb())), + } + .into() + }, ); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.append(&mut self.options.stroke.create_widgets( "Stroke", true, - |_| FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::StrokeColor(None)).into(), - |color_type: ToolColorType| WidgetCallback::new(move |_| FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::StrokeColorType(color_type.clone())).into()), - |color: &ColorInput| FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::StrokeColor(color.value.as_solid().map(|color| color.to_linear_srgb()))).into(), + |_| { + FreehandToolMessage::UpdateOptions { + options: FreehandOptionsUpdate::StrokeColor(None), + } + .into() + }, + |color_type: ToolColorType| { + WidgetCallback::new(move |_| { + FreehandToolMessage::UpdateOptions { + options: FreehandOptionsUpdate::StrokeColorType(color_type.clone()), + } + .into() + }) + }, + |color: &ColorInput| { + FreehandToolMessage::UpdateOptions { + options: FreehandOptionsUpdate::StrokeColor(color.value.as_solid().map(|color| color.to_linear_srgb())), + } + .into() + }, )); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.push(create_weight_widget(self.options.line_weight)); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } #[message_handler_data] impl<'a> MessageHandler> for FreehandTool { fn process_message(&mut self, message: ToolMessage, responses: &mut VecDeque, context: &mut ToolActionMessageContext<'a>) { - let ToolMessage::Freehand(FreehandToolMessage::UpdateOptions(action)) = message else { + let ToolMessage::Freehand(FreehandToolMessage::UpdateOptions { options }) = message else { self.fsm_state.process_event(message, &mut self.data, context, &self.options, responses, true); return; }; - match action { + match options { FreehandOptionsUpdate::FillColor(color) => { self.options.fill.custom_color = color; self.options.fill.color_type = ToolColorType::Custom; @@ -164,7 +203,7 @@ impl<'a> MessageHandler> for Free impl ToolTransition for FreehandTool { fn event_to_message_map(&self) -> EventToMessageMap { EventToMessageMap { - overlay_provider: Some(|overlay_context: OverlayContext| FreehandToolMessage::Overlays(overlay_context).into()), + overlay_provider: Some(|context: OverlayContext| FreehandToolMessage::Overlays { context }.into()), tool_abort: Some(FreehandToolMessage::Abort.into()), working_color_changed: Some(FreehandToolMessage::WorkingColorChanged.into()), ..Default::default() @@ -197,14 +236,14 @@ impl Fsm for FreehandToolFsmState { global_tool_data, input, shape_editor, - preferences, + viewport, .. } = tool_action_data; let ToolMessage::Freehand(event) = event else { return self }; match (self, event) { - (_, FreehandToolMessage::Overlays(mut overlay_context)) => { - path_endpoint_overlays(document, shape_editor, &mut overlay_context, tool_action_data.preferences); + (_, FreehandToolMessage::Overlays { context: mut overlay_context }) => { + path_endpoint_overlays(document, shape_editor, &mut overlay_context); self } @@ -218,7 +257,7 @@ impl Fsm for FreehandToolFsmState { // Extend an endpoint of the selected path let selected_nodes = document.network_interface.selected_nodes(); let tolerance = crate::consts::SNAP_POINT_TOLERANCE; - if let Some((layer, point, position)) = should_extend(document, input.mouse.position, tolerance, selected_nodes.selected_layers(document.metadata()), preferences) { + if let Some((layer, point, position)) = should_extend(document, input.mouse.position, tolerance, selected_nodes.selected_layers(document.metadata())) { tool_data.layer = Some(layer); tool_data.end_point = Some((position, point)); @@ -244,7 +283,7 @@ impl Fsm for FreehandToolFsmState { responses.add(DocumentMessage::DeselectAllLayers); - let parent = document.new_layer_bounding_artboard(input); + let parent = document.new_layer_bounding_artboard(input, viewport); let node_type = resolve_document_node_type("Path").expect("Path node does not exist"); let node = node_type.default_node_template(); @@ -287,10 +326,9 @@ impl Fsm for FreehandToolFsmState { FreehandToolFsmState::Ready } (_, FreehandToolMessage::WorkingColorChanged) => { - responses.add(FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::WorkingColors( - Some(global_tool_data.primary_color), - Some(global_tool_data.secondary_color), - ))); + responses.add(FreehandToolMessage::UpdateOptions { + options: FreehandOptionsUpdate::WorkingColors(Some(global_tool_data.primary_color), Some(global_tool_data.secondary_color)), + }); self } _ => self, @@ -307,7 +345,7 @@ impl Fsm for FreehandToolFsmState { FreehandToolFsmState::Drawing => HintData(vec![HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()])]), }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } fn update_cursor(&self, responses: &mut VecDeque) { @@ -328,20 +366,18 @@ fn extend_path_with_next_segment(tool_data: &mut FreehandToolData, position: DVe modification_type: VectorModificationType::InsertPoint { id, position }, }); - if extend { - if let Some((_, previous_position)) = tool_data.end_point { - let next_id = SegmentId::generate(); - let points = [previous_position, id]; + if extend && let Some((_, previous_position)) = tool_data.end_point { + let next_id = SegmentId::generate(); + let points = [previous_position, id]; - responses.add(GraphOperationMessage::Vector { - layer, - modification_type: VectorModificationType::InsertSegment { - id: next_id, - points, - handles: [None, None], - }, - }); - } + responses.add(GraphOperationMessage::Vector { + layer, + modification_type: VectorModificationType::InsertSegment { + id: next_id, + points, + handles: [None, None], + }, + }); } tool_data.dragged = true; @@ -378,7 +414,10 @@ mod test_freehand { fn verify_path_points(vector_and_transform_list: &[(Vector, DAffine2)], expected_captured_points: &[DVec2], tolerance: f64) -> Result<(), String> { assert_eq!(vector_and_transform_list.len(), 1, "There should be one row of Vector geometry"); - let (vector, transform) = vector_and_transform_list.iter().find(|(data, _)| data.point_domain.ids().len() > 0).ok_or("Could not find path data")?; + let (vector, transform) = vector_and_transform_list + .iter() + .find(|(data, _)| !data.point_domain.ids().is_empty()) + .ok_or("Could not find path data")?; let point_count = vector.point_domain.ids().len(); let segment_count = vector.segment_domain.ids().len(); @@ -386,7 +425,7 @@ mod test_freehand { let actual_positions: Vec = vector.point_domain.positions().iter().map(|&position| transform.transform_point2(position)).collect(); if segment_count != point_count - 1 { - return Err(format!("Expected segments to be one less than points, got {} segments for {} points", segment_count, point_count)); + return Err(format!("Expected segments to be one less than points, got {segment_count} segments for {point_count} points")); } if point_count != expected_captured_points.len() { @@ -396,7 +435,7 @@ mod test_freehand { for (i, (&expected, &actual)) in expected_captured_points.iter().zip(actual_positions.iter()).enumerate() { let distance = (expected - actual).length(); if distance >= tolerance { - return Err(format!("Point {} position mismatch: expected {:?}, got {:?} (distance: {})", i, expected, actual, distance)); + return Err(format!("Point {i} position mismatch: expected {expected:?}, got {actual:?} (distance: {distance})")); } } @@ -470,7 +509,7 @@ mod test_freehand { let initial_point_count = initial_vector.point_domain.ids().len(); let initial_segment_count = initial_vector.segment_domain.ids().len(); - assert!(initial_point_count >= 2, "Expected at least 2 points in initial path, found {}", initial_point_count); + assert!(initial_point_count >= 2, "Expected at least 2 points in initial path, found {initial_point_count}"); assert_eq!( initial_segment_count, initial_point_count - 1, @@ -479,10 +518,10 @@ mod test_freehand { initial_segment_count ); - let extendable_points = initial_vector.extendable_points(false).collect::>(); - assert!(!extendable_points.is_empty(), "No extendable points found in the path"); + let endpoints = initial_vector.anchor_endpoints().collect::>(); + assert!(!endpoints.is_empty(), "No extendable points found in the path"); - let endpoint_id = extendable_points[0]; + let endpoint_id = endpoints[0]; let endpoint_pos_option = initial_vector.point_domain.position_from_id(endpoint_id); assert!(endpoint_pos_option.is_some(), "Could not find position for endpoint"); @@ -531,17 +570,13 @@ mod test_freehand { assert!( extended_point_count > initial_point_count, - "Expected more points after extension, initial: {}, after extension: {}", - initial_point_count, - extended_point_count + "Expected more points after extension, initial: {initial_point_count}, after extension: {extended_point_count}" ); assert_eq!( extended_segment_count, extended_point_count - 1, - "Expected segments to be one less than points, points: {}, segments: {}", - extended_point_count, - extended_segment_count + "Expected segments to be one less than points, points: {extended_point_count}, segments: {extended_segment_count}" ); let layer_count = { @@ -589,8 +624,8 @@ mod test_freehand { let existing_layer_id = { let document = editor.active_document(); - let layer = document.metadata().all_layers().next().unwrap(); - layer + + document.metadata().all_layers().next().unwrap() }; editor @@ -647,9 +682,7 @@ mod test_freehand { assert!( final_point_count > initial_point_count, - "Expected more points after appending to layer, initial: {}, after append: {}", - initial_point_count, - final_point_count + "Expected more points after appending to layer, initial: {initial_point_count}, after append: {final_point_count}" ); let expected_new_points = second_path_points.len(); @@ -679,7 +712,9 @@ mod test_freehand { let custom_line_weight = 5.; editor - .handle_message(ToolMessage::Freehand(FreehandToolMessage::UpdateOptions(FreehandOptionsUpdate::LineWeight(custom_line_weight)))) + .handle_message(ToolMessage::Freehand(FreehandToolMessage::UpdateOptions { + options: FreehandOptionsUpdate::LineWeight(custom_line_weight), + })) .await; let points = [DVec2::new(100., 100.), DVec2::new(200., 200.), DVec2::new(300., 100.)]; diff --git a/editor/src/messages/tool/tool_messages/gradient_tool.rs b/editor/src/messages/tool/tool_messages/gradient_tool.rs index 41fdb09df..fa5b3f38a 100644 --- a/editor/src/messages/tool/tool_messages/gradient_tool.rs +++ b/editor/src/messages/tool/tool_messages/gradient_tool.rs @@ -24,7 +24,7 @@ pub struct GradientOptions { pub enum GradientToolMessage { // Standard messages Abort, - Overlays(OverlayContext), + Overlays { context: OverlayContext }, // Tool-specific messages DeleteStop, @@ -33,7 +33,7 @@ pub enum GradientToolMessage { PointerMove { constrain_axis: Key }, PointerOutsideViewport { constrain_axis: Key }, PointerUp, - UpdateOptions(GradientOptionsUpdate), + UpdateOptions { options: GradientOptionsUpdate }, } #[derive(PartialEq, Eq, Clone, Debug, Hash, serde::Serialize, serde::Deserialize, specta::Type)] @@ -45,7 +45,7 @@ impl ToolMetadata for GradientTool { fn icon_name(&self) -> String { "GeneralGradientTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Gradient Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -56,11 +56,11 @@ impl ToolMetadata for GradientTool { #[message_handler_data] impl<'a> MessageHandler> for GradientTool { fn process_message(&mut self, message: ToolMessage, responses: &mut VecDeque, context: &mut ToolActionMessageContext<'a>) { - let ToolMessage::Gradient(GradientToolMessage::UpdateOptions(action)) = message else { + let ToolMessage::Gradient(GradientToolMessage::UpdateOptions { options }) = message else { self.fsm_state.process_event(message, &mut self.data, context, &self.options, responses, false); return; }; - match action { + match options { GradientOptionsUpdate::Type(gradient_type) => { self.options.gradient_type = gradient_type; // Update the selected gradient if it exists @@ -91,19 +91,23 @@ impl<'a> MessageHandler> for Grad impl LayoutHolder for GradientTool { fn layout(&self) -> Layout { let gradient_type = RadioInput::new(vec![ - RadioEntryData::new("Linear") - .label("Linear") - .tooltip("Linear gradient") - .on_update(move |_| GradientToolMessage::UpdateOptions(GradientOptionsUpdate::Type(GradientType::Linear)).into()), - RadioEntryData::new("Radial") - .label("Radial") - .tooltip("Radial gradient") - .on_update(move |_| GradientToolMessage::UpdateOptions(GradientOptionsUpdate::Type(GradientType::Radial)).into()), + RadioEntryData::new("Linear").label("Linear").tooltip_label("Linear Gradient").on_update(move |_| { + GradientToolMessage::UpdateOptions { + options: GradientOptionsUpdate::Type(GradientType::Linear), + } + .into() + }), + RadioEntryData::new("Radial").label("Radial").tooltip_label("Radial Gradient").on_update(move |_| { + GradientToolMessage::UpdateOptions { + options: GradientOptionsUpdate::Type(GradientType::Radial), + } + .into() + }), ]) .selected_index(Some((self.selected_gradient().unwrap_or(self.options.gradient_type) == GradientType::Radial) as u32)) - .widget_holder(); + .widget_instance(); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets: vec![gradient_type] }])) + Layout(vec![LayoutGroup::Row { widgets: vec![gradient_type] }]) } } @@ -204,7 +208,6 @@ impl SelectedGradient { /// Update the layer fill to the current gradient pub fn render_gradient(&mut self, responses: &mut VecDeque) { - self.gradient.transform = self.transform; if let Some(layer) = self.layer { responses.add(GraphOperationMessage::FillSet { layer, @@ -225,7 +228,7 @@ impl ToolTransition for GradientTool { fn event_to_message_map(&self) -> EventToMessageMap { EventToMessageMap { tool_abort: Some(GradientToolMessage::Abort.into()), - overlay_provider: Some(|overlay_context| GradientToolMessage::Overlays(overlay_context).into()), + overlay_provider: Some(|context| GradientToolMessage::Overlays { context }.into()), ..Default::default() } } @@ -252,12 +255,16 @@ impl Fsm for GradientToolFsmState { responses: &mut VecDeque, ) -> Self { let ToolActionMessageContext { - document, global_tool_data, input, .. + document, + global_tool_data, + input, + viewport, + .. } = tool_action_data; let ToolMessage::Gradient(event) = event else { return self }; match (self, event) { - (_, GradientToolMessage::Overlays(mut overlay_context)) => { + (_, GradientToolMessage::Overlays { context: mut overlay_context }) => { let selected = tool_data.selected_gradient.as_ref(); for layer in document.network_interface.selected_nodes().selected_visible_layers(&document.network_interface) { @@ -417,7 +424,7 @@ impl Fsm for GradientToolFsmState { let gradient_state = if dragging { GradientToolFsmState::Drawing } else { - let selected_layer = document.click(input); + let selected_layer = document.click(input, viewport); // Apply the gradient to the selected layer if let Some(layer) = selected_layer { @@ -436,14 +443,7 @@ impl Fsm for GradientToolFsmState { gradient.clone() } else { // Generate a new gradient - Gradient::new( - DVec2::ZERO, - global_tool_data.secondary_color, - DVec2::ONE, - global_tool_data.primary_color, - DAffine2::IDENTITY, - tool_options.gradient_type, - ) + Gradient::new(DVec2::ZERO, global_tool_data.secondary_color, DVec2::ONE, global_tool_data.primary_color, tool_options.gradient_type) }; let selected_gradient = SelectedGradient::new(gradient, layer, document).with_gradient_start(input.mouse.position); @@ -468,16 +468,16 @@ impl Fsm for GradientToolFsmState { GradientToolMessage::PointerOutsideViewport { constrain_axis }.into(), GradientToolMessage::PointerMove { constrain_axis }.into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); GradientToolFsmState::Drawing } (GradientToolFsmState::Drawing, GradientToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - if let Some(shift) = tool_data.auto_panning.shift_viewport(input, responses) { - if let Some(selected_gradient) = &mut tool_data.selected_gradient { - selected_gradient.transform.translation += shift; - } + if let Some(shift) = tool_data.auto_panning.shift_viewport(input, viewport, responses) + && let Some(selected_gradient) = &mut tool_data.selected_gradient + { + selected_gradient.transform.translation += shift; } GradientToolFsmState::Drawing @@ -497,12 +497,11 @@ impl Fsm for GradientToolFsmState { tool_data.snap_manager.cleanup(responses); let was_dragging = tool_data.selected_gradient.is_some(); - if !was_dragging { - if let Some(selected_layer) = document.click(input) { - if let Some(gradient) = get_gradient(selected_layer, &document.network_interface) { - tool_data.selected_gradient = Some(SelectedGradient::new(gradient, selected_layer, document)); - } - } + if !was_dragging + && let Some(selected_layer) = document.click(input, viewport) + && let Some(gradient) = get_gradient(selected_layer, &document.network_interface) + { + tool_data.selected_gradient = Some(SelectedGradient::new(gradient, selected_layer, document)); } GradientToolFsmState::Ready } @@ -531,7 +530,7 @@ impl Fsm for GradientToolFsmState { ]), }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } fn update_cursor(&self, responses: &mut VecDeque) { @@ -556,7 +555,7 @@ mod test_gradient { async fn get_fills(editor: &mut EditorTestUtils) -> Vec<(Fill, DAffine2)> { let instrumented = match editor.eval_graph().await { Ok(instrumented) => instrumented, - Err(e) => panic!("Failed to evaluate graph: {}", e), + Err(e) => panic!("Failed to evaluate graph: {e}"), }; let document = editor.active_document(); @@ -577,7 +576,7 @@ mod test_gradient { let (fill, transform) = fills.first().unwrap(); let gradient = fill.as_gradient().expect("Expected gradient fill type"); - (gradient.clone(), transform.clone()) + (gradient.clone(), *transform) } fn assert_stops_at_positions(actual_positions: &[f64], expected_positions: &[f64], tolerance: f64) { @@ -590,7 +589,7 @@ mod test_gradient { ); for (i, (actual, expected)) in actual_positions.iter().zip(expected_positions.iter()).enumerate() { - assert!((actual - expected).abs() < tolerance, "Stop {}: Expected position near {}, got {}", i, expected, actual); + assert!((actual - expected).abs() < tolerance, "Stop {i}: Expected position near {expected}, got {actual}"); } } @@ -717,8 +716,7 @@ mod test_gradient { let positions: Vec = updated_gradient.stops.iter().map(|(pos, _)| *pos).collect(); assert!( positions.iter().any(|pos| (pos - 0.5).abs() < 0.1), - "Expected to find a stop near position 0.5, but found: {:?}", - positions + "Expected to find a stop near position 0.5, but found: {positions:?}" ); } @@ -786,7 +784,7 @@ mod test_gradient { // Verify the end point has been updated to the new position let updated_end = transform.transform_point2(updated_gradient.end); - assert!(updated_end.abs_diff_eq(DVec2::new(100., 50.), 1e-10), "Expected end point at (100, 50), got {:?}", updated_end); + assert!(updated_end.abs_diff_eq(DVec2::new(100., 50.), 1e-10), "Expected end point at (100, 50), got {updated_end:?}"); } #[tokio::test] diff --git a/editor/src/messages/tool/tool_messages/navigate_tool.rs b/editor/src/messages/tool/tool_messages/navigate_tool.rs index 7bbec9d20..8809ccdeb 100644 --- a/editor/src/messages/tool/tool_messages/navigate_tool.rs +++ b/editor/src/messages/tool/tool_messages/navigate_tool.rs @@ -24,7 +24,7 @@ impl ToolMetadata for NavigateTool { fn icon_name(&self) -> String { "GeneralNavigateTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Navigate Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -34,7 +34,7 @@ impl ToolMetadata for NavigateTool { impl LayoutHolder for NavigateTool { fn layout(&self) -> Layout { - Layout::WidgetLayout(WidgetLayout::default()) + Layout::default() } } @@ -166,7 +166,7 @@ impl Fsm for NavigateToolFsmState { ]), }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } fn update_cursor(&self, responses: &mut VecDeque) { diff --git a/editor/src/messages/tool/tool_messages/path_tool.rs b/editor/src/messages/tool/tool_messages/path_tool.rs index eb26a618e..6c140f012 100644 --- a/editor/src/messages/tool/tool_messages/path_tool.rs +++ b/editor/src/messages/tool/tool_messages/path_tool.rs @@ -4,6 +4,8 @@ use crate::consts::{ COLOR_OVERLAY_BLUE, COLOR_OVERLAY_GRAY, COLOR_OVERLAY_GREEN, COLOR_OVERLAY_RED, DEFAULT_STROKE_WIDTH, DOUBLE_CLICK_MILLISECONDS, DRAG_DIRECTION_MODE_DETERMINATION_THRESHOLD, DRAG_THRESHOLD, DRILL_THROUGH_THRESHOLD, HANDLE_ROTATE_SNAP_ANGLE, SEGMENT_INSERTION_DISTANCE, SEGMENT_OVERLAY_SIZE, SELECTION_THRESHOLD, SELECTION_TOLERANCE, }; +use crate::messages::clipboard::utility_types::ClipboardContent; +use crate::messages::input_mapper::utility_types::macros::action_shortcut_manual; use crate::messages::portfolio::document::graph_operation::utility_types::TransformIn; use crate::messages::portfolio::document::node_graph::document_node_definitions::resolve_document_node_type; use crate::messages::portfolio::document::overlays::utility_functions::{path_overlays, selected_segments}; @@ -21,14 +23,16 @@ use crate::messages::tool::common_functionality::shape_editor::{ }; use crate::messages::tool::common_functionality::snapping::{SnapCache, SnapCandidatePoint, SnapConstraint, SnapData, SnapManager}; use crate::messages::tool::common_functionality::utility_functions::{calculate_segment_angle, find_two_param_best_approximate, make_path_editable_is_allowed}; -use bezier_rs::{Bezier, BezierHandles, TValue}; use graphene_std::Color; use graphene_std::renderer::Quad; +use graphene_std::subpath::pathseg_points; use graphene_std::transform::ReferencePoint; use graphene_std::uuid::NodeId; +use graphene_std::vector::algorithms::util::pathseg_tangent; use graphene_std::vector::click_target::ClickTargetType; -use graphene_std::vector::misc::{HandleId, ManipulatorPointId}; +use graphene_std::vector::misc::{HandleId, ManipulatorPointId, dvec2_to_point, point_to_dvec2}; use graphene_std::vector::{HandleExt, NoHashBuilder, PointId, SegmentId, Vector, VectorModificationType}; +use kurbo::{DEFAULT_ACCURACY, ParamCurve, ParamCurveNearest, PathSeg, Rect}; use std::vec; #[derive(Default, ExtractField)] @@ -49,12 +53,14 @@ pub struct PathToolOptions { pub enum PathToolMessage { // Standard messages Abort, - Overlays(OverlayContext), SelectionChanged, + Overlays { + context: OverlayContext, + }, // Tool-specific messages BreakPath, - DeselectAllPoints, + DeselectAllSelected, Delete, DeleteAndBreakPath, DragStop { @@ -109,7 +115,7 @@ pub enum PathToolMessage { segment_editing_modifier: Key, }, RightClick, - SelectAllAnchors, + SelectAll, SelectedPointUpdated, SelectedPointXChanged { new_x: f64, @@ -121,10 +127,13 @@ pub enum PathToolMessage { position: ReferencePoint, }, SwapSelectedHandles, - UpdateOptions(PathOptionsUpdate), + UpdateOptions { + options: PathOptionsUpdate, + }, UpdateSelectedPointsStatus { overlay_context: OverlayContext, }, + StartSlidingPoint, Copy { clipboard: Clipboard, }, @@ -178,7 +187,7 @@ impl ToolMetadata for PathTool { fn icon_name(&self) -> String { "VectorPathTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Path Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -208,7 +217,7 @@ impl LayoutHolder for PathTool { Message::NoOp } }) - .widget_holder(); + .widget_instance(); let y_location = NumberInput::new(y) .unit(" px") @@ -224,12 +233,12 @@ impl LayoutHolder for PathTool { Message::NoOp } }) - .widget_holder(); + .widget_instance(); - let related_seperator = Separator::new(SeparatorType::Related).widget_holder(); - let unrelated_seperator = Separator::new(SeparatorType::Unrelated).widget_holder(); + let related_seperator = Separator::new(SeparatorType::Related).widget_instance(); + let unrelated_seperator = Separator::new(SeparatorType::Unrelated).widget_instance(); - let colinear_handles_tooltip = "Keep both handles unbent, each 180ยฐ apart, when moving either"; + let colinear_handles_description = "Keep both handles unbent, each 180ยฐ apart, when moving either."; let colinear_handles_state = manipulator_angle.and_then(|angle| match angle { ManipulatorAngle::Colinear => Some(true), ManipulatorAngle::Free => Some(false), @@ -247,52 +256,79 @@ impl LayoutHolder for PathTool { PathToolMessage::ManipulatorMakeHandlesFree.into() } }) - .tooltip(colinear_handles_tooltip) + .tooltip_label("Colinear Handles") + .tooltip_description(colinear_handles_description) .for_label(checkbox_id) - .widget_holder(); + .widget_instance(); let colinear_handles_label = TextLabel::new("Colinear Handles") .disabled(!self.tool_data.can_toggle_colinearity) - .tooltip(colinear_handles_tooltip) + .tooltip_label("Colinear Handles") + .tooltip_description(colinear_handles_description) .for_checkbox(checkbox_id) - .widget_holder(); + .widget_instance(); let point_editing_mode = CheckboxInput::new(self.options.path_editing_mode.point_editing_mode) // TODO(Keavon): Replace with a real icon .icon("Dot") - .tooltip("Point Editing Mode\n\nShift + click to select both modes.") + .tooltip_label("Point Editing Mode") + .tooltip_description("To multi-select modes, perform the shortcut shown.") + .tooltip_shortcut(action_shortcut_manual!(Key::Shift, Key::MouseLeft)) .on_update(|_| PathToolMessage::TogglePointEditing.into()) - .widget_holder(); + .widget_instance(); let segment_editing_mode = CheckboxInput::new(self.options.path_editing_mode.segment_editing_mode) // TODO(Keavon): Replace with a real icon .icon("Remove") - .tooltip("Segment Editing Mode\n\nShift + click to select both modes.") + .tooltip_label("Segment Editing Mode") + .tooltip_description("To multi-select modes, perform the shortcut shown.") + .tooltip_shortcut(action_shortcut_manual!(Key::Shift, Key::MouseLeft)) .on_update(|_| PathToolMessage::ToggleSegmentEditing.into()) - .widget_holder(); + .widget_instance(); let path_overlay_mode_widget = RadioInput::new(vec![ RadioEntryData::new("all") .icon("HandleVisibilityAll") - .tooltip("Show all handles regardless of selection") - .on_update(move |_| PathToolMessage::UpdateOptions(PathOptionsUpdate::OverlayModeType(PathOverlayMode::AllHandles)).into()), + .tooltip_label("Show All Handles") + .tooltip_description("Show all handles regardless of selection.") + .on_update(move |_| { + PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::OverlayModeType(PathOverlayMode::AllHandles), + } + .into() + }), RadioEntryData::new("selected") .icon("HandleVisibilitySelected") - .tooltip("Show only handles of the segments connected to selected points") - .on_update(move |_| PathToolMessage::UpdateOptions(PathOptionsUpdate::OverlayModeType(PathOverlayMode::SelectedPointHandles)).into()), + .tooltip_label("Show Connected Handles") + .tooltip_description("Show only handles of the segments connected to selected points.") + .on_update(move |_| { + PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::OverlayModeType(PathOverlayMode::SelectedPointHandles), + } + .into() + }), RadioEntryData::new("frontier") .icon("HandleVisibilityFrontier") - .tooltip("Show only handles at the frontiers of the segments connected to selected points") - .on_update(move |_| PathToolMessage::UpdateOptions(PathOptionsUpdate::OverlayModeType(PathOverlayMode::FrontierHandles)).into()), + .tooltip_label("Show Frontier Handles") + .tooltip_description("Show only handles at the frontiers of the segments connected to selected points.") + .on_update(move |_| { + PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::OverlayModeType(PathOverlayMode::FrontierHandles), + } + .into() + }), ]) .selected_index(Some(self.options.path_overlay_mode as u32)) - .widget_holder(); + .widget_instance(); // Works only if a single layer is selected and its type is Vector let path_node_button = TextButton::new("Make Path Editable") .icon(Some("NodeShape".into())) - .tooltip("Make Path Editable") + .tooltip_label("Make Path Editable") + .tooltip_description( + "Enables the Pen and Path tools to directly edit layer geometry resulting from nondestructive operations. This inserts a 'Path' node as the last operation of the selected layer.", + ) .on_update(|_| NodeGraphMessage::AddPathNode.into()) .disabled(!self.tool_data.make_path_editable_is_allowed) - .widget_holder(); + .widget_instance(); let merge_segments_button = IconButton::new("Folder", 24) .tooltip("Merge selected selgments") @@ -314,7 +350,7 @@ impl LayoutHolder for PathTool { let _pin_pivot = pin_pivot_widget(self.tool_data.pivot_gizmo.pin_active(), false, PivotToolSource::Path); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { + Layout(vec![LayoutGroup::Row { widgets: vec![ x_location, related_seperator.clone(), @@ -342,7 +378,7 @@ impl LayoutHolder for PathTool { // related_seperator.clone(), // pin_pivot, ], - }])) + }]) } } @@ -352,7 +388,7 @@ impl<'a> MessageHandler> for Path let updating_point = message == ToolMessage::Path(PathToolMessage::SelectedPointUpdated); match message { - ToolMessage::Path(PathToolMessage::UpdateOptions(action)) => match action { + ToolMessage::Path(PathToolMessage::UpdateOptions { options }) => match options { PathOptionsUpdate::OverlayModeType(overlay_mode_type) => { self.options.path_overlay_mode = overlay_mode_type; responses.add(OverlaysMessage::Draw); @@ -389,12 +425,6 @@ impl<'a> MessageHandler> for Path self.send_layout(responses, LayoutTarget::ToolOptions); } }, - ToolMessage::Path(PathToolMessage::ClosePath) => { - responses.add(DocumentMessage::AddTransaction); - context.shape_editor.close_selected_path(context.document, responses); - responses.add(DocumentMessage::EndTransaction); - responses.add(OverlaysMessage::Draw); - } ToolMessage::Path(PathToolMessage::SwapSelectedHandles) => { if context.shape_editor.handle_with_pair_selected(&context.document.network_interface) { context.shape_editor.alternate_selected_handles(&context.document.network_interface); @@ -422,12 +452,13 @@ impl<'a> MessageHandler> for Path Delete, NudgeSelectedPoints, Enter, - SelectAllAnchors, - DeselectAllPoints, + SelectAll, + DeselectAllSelected, BreakPath, DeleteAndBreakPath, ClosePath, PointerMove, + StartSlidingPoint, Copy, Cut, DeleteSelected, @@ -447,6 +478,7 @@ impl<'a> MessageHandler> for Path BreakPath, DeleteAndBreakPath, SwapSelectedHandles, + StartSlidingPoint, Copy, Cut, DeleteSelected, @@ -465,6 +497,7 @@ impl<'a> MessageHandler> for Path DeleteAndBreakPath, Escape, RightClick, + StartSlidingPoint, TogglePointEditing, ToggleSegmentEditing ), @@ -483,7 +516,7 @@ impl ToolTransition for PathTool { EventToMessageMap { tool_abort: Some(PathToolMessage::Abort.into()), selection_changed: Some(PathToolMessage::SelectionChanged.into()), - overlay_provider: Some(|overlay_context| PathToolMessage::Overlays(overlay_context).into()), + overlay_provider: Some(|context| PathToolMessage::Overlays { context }.into()), ..Default::default() } } @@ -505,7 +538,7 @@ pub enum PointSelectState { #[derive(Clone, Copy)] pub struct SlidingSegmentData { segment_id: SegmentId, - bezier: Bezier, + bezier: PathSeg, start: PointId, } @@ -549,11 +582,11 @@ struct PathToolData { segment_editing_modifier: bool, multiple_toggle_pressed: bool, auto_panning: AutoPanning, - saved_points_before_anchor_select_toggle: Vec, + saved_points_before_anchor_select_toggle: HashMap>, select_anchor_toggled: bool, saved_selection_before_handle_drag: HashMap, HashSet)>, handle_drag_toggle: bool, - saved_points_before_anchor_convert_smooth_sharp: HashSet, + saved_points_before_anchor_convert_smooth_sharp: HashMap>, last_click_time: u64, dragging_state: DraggingState, angle: f64, @@ -570,7 +603,7 @@ struct PathToolData { molding_info: Option<(DVec2, DVec2)>, molding_segment: bool, temporary_adjacent_handles_while_molding: Option<[Option; 2]>, - frontier_handles_info: Option>>, + frontier_handles_info: Option>>>, adjacent_anchor_offset: Option, sliding_point_info: Option, started_drawing_from_inside: bool, @@ -586,7 +619,7 @@ struct PathToolData { } impl PathToolData { - fn save_points_before_anchor_toggle(&mut self, points: Vec) -> PathToolFsmState { + fn save_points_before_anchor_toggle(&mut self, points: HashMap>) -> PathToolFsmState { self.saved_points_before_anchor_select_toggle = points; PathToolFsmState::Dragging(self.dragging_state) } @@ -738,6 +771,7 @@ impl PathToolData { shape_editor: &mut ShapeState, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, responses: &mut VecDeque, extend_selection: bool, lasso_select: bool, @@ -775,7 +809,7 @@ impl PathToolData { input.mouse.position, SELECTION_THRESHOLD, path_overlay_mode, - &self.frontier_handles_info, + self.frontier_handles_info.as_ref(), point_editing_mode, ) { responses.add(DocumentMessage::StartTransaction); @@ -786,17 +820,16 @@ impl PathToolData { // If the point is already selected and shift (`extend_selection`) is used, keep the selection unchanged. // Otherwise, select the first point within the threshold. - if !(already_selected && extend_selection) { - if let Some(updated_selection_info) = shape_editor.change_point_selection( + if !(already_selected && extend_selection) + && let Some(updated_selection_info) = shape_editor.change_point_selection( &document.network_interface, input.mouse.position, SELECTION_THRESHOLD, extend_selection, path_overlay_mode, - &self.frontier_handles_info, + self.frontier_handles_info.as_ref(), ) { - selection_info = updated_selection_info; - } + selection_info = updated_selection_info; } if let Some(selected_points) = selection_info { @@ -814,45 +847,43 @@ impl PathToolData { self.saved_selection_before_handle_drag = old_selection; } - if handle_drag_from_anchor { - if let Some((layer, point)) = shape_editor.find_nearest_point_indices(&document.network_interface, input.mouse.position, SELECTION_THRESHOLD) { - // Check that selected point is an anchor - if let (Some(point_id), Some(vector)) = (point.as_anchor(), document.network_interface.compute_modified_vector(layer)) { - let handles = vector.all_connected(point_id).collect::>(); - self.alt_clicked_on_anchor = true; - for handle in &handles { - let modification_type = handle.set_relative_position(DVec2::ZERO); - responses.add(GraphOperationMessage::Vector { layer, modification_type }); - for &handles in &vector.colinear_manipulators { - if handles.contains(handle) { - let modification_type = VectorModificationType::SetG1Continuous { handles, enabled: false }; - responses.add(GraphOperationMessage::Vector { layer, modification_type }); - } + if handle_drag_from_anchor && let Some((layer, point)) = shape_editor.find_nearest_point_indices(&document.network_interface, input.mouse.position, SELECTION_THRESHOLD) { + // Check that selected point is an anchor + if let (Some(point_id), Some(vector)) = (point.as_anchor(), document.network_interface.compute_modified_vector(layer)) { + let handles = vector.all_connected(point_id).collect::>(); + self.alt_clicked_on_anchor = true; + for handle in &handles { + let modification_type = handle.set_relative_position(DVec2::ZERO); + responses.add(GraphOperationMessage::Vector { layer, modification_type }); + for &handles in &vector.colinear_manipulators { + if handles.contains(handle) { + let modification_type = VectorModificationType::SetG1Continuous { handles, enabled: false }; + responses.add(GraphOperationMessage::Vector { layer, modification_type }); } } - - let manipulator_point_id = handles[0].to_manipulator_point(); - shape_editor.deselect_all_points(); - shape_editor.select_points_by_manipulator_id(&vec![manipulator_point_id]); - responses.add(PathToolMessage::SelectedPointUpdated); } + + let manipulator_point_id = handles[0].to_manipulator_point(); + shape_editor.deselect_all_points(); + shape_editor.select_point_by_layer_and_id(manipulator_point_id, layer); + responses.add(PathToolMessage::SelectedPointUpdated); } } - if let Some((Some(point), Some(vector))) = shape_editor + if let Some((Some(point), Some(vector), layer)) = shape_editor .find_nearest_point_indices(&document.network_interface, input.mouse.position, SELECTION_THRESHOLD) - .map(|(layer, point)| (point.as_anchor(), document.network_interface.compute_modified_vector(layer))) + .map(|(layer, point)| (point.as_anchor(), document.network_interface.compute_modified_vector(layer), layer)) { let handles = vector .all_connected(point) .filter(|handle| handle.length(&vector) < 1e-6) .map(|handle| handle.to_manipulator_point()) .collect::>(); - let endpoint = vector.extendable_points(false).any(|anchor| point == anchor); + let endpoint = vector.anchor_endpoints().any(|anchor| point == anchor); if drag_zero_handle && (handles.len() == 1 && !endpoint) { shape_editor.deselect_all_points(); - shape_editor.select_points_by_manipulator_id(&handles); + shape_editor.select_points_by_layer_and_id(&HashMap::from([(layer, handles)])); shape_editor.convert_selected_manipulators_to_colinear_handles(responses, document); } } @@ -896,20 +927,19 @@ impl PathToolData { responses.add(OverlaysMessage::Draw); PathToolFsmState::Dragging(self.dragging_state) } else { - let start_pos = segment.bezier().start; - let end_pos = segment.bezier().end; + let points = pathseg_points(segment.pathseg()); - let [pos1, pos2] = match segment.bezier().handles { - BezierHandles::Cubic { handle_start, handle_end } => [handle_start, handle_end], - BezierHandles::Quadratic { handle } => [handle, end_pos], - BezierHandles::Linear => [start_pos + (end_pos - start_pos) / 3., end_pos + (start_pos - end_pos) / 3.], + let [pos1, pos2] = match (points.p1, points.p2) { + (Some(p1), Some(p2)) => [p1, p2], + (Some(p1), None) | (None, Some(p1)) => [p1, points.p3], + (None, None) => [points.p0 + (points.p3 - points.p0) / 3., points.p3 + (points.p0 - points.p3) / 3.], }; self.molding_info = Some((pos1, pos2)); PathToolFsmState::Dragging(self.dragging_state) } } // If no other layers are selected and this is a single-click, then also select the layer (exception) - else if let Some(layer) = document.click(input) { + else if let Some(layer) = document.click(input, viewport) { if shape_editor.selected_shape_state.is_empty() { self.first_selected_with_single_click = true; // This ensures we don't need to double click a second time to get the drill through to work @@ -1147,8 +1177,9 @@ impl PathToolData { handle_position: DVec2, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, ) -> DVec2 { - let snap_data = SnapData::new(document, input); + let snap_data = SnapData::new(document, input, viewport); let snap_point = SnapCandidatePoint::handle_neighbors(new_handle_position, [anchor_position]); let snap_result = match using_angle_constraints { @@ -1233,7 +1264,7 @@ impl PathToolData { // Check if there is no point nearby // If the point mode is deactivated then don't override closest segment even if there is a closer point if shape_editor - .find_nearest_visible_point_indices(&document.network_interface, position, SELECTION_THRESHOLD, path_overlay_mode, &self.frontier_handles_info) + .find_nearest_visible_point_indices(&document.network_interface, position, SELECTION_THRESHOLD, path_overlay_mode, self.frontier_handles_info.as_ref()) .is_some() && point_editing_mode { @@ -1243,9 +1274,19 @@ impl PathToolData { else if let Some(closest_segment) = &mut self.segment { closest_segment.update_closest_point(document.metadata(), &document.network_interface, position); + let layer = closest_segment.layer(); + let segment_id = closest_segment.segment(); + if closest_segment.too_far(position, SEGMENT_INSERTION_DISTANCE) { self.segment = None; } + + // Check if that segment exists or it has been removed + if let Some(vector_data) = document.network_interface.compute_modified_vector(layer) + && !(vector_data.segment_domain.ids().contains(&segment_id)) + { + self.segment = None; + } } // If not, check that if there is some closest segment or not else if let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, position, SEGMENT_INSERTION_DISTANCE) { @@ -1263,15 +1304,10 @@ impl PathToolData { }; let Some(vector) = document.network_interface.compute_modified_vector(layer) else { return false }; - // Check that the handles of anchor point are also colinear - if !vector.colinear(*anchor) { - return false; - }; - let Some(point_id) = anchor.as_anchor() else { return false }; let mut connected_segments = [None, None]; - for (segment, bezier, start, end) in vector.segment_bezier_iter() { + for (segment, bezier, start, end) in vector.segment_iter() { if start == point_id || end == point_id { match (connected_segments[0], connected_segments[1]) { (None, None) => connected_segments[0] = Some(SlidingSegmentData { segment_id: segment, bezier, start }), @@ -1311,13 +1347,13 @@ impl PathToolData { let segments = sliding_point_info.connected_segments; - let t1 = segments[0].bezier.project(layer_pos); - let position1 = segments[0].bezier.evaluate(TValue::Parametric(t1)); + let t1 = segments[0].bezier.nearest(dvec2_to_point(layer_pos), DEFAULT_ACCURACY).t; + let position1 = point_to_dvec2(segments[0].bezier.eval(t1)); - let t2 = segments[1].bezier.project(layer_pos); - let position2 = segments[1].bezier.evaluate(TValue::Parametric(t2)); + let t2 = segments[1].bezier.nearest(dvec2_to_point(layer_pos), DEFAULT_ACCURACY).t; + let position2 = point_to_dvec2(segments[1].bezier.eval(t2)); - let (closer_segment, farther_segment, t_value, new_position) = if position2.distance(layer_pos) < position1.distance(layer_pos) { + let (closer_segment, further_segment, t_value, new_position) = if position2.distance(layer_pos) < position1.distance(layer_pos) { (segments[1], segments[0], t2, position2) } else { (segments[0], segments[1], t1, position1) @@ -1332,50 +1368,59 @@ impl PathToolData { shape_editor.move_anchor(anchor, &vector, delta, layer, None, responses); // Make a split at the t_value - let [first, second] = closer_segment.bezier.split(TValue::Parametric(t_value)); - let closer_segment_other_point = if anchor == closer_segment.start { closer_segment.bezier.end } else { closer_segment.bezier.start }; + let first = closer_segment.bezier.subsegment(0_f64..t_value); + let second = closer_segment.bezier.subsegment(t_value..1.); - let (split_segment, other_segment) = if first.start == closer_segment_other_point { (first, second) } else { (second, first) }; + let closer_segment_other_point = if anchor == closer_segment.start { + closer_segment.bezier.end() + } else { + closer_segment.bezier.start() + }; + + let (split_segment, other_segment) = if first.start() == closer_segment_other_point { (first, second) } else { (second, first) }; + let split_segment_points = pathseg_points(split_segment); // Primary handle maps to primary handle and secondary maps to secondary let closer_primary_handle = HandleId::primary(closer_segment.segment_id); - let Some(handle_position) = split_segment.handle_start() else { return }; - let relative_position1 = handle_position - split_segment.start; + let Some(handle_position) = split_segment_points.p1 else { return }; + let relative_position1 = handle_position - split_segment_points.p0; let modification_type = closer_primary_handle.set_relative_position(relative_position1); responses.add(GraphOperationMessage::Vector { layer, modification_type }); let closer_secondary_handle = HandleId::end(closer_segment.segment_id); - let Some(handle_position) = split_segment.handle_end() else { return }; - let relative_position2 = handle_position - split_segment.end; + let Some(handle_position) = split_segment_points.p2 else { return }; + let relative_position2 = handle_position - split_segment_points.p3; let modification_type = closer_secondary_handle.set_relative_position(relative_position2); responses.add(GraphOperationMessage::Vector { layer, modification_type }); let end_handle_direction = if anchor == closer_segment.start { -relative_position1 } else { -relative_position2 }; - let (farther_other_point, start_handle, end_handle, start_handle_pos) = if anchor == farther_segment.start { + let further_segment_points = pathseg_points(further_segment.bezier); + + let (further_other_point, start_handle, end_handle, start_handle_pos) = if anchor == further_segment.start { ( - farther_segment.bezier.end, - HandleId::end(farther_segment.segment_id), - HandleId::primary(farther_segment.segment_id), - farther_segment.bezier.handle_end(), + further_segment_points.p3, + HandleId::end(further_segment.segment_id), + HandleId::primary(further_segment.segment_id), + further_segment_points.p2, ) } else { ( - farther_segment.bezier.start, - HandleId::primary(farther_segment.segment_id), - HandleId::end(farther_segment.segment_id), - farther_segment.bezier.handle_start(), + further_segment_points.p0, + HandleId::primary(further_segment.segment_id), + HandleId::end(further_segment.segment_id), + further_segment_points.p1, ) }; let Some(start_handle_position) = start_handle_pos else { return }; - let start_handle_direction = start_handle_position - farther_other_point; + let start_handle_direction = start_handle_position - further_other_point; // Get normalized direction vectors, if cubic handle is zero then we consider corresponding tangent let d1 = start_handle_direction.try_normalize().unwrap_or({ - if anchor == farther_segment.start { - -farther_segment.bezier.tangent(TValue::Parametric(0.99)) + if anchor == further_segment.start { + -pathseg_tangent(further_segment.bezier, 1.) } else { - farther_segment.bezier.tangent(TValue::Parametric(0.01)) + pathseg_tangent(further_segment.bezier, 0.) } }); @@ -1384,7 +1429,7 @@ impl PathToolData { let min_len1 = start_handle_direction.length() * 0.4; let min_len2 = end_handle_direction.length() * 0.4; - let (relative_pos1, relative_pos2) = find_two_param_best_approximate(farther_other_point, new_position, d1, d2, min_len1, min_len2, farther_segment.bezier, other_segment); + let (relative_pos1, relative_pos2) = find_two_param_best_approximate(further_other_point, new_position, d1, d2, min_len1, min_len2, further_segment.bezier, other_segment); // Now set those handles to these handle lengths keeping the directions d1, d2 let modification_type = start_handle.set_relative_position(relative_pos1); @@ -1404,6 +1449,7 @@ impl PathToolData { shape_editor: &mut ShapeState, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, responses: &mut VecDeque, ) { // First check if selection is not just a single handle point @@ -1454,9 +1500,10 @@ impl PathToolData { handle_position, document, input, + viewport, ) } else { - shape_editor.snap(&mut self.snap_manager, &self.snap_cache, document, input, previous_mouse) + shape_editor.snap(&mut self.snap_manager, &self.snap_cache, document, input, viewport, previous_mouse) }; let handle_lengths = if equidistant { None } else { self.opposing_handle_lengths.take() }; @@ -1496,7 +1543,8 @@ impl PathToolData { // Now change the selection to this handle shape_editor.deselect_all_points(); - shape_editor.select_points_by_manipulator_id(&vec![handle]); + shape_editor.select_point_by_layer_and_id(handle, layer); + responses.add(PathToolMessage::SelectionChanged); } } @@ -1561,7 +1609,13 @@ impl Fsm for PathToolFsmState { tool_options: &Self::ToolOptions, responses: &mut VecDeque, ) -> Self { - let ToolActionMessageContext { document, input, shape_editor, .. } = tool_action_data; + let ToolActionMessageContext { + document, + input, + viewport, + shape_editor, + .. + } = tool_action_data; update_dynamic_hints(self, responses, shape_editor, document, tool_data, tool_options, input.mouse.position); @@ -1577,6 +1631,10 @@ impl Fsm for PathToolFsmState { shape_editor.set_selected_layers(target_layers); + let new_state = make_path_editable_is_allowed(&mut document.network_interface).is_some(); + if tool_data.make_path_editable_is_allowed != new_state { + responses.add(MenuBarMessage::SendLayout); + } responses.add(OverlaysMessage::Draw); self } @@ -1604,14 +1662,22 @@ impl Fsm for PathToolFsmState { match (multiple_toggle, point_edit) { (true, true) => { - responses.add(PathToolMessage::UpdateOptions(PathOptionsUpdate::PointEditingMode { enabled: false })); + responses.add(PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::PointEditingMode { enabled: false }, + }); } (true, false) => { - responses.add(PathToolMessage::UpdateOptions(PathOptionsUpdate::PointEditingMode { enabled: true })); + responses.add(PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::PointEditingMode { enabled: true }, + }); } (_, _) => { - responses.add(PathToolMessage::UpdateOptions(PathOptionsUpdate::PointEditingMode { enabled: true })); - responses.add(PathToolMessage::UpdateOptions(PathOptionsUpdate::SegmentEditingMode { enabled: false })); + responses.add(PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::PointEditingMode { enabled: true }, + }); + responses.add(PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::SegmentEditingMode { enabled: false }, + }); // Select all of the end points of selected segments let selected_layers = shape_editor.selected_layers().cloned().collect::>(); @@ -1649,14 +1715,22 @@ impl Fsm for PathToolFsmState { match (multiple_toggle, segment_edit) { (true, true) => { - responses.add(PathToolMessage::UpdateOptions(PathOptionsUpdate::SegmentEditingMode { enabled: false })); + responses.add(PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::SegmentEditingMode { enabled: false }, + }); } (true, false) => { - responses.add(PathToolMessage::UpdateOptions(PathOptionsUpdate::SegmentEditingMode { enabled: true })); + responses.add(PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::SegmentEditingMode { enabled: true }, + }); } (_, _) => { - responses.add(PathToolMessage::UpdateOptions(PathOptionsUpdate::PointEditingMode { enabled: false })); - responses.add(PathToolMessage::UpdateOptions(PathOptionsUpdate::SegmentEditingMode { enabled: true })); + responses.add(PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::PointEditingMode { enabled: false }, + }); + responses.add(PathToolMessage::UpdateOptions { + options: PathOptionsUpdate::SegmentEditingMode { enabled: true }, + }); // Select all the segments which have both of the ends selected let selected_layers = shape_editor.selected_layers().cloned().collect::>(); @@ -1679,7 +1753,7 @@ impl Fsm for PathToolFsmState { self } - (_, PathToolMessage::Overlays(mut overlay_context)) => { + (_, PathToolMessage::Overlays { context: mut overlay_context }) => { // Set this to show ghost line only if drag actually happened if matches!(self, Self::Dragging(_)) && tool_data.drag_start_pos.distance(input.mouse.position) > DRAG_THRESHOLD { for (outline, layer) in &tool_data.ghost_outline { @@ -1703,25 +1777,31 @@ impl Fsm for PathToolFsmState { } PathOverlayMode::FrontierHandles => { let selected_segments = selected_segments(&document.network_interface, shape_editor); - let selected_points = shape_editor.selected_points(); - let selected_anchors = selected_points - .filter_map(|point_id| if let ManipulatorPointId::Anchor(p) = point_id { Some(*p) } else { None }) - .collect::>(); // Match the behavior of `PathOverlayMode::SelectedPointHandles` when only one point is selected if shape_editor.selected_points().count() == 1 { path_overlays(document, DrawHandles::SelectedAnchors(selected_segments), shape_editor, &mut overlay_context); } else { - let mut segment_endpoints: HashMap> = HashMap::new(); + let mut segment_endpoints_by_layer = HashMap::new(); for layer in document.network_interface.selected_nodes().selected_layers(document.metadata()) { + let mut segment_endpoints: HashMap> = HashMap::new(); + let Some(vector) = document.network_interface.compute_modified_vector(layer) else { continue }; + let Some(state) = shape_editor.selected_shape_state.get_mut(&layer) else { continue }; + + let selected_points = state.selected_points(); + let selected_anchors = selected_points + .filter_map(|point_id| if let ManipulatorPointId::Anchor(p) = point_id { Some(p) } else { None }) + .collect::>(); + + let Some(focused_segments) = selected_segments.get(&layer) else { continue }; // The points which are part of only one segment will be rendered let mut selected_segments_by_point: HashMap> = HashMap::new(); for (segment_id, _bezier, start, end) in vector.segment_bezier_iter() { - if selected_segments.contains(&segment_id) { + if focused_segments.contains(&segment_id) { selected_segments_by_point.entry(start).or_default().push(segment_id); selected_segments_by_point.entry(end).or_default().push(segment_id); } @@ -1737,13 +1817,15 @@ impl Fsm for PathToolFsmState { segment_endpoints.entry(attached_segments[1]).or_default().push(point); } } + + segment_endpoints_by_layer.insert(layer, segment_endpoints); } // Caching segment endpoints for use in point selection logic - tool_data.frontier_handles_info = Some(segment_endpoints.clone()); + tool_data.frontier_handles_info = Some(segment_endpoints_by_layer.clone()); // Now frontier anchors can be sent for rendering overlays - path_overlays(document, DrawHandles::FrontierHandles(segment_endpoints), shape_editor, &mut overlay_context); + path_overlays(document, DrawHandles::FrontierHandles(segment_endpoints_by_layer), shape_editor, &mut overlay_context); } } } @@ -1769,7 +1851,7 @@ impl Fsm for PathToolFsmState { input.mouse.position, SELECTION_THRESHOLD, tool_options.path_overlay_mode, - &tool_data.frontier_handles_info, + tool_data.frontier_handles_info.as_ref(), ); let Some((layer, manipulator_point_id)) = nearest_visible_point_indices else { return }; @@ -1793,13 +1875,13 @@ impl Fsm for PathToolFsmState { if tool_options.path_editing_mode.segment_editing_mode && !tool_data.segment_editing_modifier { let transform = document.metadata().transform_to_viewport_if_feeds(closest_segment.layer(), &document.network_interface); - overlay_context.outline_overlay_bezier(closest_segment.bezier(), transform); + overlay_context.outline_overlay_bezier(closest_segment.pathseg(), transform); // Draw the anchors again let display_anchors = overlay_context.visibility_settings.anchors(); if display_anchors { - let start_pos = transform.transform_point2(closest_segment.bezier().start); - let end_pos = transform.transform_point2(closest_segment.bezier().end); + let start_pos = transform.transform_point2(point_to_dvec2(closest_segment.pathseg().start())); + let end_pos = transform.transform_point2(point_to_dvec2(closest_segment.pathseg().end())); let start_id = closest_segment.points()[0]; let end_id = closest_segment.points()[1]; if let Some(shape_state) = shape_editor.selected_shape_state.get_mut(&closest_segment.layer()) { @@ -1876,12 +1958,12 @@ impl Fsm for PathToolFsmState { let (points_inside, segments_inside) = match selection_shape { SelectionShapeType::Box => { let previous_mouse = document.metadata().document_to_viewport.transform_point2(tool_data.previous_mouse_position); - let bbox = [tool_data.drag_start_pos, previous_mouse]; + let bbox = Rect::new(tool_data.drag_start_pos.x, tool_data.drag_start_pos.y, previous_mouse.x, previous_mouse.y).abs(); shape_editor.get_inside_points_and_segments( &document.network_interface, SelectionShape::Box(bbox), tool_options.path_overlay_mode, - &tool_data.frontier_handles_info, + tool_data.frontier_handles_info.as_ref(), select_segments, select_points, selection_mode, @@ -1891,7 +1973,7 @@ impl Fsm for PathToolFsmState { &document.network_interface, SelectionShape::Lasso(&tool_data.lasso_polygon), tool_options.path_overlay_mode, - &tool_data.frontier_handles_info, + tool_data.frontier_handles_info.as_ref(), select_segments, select_points, selection_mode, @@ -1921,7 +2003,7 @@ impl Fsm for PathToolFsmState { let transform = document.metadata().transform_to_viewport_if_feeds(layer, &document.network_interface); - for (segment, bezier, _, _) in vector.segment_bezier_iter() { + for (segment, bezier, _, _) in vector.segment_iter() { if segments.contains(&segment) { overlay_context.outline_overlay_bezier(bezier, transform); } @@ -1938,13 +2020,13 @@ impl Fsm for PathToolFsmState { } } Self::Dragging(_) => { - tool_data.snap_manager.draw_overlays(SnapData::new(document, input), &mut overlay_context); + tool_data.snap_manager.draw_overlays(SnapData::new(document, input, viewport), &mut overlay_context); // Draw the snapping axis lines if tool_data.snapping_axis.is_some() { let Some(axis) = tool_data.snapping_axis else { return self }; let origin = tool_data.drag_start_pos; - let viewport_diagonal = input.viewport_bounds.size().length(); + let viewport_diagonal = viewport.size().into_dvec2().length(); let faded = |color: &str| { let mut color = graphene_std::Color::from_rgb_str(color.strip_prefix('#').unwrap()).unwrap().with_alpha(0.25).to_rgba_hex_srgb(); @@ -1995,6 +2077,7 @@ impl Fsm for PathToolFsmState { shape_editor, document, input, + viewport, responses, extend_selection, lasso_select, @@ -2055,7 +2138,7 @@ impl Fsm for PathToolFsmState { } .into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); PathToolFsmState::Drawing { selection_shape } } @@ -2086,19 +2169,19 @@ impl Fsm for PathToolFsmState { let break_molding = input.keyboard.get(break_colinear_molding as usize); // Logic for molding segment - if let Some(segment) = &mut tool_data.segment { - if let Some(molding_segment_handles) = tool_data.molding_info { - tool_data.temporary_adjacent_handles_while_molding = segment.mold_handle_positions( - document, - responses, - molding_segment_handles, - input.mouse.position, - break_molding, - tool_data.temporary_adjacent_handles_while_molding, - ); + if let Some(segment) = &mut tool_data.segment + && let Some(molding_segment_handles) = tool_data.molding_info + { + tool_data.temporary_adjacent_handles_while_molding = segment.mold_handle_positions( + document, + responses, + molding_segment_handles, + input.mouse.position, + break_molding, + tool_data.temporary_adjacent_handles_while_molding, + ); - return PathToolFsmState::Dragging(tool_data.dragging_state); - } + return PathToolFsmState::Dragging(tool_data.dragging_state); } let anchor_and_handle_toggled = input.keyboard.get(move_anchor_with_handles as usize); @@ -2108,13 +2191,19 @@ impl Fsm for PathToolFsmState { if initial_press { responses.add(PathToolMessage::SelectedPointUpdated); tool_data.select_anchor_toggled = true; - tool_data.save_points_before_anchor_toggle(shape_editor.selected_points().cloned().collect()); - shape_editor.select_handles_and_anchor_connected_to_current_handle(&document.network_interface); + + let mut points_to_save = HashMap::new(); + for (layer, state) in &shape_editor.selected_shape_state { + points_to_save.insert(*layer, state.selected_points().collect::>()); + } + tool_data.save_points_before_anchor_toggle(points_to_save); + + shape_editor.select_anchor_and_connected_handles(&document.network_interface); } else if released_from_toggle { responses.add(PathToolMessage::SelectedPointUpdated); tool_data.select_anchor_toggled = false; shape_editor.deselect_all_points(); - shape_editor.select_points_by_manipulator_id(&tool_data.saved_points_before_anchor_select_toggle); + shape_editor.select_points_by_layer_and_id(&tool_data.saved_points_before_anchor_select_toggle); tool_data.remove_saved_points(); } @@ -2129,10 +2218,6 @@ impl Fsm for PathToolFsmState { } if !tool_data.update_colinear(equidistant_state, toggle_colinear_state, tool_action_data.shape_editor, tool_action_data.document, responses) { - if snap_angle_state && lock_angle_state && tool_data.start_sliding_point(tool_action_data.shape_editor, tool_action_data.document) { - return PathToolFsmState::SlidingPoint; - } - tool_data.drag( equidistant_state, lock_angle_state, @@ -2141,6 +2226,7 @@ impl Fsm for PathToolFsmState { tool_action_data.shape_editor, tool_action_data.document, input, + viewport, responses, ); } @@ -2170,7 +2256,7 @@ impl Fsm for PathToolFsmState { } .into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); PathToolFsmState::Dragging(tool_data.dragging_state) } @@ -2200,7 +2286,7 @@ impl Fsm for PathToolFsmState { // When moving the cursor around we want to update the hovered layers let new_hovered_layers: Vec = document - .click_list_no_parents(input) + .click_list_no_parents(input, viewport) .filter(|&layer| { // Filter out artboards and parent holders, and already selected layers !document.network_interface.is_artboard(&layer.to_node(), &[]) @@ -2217,7 +2303,7 @@ impl Fsm for PathToolFsmState { } (PathToolFsmState::Drawing { selection_shape: selection_type }, PathToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - if let Some(offset) = tool_data.auto_panning.shift_viewport(input, responses) { + if let Some(offset) = tool_data.auto_panning.shift_viewport(input, viewport, responses) { tool_data.drag_start_pos += offset; } @@ -2225,7 +2311,7 @@ impl Fsm for PathToolFsmState { } (PathToolFsmState::Dragging(dragging_state), PathToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - if let Some(offset) = tool_data.auto_panning.shift_viewport(input, responses) { + if let Some(offset) = tool_data.auto_panning.shift_viewport(input, viewport, responses) { tool_data.drag_start_pos += offset; } @@ -2297,13 +2383,14 @@ impl Fsm for PathToolFsmState { match selection_shape { SelectionShapeType::Box => { - let bbox = [tool_data.drag_start_pos, previous_mouse]; + let bbox = Rect::new(tool_data.drag_start_pos.x, tool_data.drag_start_pos.y, previous_mouse.x, previous_mouse.y).abs(); + shape_editor.select_all_in_shape( &document.network_interface, SelectionShape::Box(bbox), selection_change, tool_options.path_overlay_mode, - &tool_data.frontier_handles_info, + tool_data.frontier_handles_info.as_ref(), tool_options.path_editing_mode.segment_editing_mode, tool_options.path_editing_mode.point_editing_mode, selection_mode, @@ -2314,7 +2401,7 @@ impl Fsm for PathToolFsmState { SelectionShape::Lasso(&tool_data.lasso_polygon), selection_change, tool_options.path_overlay_mode, - &tool_data.frontier_handles_info, + tool_data.frontier_handles_info.as_ref(), tool_options.path_editing_mode.segment_editing_mode, tool_options.path_editing_mode.point_editing_mode, selection_mode, @@ -2384,7 +2471,7 @@ impl Fsm for PathToolFsmState { if tool_data.drag_start_pos.distance(previous_mouse) < 1e-8 { // Clicked inside or outside the shape then deselect all of the points/segments - if document.click(input).is_some() && tool_data.stored_selection.is_none() { + if document.click(input, viewport).is_some() && tool_data.stored_selection.is_none() { tool_data.stored_selection = Some(shape_editor.selected_shape_state.clone()); } @@ -2393,13 +2480,14 @@ impl Fsm for PathToolFsmState { } else { match selection_shape { SelectionShapeType::Box => { - let bbox = [tool_data.drag_start_pos, previous_mouse]; + let bbox = Rect::new(tool_data.drag_start_pos.x, tool_data.drag_start_pos.y, previous_mouse.x, previous_mouse.y).abs(); + shape_editor.select_all_in_shape( &document.network_interface, SelectionShape::Box(bbox), select_kind, tool_options.path_overlay_mode, - &tool_data.frontier_handles_info, + tool_data.frontier_handles_info.as_ref(), tool_options.path_editing_mode.segment_editing_mode, tool_options.path_editing_mode.point_editing_mode, selection_mode, @@ -2410,7 +2498,7 @@ impl Fsm for PathToolFsmState { SelectionShape::Lasso(&tool_data.lasso_polygon), select_kind, tool_options.path_overlay_mode, - &tool_data.frontier_handles_info, + tool_data.frontier_handles_info.as_ref(), tool_options.path_editing_mode.segment_editing_mode, tool_options.path_editing_mode.point_editing_mode, selection_mode, @@ -2426,13 +2514,15 @@ impl Fsm for PathToolFsmState { tool_data.ghost_outline.clear(); let extend_selection = input.keyboard.get(extend_selection as usize); let drag_occurred = tool_data.drag_start_pos.distance(input.mouse.position) > DRAG_THRESHOLD; + let mut segment_dissolved = false; + let mut point_inserted = false; let nearest_point = shape_editor.find_nearest_visible_point_indices( &document.network_interface, input.mouse.position, SELECTION_THRESHOLD, tool_options.path_overlay_mode, - &tool_data.frontier_handles_info, + tool_data.frontier_handles_info.as_ref(), ); let nearest_segment = tool_data.segment.clone(); @@ -2446,6 +2536,7 @@ impl Fsm for PathToolFsmState { if tool_data.delete_segment_pressed { if let Some(vector) = document.network_interface.compute_modified_vector(segment.layer()) { shape_editor.dissolve_segment(responses, segment.layer(), &vector, segment.segment(), segment.points()); + segment_dissolved = true; } } else { let is_segment_selected = shape_editor @@ -2454,11 +2545,7 @@ impl Fsm for PathToolFsmState { .is_some_and(|state| state.is_segment_selected(segment.segment())); segment.adjusted_insert_and_select(shape_editor, responses, extend_selection, point_mode, is_segment_selected); - tool_data.segment = None; - tool_data.molding_info = None; - tool_data.molding_segment = false; - tool_data.temporary_adjacent_handles_while_molding = None; - return PathToolFsmState::Ready; + point_inserted = true; } } @@ -2466,6 +2553,11 @@ impl Fsm for PathToolFsmState { tool_data.molding_info = None; tool_data.molding_segment = false; tool_data.temporary_adjacent_handles_while_molding = None; + + if segment_dissolved || point_inserted { + responses.add(DocumentMessage::EndTransaction); + return PathToolFsmState::Ready; + } } let segment_mode = tool_options.path_editing_mode.segment_editing_mode; @@ -2483,7 +2575,11 @@ impl Fsm for PathToolFsmState { } if !drag_occurred && !extend_selection && clicked_selected { if tool_data.saved_points_before_anchor_convert_smooth_sharp.is_empty() { - tool_data.saved_points_before_anchor_convert_smooth_sharp = shape_editor.selected_points().copied().collect::>(); + let mut saved_points = HashMap::new(); + for (layer, state) in &shape_editor.selected_shape_state { + saved_points.insert(*layer, state.selected_points().collect::>()); + } + tool_data.saved_points_before_anchor_convert_smooth_sharp = saved_points; } shape_editor.deselect_all_points(); @@ -2577,7 +2673,7 @@ impl Fsm for PathToolFsmState { if tool_data.select_anchor_toggled { shape_editor.deselect_all_points(); - shape_editor.select_points_by_manipulator_id(&tool_data.saved_points_before_anchor_select_toggle); + shape_editor.select_points_by_layer_and_id(&tool_data.saved_points_before_anchor_select_toggle); tool_data.remove_saved_points(); tool_data.select_anchor_toggled = false; } @@ -2598,17 +2694,15 @@ impl Fsm for PathToolFsmState { // Delete key (_, PathToolMessage::Delete) => { // Delete the selected points and clean up overlays - responses.add(DocumentMessage::AddTransaction); let point_mode = tool_options.path_editing_mode.point_editing_mode; let segment_mode = tool_options.path_editing_mode.segment_editing_mode; - let only_segment_mode = segment_mode && !point_mode; - shape_editor.delete_selected_segments(document, responses); + let transaction_started = shape_editor.delete_selected_segments(document, responses, true); if only_segment_mode { - shape_editor.delete_hanging_selected_anchors(document, responses); + shape_editor.delete_hanging_selected_anchors(document, responses, !transaction_started); } else { - shape_editor.delete_selected_points(document, responses); + shape_editor.delete_selected_points(document, responses, !transaction_started); } responses.add(PathToolMessage::SelectionChanged); @@ -2622,6 +2716,23 @@ impl Fsm for PathToolFsmState { shape_editor.delete_point_and_break_path(document, responses); PathToolFsmState::Ready } + (_, PathToolMessage::ClosePath) => { + responses.add(DocumentMessage::AddTransaction); + shape_editor.close_selected_path(document, responses); + responses.add(DocumentMessage::EndTransaction); + + responses.add(OverlaysMessage::Draw); + + self + } + (_, PathToolMessage::StartSlidingPoint) => { + responses.add(DocumentMessage::StartTransaction); + if tool_data.start_sliding_point(shape_editor, document) { + PathToolFsmState::SlidingPoint + } else { + PathToolFsmState::Ready + } + } (_, PathToolMessage::Copy { clipboard }) => { // TODO: Add support for selected segments @@ -2682,10 +2793,13 @@ impl Fsm for PathToolFsmState { } if clipboard == Clipboard::Device { - let mut copy_text = String::from("graphite/vector: "); - copy_text += &serde_json::to_string(&buffer).expect("Could not serialize paste"); - - responses.add(FrontendMessage::TriggerTextCopy { copy_text }); + if let Ok(data) = serde_json::to_string(&buffer) { + responses.add(ClipboardMessage::Write { + content: ClipboardContent::Vector(data), + }); + } else { + log::error!("Failed to serialize nodes for clipboard"); + } } // TODO: Add implementation for internal clipboard @@ -2753,16 +2867,13 @@ impl Fsm for PathToolFsmState { // Create new segment ids and add the segments into the existing vector content let mut segments_map = HashMap::new(); - for (segment_id, bezier, start, end) in new_vector.segment_bezier_iter() { + for (segment_id, bezier, start, end) in new_vector.segment_iter() { let new_segment_id = SegmentId::generate(); segments_map.insert(segment_id, new_segment_id); - let handles = match bezier.handles { - BezierHandles::Linear => [None, None], - BezierHandles::Quadratic { handle } => [Some(handle - bezier.start), None], - BezierHandles::Cubic { handle_start, handle_end } => [Some(handle_start - bezier.start), Some(handle_end - bezier.end)], - }; + let points = pathseg_points(bezier); + let handles = [points.p1.map(|handle| handle - points.p0), points.p2.map(|handle| handle - points.p3)]; let points = [points_map[&start], points_map[&end]]; let modification_type = VectorModificationType::InsertSegment { id: new_segment_id, points, handles }; @@ -2814,8 +2925,8 @@ impl Fsm for PathToolFsmState { } (_, PathToolMessage::DeleteSelected) => { // Delete the selected points and segments - shape_editor.delete_point_and_break_path(document, responses); - shape_editor.delete_selected_segments(document, responses); + let deleted_some_point = shape_editor.delete_point_and_break_path(document, responses); + shape_editor.delete_selected_segments(document, responses, !deleted_some_point); PathToolFsmState::Ready } @@ -2858,7 +2969,7 @@ impl Fsm for PathToolFsmState { let mut segments_map = HashMap::new(); - for (segment_id, bezier, start, end) in old_vector.segment_bezier_iter() { + for (segment_id, bezier, start, end) in old_vector.segment_iter() { let both_ends_selected = layer_selection_state.is_point_selected(ManipulatorPointId::Anchor(start)) && layer_selection_state.is_point_selected(ManipulatorPointId::Anchor(end)); let segment_selected = layer_selection_state.is_segment_selected(segment_id); @@ -2867,11 +2978,8 @@ impl Fsm for PathToolFsmState { let new_id = SegmentId::generate(); segments_map.insert(segment_id, new_id); - let handles = match bezier.handles { - BezierHandles::Linear => [None, None], - BezierHandles::Quadratic { handle } => [Some(handle - bezier.start), None], - BezierHandles::Cubic { handle_start, handle_end } => [Some(handle_start - bezier.start), Some(handle_end - bezier.end)], - }; + let points = pathseg_points(bezier); + let handles = [points.p1.map(|handle| handle - points.p0), points.p2.map(|handle| handle - points.p3)]; let points = [points_map[&start], points_map[&end]]; let modification_type = VectorModificationType::InsertSegment { id: new_id, points, handles }; @@ -2919,7 +3027,7 @@ impl Fsm for PathToolFsmState { let nearest_point = shape_editor.find_nearest_point_indices(&document.network_interface, input.mouse.position, SELECTION_THRESHOLD); let mut get_drill_through_layer = || -> Option { - let drill_through_layers = document.click_list_no_parents(input).collect::>(); + let drill_through_layers = document.click_list_no_parents(input, viewport).collect::>(); if drill_through_layers.is_empty() { tool_data.reset_drill_through_cycle(); None @@ -2936,8 +3044,8 @@ impl Fsm for PathToolFsmState { if !tool_data.double_click_handled && tool_data.drag_start_pos.distance(input.mouse.position) <= DRAG_THRESHOLD { responses.add(DocumentMessage::StartTransaction); - shape_editor.select_points_by_manipulator_id(&tool_data.saved_points_before_anchor_convert_smooth_sharp.iter().copied().collect::>()); - shape_editor.flip_smooth_sharp(&document.network_interface, input.mouse.position, SELECTION_TOLERANCE, responses); + shape_editor.select_points_by_layer_and_id(&tool_data.saved_points_before_anchor_convert_smooth_sharp); + shape_editor.flip_smooth_sharp(&document.network_interface, responses); tool_data.saved_points_before_anchor_convert_smooth_sharp.clear(); responses.add(DocumentMessage::EndTransaction); @@ -3034,14 +3142,28 @@ impl Fsm for PathToolFsmState { PathToolFsmState::Ready } - (_, PathToolMessage::SelectAllAnchors) => { + (_, PathToolMessage::SelectAll) => { shape_editor.select_all_anchors_in_selected_layers(document); + + let point_editing_mode = tool_options.path_editing_mode.point_editing_mode; + let segment_editing_mode = tool_options.path_editing_mode.segment_editing_mode; + + if point_editing_mode { + shape_editor.select_all_anchors_in_selected_layers(document); + } + if segment_editing_mode { + shape_editor.select_all_segments_in_selected_layers(document); + } + responses.add(OverlaysMessage::Draw); PathToolFsmState::Ready } - (_, PathToolMessage::DeselectAllPoints) => { + (_, PathToolMessage::DeselectAllSelected) => { shape_editor.deselect_all_points(); + shape_editor.deselect_all_segments(); + responses.add(OverlaysMessage::Draw); + PathToolFsmState::Ready } (_, PathToolMessage::SelectedPointXChanged { new_x }) => { @@ -3194,9 +3316,15 @@ impl Fsm for PathToolFsmState { colinear, }; - tool_data.make_path_editable_is_allowed = make_path_editable_is_allowed(&document.network_interface, document.metadata()).is_some(); + let old = tool_data.make_path_editable_is_allowed; + tool_data.make_path_editable_is_allowed = make_path_editable_is_allowed(&mut document.network_interface).is_some(); tool_data.update_selection_status(shape_editor, document); tool_data.update_merge_segments_toggle(shape_editor, document, tool_action_data.preferences.vector_meshes); + + if old != tool_data.make_path_editable_is_allowed { + responses.add(MenuBarMessage::SendLayout); + } + self } (_, PathToolMessage::ManipulatorMakeHandlesColinear) => { @@ -3468,18 +3596,16 @@ fn update_dynamic_hints( let at_least_one_point_selected = shape_editor.selected_points().count() >= 1; let mut single_colinear_anchor_selected = false; - if single_anchor_selected { - if let (Some(anchor), Some(layer)) = ( + if single_anchor_selected + && let (Some(anchor), Some(layer)) = ( shape_editor.selected_points().next(), document.network_interface.selected_nodes().selected_layers(document.metadata()).next(), - ) { - if let Some(vector) = document.network_interface.compute_modified_vector(layer) { - single_colinear_anchor_selected = vector.colinear(*anchor) - } - } + ) && let Some(vector) = document.network_interface.compute_modified_vector(layer) + { + single_colinear_anchor_selected = vector.colinear(*anchor) } - let mut drag_selected_hints = vec![HintInfo::mouse(MouseMotion::LmbDrag, "Drag Selected")]; + let drag_selected_hints = vec![HintInfo::mouse(MouseMotion::LmbDrag, "Drag Selected")]; let mut delete_selected_hints = vec![HintInfo::keys([Key::Delete], "Delete Selected")]; if at_least_one_anchor_selected { @@ -3487,10 +3613,6 @@ fn update_dynamic_hints( delete_selected_hints.push(HintInfo::keys([Key::Shift], "Cut Anchor").prepend_plus()); } - if single_colinear_anchor_selected { - drag_selected_hints.push(HintInfo::multi_keys([[Key::Control], [Key::Shift]], "Slide").prepend_plus()); - } - let segment_edit = tool_options.path_editing_mode.segment_editing_mode; let point_edit = tool_options.path_editing_mode.point_editing_mode; @@ -3501,7 +3623,7 @@ fn update_dynamic_hints( position, SELECTION_THRESHOLD, tool_options.path_overlay_mode, - &tool_data.frontier_handles_info, + tool_data.frontier_handles_info.as_ref(), ) .is_some(); @@ -3555,9 +3677,15 @@ fn update_dynamic_hints( let mut groups = vec![ HintGroup(drag_selected_hints), HintGroup(vec![HintInfo::multi_keys([[Key::KeyG], [Key::KeyR], [Key::KeyS]], "Grab/Rotate/Scale Selected")]), - HintGroup(vec![HintInfo::arrow_keys("Nudge Selected"), HintInfo::keys([Key::Shift], "10x").prepend_plus()]), - HintGroup(delete_selected_hints), ]; + + if single_colinear_anchor_selected { + groups.push(HintGroup(vec![HintInfo::multi_keys([[Key::KeyG], [Key::KeyG]], "Slide")])); + } + + groups.push(HintGroup(vec![HintInfo::arrow_keys("Nudge Selected"), HintInfo::keys([Key::Shift], "10x").prepend_plus()])); + groups.push(HintGroup(delete_selected_hints)); + hint_data.append(&mut groups); } @@ -3663,5 +3791,5 @@ fn update_dynamic_hints( ]), PathToolFsmState::SlidingPoint => HintData(vec![HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()])]), }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } diff --git a/editor/src/messages/tool/tool_messages/pen_tool.rs b/editor/src/messages/tool/tool_messages/pen_tool.rs index 00ec54db8..2562f6963 100644 --- a/editor/src/messages/tool/tool_messages/pen_tool.rs +++ b/editor/src/messages/tool/tool_messages/pen_tool.rs @@ -11,11 +11,12 @@ use crate::messages::tool::common_functionality::graph_modification_utils::{self use crate::messages::tool::common_functionality::shape_editor::ShapeState; use crate::messages::tool::common_functionality::snapping::{SnapCache, SnapCandidatePoint, SnapConstraint, SnapData, SnapManager, SnapTypeConfiguration}; use crate::messages::tool::common_functionality::utility_functions::{calculate_segment_angle, closest_point, should_extend}; -use bezier_rs::{Bezier, BezierHandles}; use graph_craft::document::NodeId; use graphene_std::Color; -use graphene_std::vector::misc::{HandleId, ManipulatorPointId}; +use graphene_std::subpath::pathseg_points; +use graphene_std::vector::misc::{HandleId, ManipulatorPointId, dvec2_to_point}; use graphene_std::vector::{NoHashBuilder, PointId, SegmentId, StrokeId, Vector, VectorModificationType}; +use kurbo::{CubicBez, PathSeg}; #[derive(Default, ExtractField)] pub struct PenTool { @@ -49,7 +50,9 @@ pub enum PenToolMessage { Abort, SelectionChanged, WorkingColorChanged, - Overlays(OverlayContext), + Overlays { + context: OverlayContext, + }, // Tool-specific messages @@ -79,7 +82,9 @@ pub enum PenToolMessage { }, Redo, Undo, - UpdateOptions(PenOptionsUpdate), + UpdateOptions { + options: PenOptionsUpdate, + }, RecalculateLatestPointsPosition, RemovePreviousHandle, GRS { @@ -123,7 +128,7 @@ impl ToolMetadata for PenTool { fn icon_name(&self) -> String { "VectorPenTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Pen Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -131,14 +136,19 @@ impl ToolMetadata for PenTool { } } -fn create_weight_widget(line_weight: f64) -> WidgetHolder { +fn create_weight_widget(line_weight: f64) -> WidgetInstance { NumberInput::new(Some(line_weight)) .unit(" px") .label("Weight") .min(0.) .max((1_u64 << f64::MANTISSA_DIGITS) as f64) - .on_update(|number_input: &NumberInput| PenToolMessage::UpdateOptions(PenOptionsUpdate::LineWeight(number_input.value.unwrap())).into()) - .widget_holder() + .on_update(|number_input: &NumberInput| { + PenToolMessage::UpdateOptions { + options: PenOptionsUpdate::LineWeight(number_input.value.unwrap()), + } + .into() + }) + .widget_instance() } impl LayoutHolder for PenTool { @@ -146,55 +156,101 @@ impl LayoutHolder for PenTool { let mut widgets = self.options.fill.create_widgets( "Fill", true, - |_| PenToolMessage::UpdateOptions(PenOptionsUpdate::FillColor(None)).into(), - |color_type: ToolColorType| WidgetCallback::new(move |_| PenToolMessage::UpdateOptions(PenOptionsUpdate::FillColorType(color_type.clone())).into()), - |color: &ColorInput| PenToolMessage::UpdateOptions(PenOptionsUpdate::FillColor(color.value.as_solid().map(|color| color.to_linear_srgb()))).into(), + |_| { + PenToolMessage::UpdateOptions { + options: PenOptionsUpdate::FillColor(None), + } + .into() + }, + |color_type: ToolColorType| { + WidgetCallback::new(move |_| { + PenToolMessage::UpdateOptions { + options: PenOptionsUpdate::FillColorType(color_type.clone()), + } + .into() + }) + }, + |color: &ColorInput| { + PenToolMessage::UpdateOptions { + options: PenOptionsUpdate::FillColor(color.value.as_solid().map(|color| color.to_linear_srgb())), + } + .into() + }, ); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.append(&mut self.options.stroke.create_widgets( "Stroke", true, - |_| PenToolMessage::UpdateOptions(PenOptionsUpdate::StrokeColor(None)).into(), - |color_type: ToolColorType| WidgetCallback::new(move |_| PenToolMessage::UpdateOptions(PenOptionsUpdate::StrokeColorType(color_type.clone())).into()), - |color: &ColorInput| PenToolMessage::UpdateOptions(PenOptionsUpdate::StrokeColor(color.value.as_solid().map(|color| color.to_linear_srgb()))).into(), + |_| { + PenToolMessage::UpdateOptions { + options: PenOptionsUpdate::StrokeColor(None), + } + .into() + }, + |color_type: ToolColorType| { + WidgetCallback::new(move |_| { + PenToolMessage::UpdateOptions { + options: PenOptionsUpdate::StrokeColorType(color_type.clone()), + } + .into() + }) + }, + |color: &ColorInput| { + PenToolMessage::UpdateOptions { + options: PenOptionsUpdate::StrokeColor(color.value.as_solid().map(|color| color.to_linear_srgb())), + } + .into() + }, )); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.push(create_weight_widget(self.options.line_weight)); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.push( RadioInput::new(vec![ RadioEntryData::new("all") .icon("HandleVisibilityAll") - .tooltip("Show all handles regardless of selection") - .on_update(move |_| PenToolMessage::UpdateOptions(PenOptionsUpdate::OverlayModeType(PenOverlayMode::AllHandles)).into()), + .tooltip_label("Show All Handles") + .tooltip_description("Show all handles regardless of selection.") + .on_update(move |_| { + PenToolMessage::UpdateOptions { + options: PenOptionsUpdate::OverlayModeType(PenOverlayMode::AllHandles), + } + .into() + }), RadioEntryData::new("frontier") .icon("HandleVisibilityFrontier") - .tooltip("Show only handles at the frontiers of the segments connected to selected points") - .on_update(move |_| PenToolMessage::UpdateOptions(PenOptionsUpdate::OverlayModeType(PenOverlayMode::FrontierHandles)).into()), + .tooltip_label("Show Frontier Handles") + .tooltip_description("Show only handles at the frontiers of the segments connected to selected points.") + .on_update(move |_| { + PenToolMessage::UpdateOptions { + options: PenOptionsUpdate::OverlayModeType(PenOverlayMode::FrontierHandles), + } + .into() + }), ]) .selected_index(Some(self.options.pen_overlay_mode as u32)) - .widget_holder(), + .widget_instance(), ); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } #[message_handler_data] impl<'a> MessageHandler> for PenTool { fn process_message(&mut self, message: ToolMessage, responses: &mut VecDeque, context: &mut ToolActionMessageContext<'a>) { - let ToolMessage::Pen(PenToolMessage::UpdateOptions(action)) = message else { + let ToolMessage::Pen(PenToolMessage::UpdateOptions { options }) = message else { self.fsm_state.process_event(message, &mut self.tool_data, context, &self.options, responses, true); return; }; - match action { + match options { PenOptionsUpdate::OverlayModeType(overlay_mode_type) => { self.options.pen_overlay_mode = overlay_mode_type; responses.add(OverlaysMessage::Draw); @@ -252,7 +308,7 @@ impl ToolTransition for PenTool { tool_abort: Some(PenToolMessage::Abort.into()), selection_changed: Some(PenToolMessage::SelectionChanged.into()), working_color_changed: Some(PenToolMessage::WorkingColorChanged.into()), - overlay_provider: Some(|overlay_context| PenToolMessage::Overlays(overlay_context).into()), + overlay_provider: Some(|context| PenToolMessage::Overlays { context }.into()), ..Default::default() } } @@ -533,19 +589,11 @@ impl PenToolData { } /// If the user places the anchor on top of the previous anchor, it becomes sharp and the outgoing handle may be dragged. - fn bend_from_previous_point( - &mut self, - snap_data: SnapData, - transform: DAffine2, - layer: LayerNodeIdentifier, - preferences: &PreferencesMessageHandler, - shape_editor: &mut ShapeState, - responses: &mut VecDeque, - ) { + fn bend_from_previous_point(&mut self, snap_data: SnapData, transform: DAffine2, layer: LayerNodeIdentifier, shape_editor: &mut ShapeState, responses: &mut VecDeque) { self.g1_continuous = true; let document = snap_data.document; self.next_handle_start = self.next_point; - let vector = document.network_interface.compute_modified_vector(layer).unwrap(); + let Some(vector) = document.network_interface.compute_modified_vector(layer) else { return }; self.update_handle_type(TargetHandle::FuturePreviewOutHandle); self.handle_mode = HandleMode::ColinearLocked; @@ -558,7 +606,7 @@ impl PenToolData { self.handle_end = None; self.handle_mode = HandleMode::Free; - self.store_clicked_endpoint(document, &transform, snap_data.input, preferences); + self.store_clicked_endpoint(document, &transform, snap_data.input, snap_data.viewport); if self.modifiers.lock_angle { self.set_lock_angle(&vector, id, self.prior_segment); @@ -575,8 +623,8 @@ impl PenToolData { } // Closing path - let closing_path_on_point = self.close_path_on_point(snap_data, &vector, document, preferences, id, &transform); - if !closing_path_on_point && preferences.vector_meshes { + let closing_path_on_point = self.close_path_on_point(snap_data, &vector, document, id, &transform); + if !closing_path_on_point { // Attempt to find nearest segment and close path on segment by creating an anchor point on it let tolerance = crate::consts::SNAP_POINT_TOLERANCE; if let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, transform.transform_point2(self.next_point), tolerance) { @@ -603,8 +651,8 @@ impl PenToolData { } } - fn close_path_on_point(&mut self, snap_data: SnapData, vector: &Vector, document: &DocumentMessageHandler, preferences: &PreferencesMessageHandler, id: PointId, transform: &DAffine2) -> bool { - for id in vector.extendable_points(preferences.vector_meshes).filter(|&point| point != id) { + fn close_path_on_point(&mut self, snap_data: SnapData, vector: &Vector, document: &DocumentMessageHandler, id: PointId, transform: &DAffine2) -> bool { + for id in vector.anchor_points().filter(|&point| point != id) { let Some(pos) = vector.point_domain.position_from_id(id) else { continue }; let transformed_distance_between_squared = transform.transform_point2(pos).distance_squared(transform.transform_point2(self.next_point)); let snap_point_tolerance_squared = crate::consts::SNAP_POINT_TOLERANCE.powi(2); @@ -614,7 +662,7 @@ impl PenToolData { self.handle_end_offset = None; self.path_closed = true; self.next_handle_start = self.next_point; - self.store_clicked_endpoint(document, transform, snap_data.input, preferences); + self.store_clicked_endpoint(document, transform, snap_data.input, snap_data.viewport); self.handle_mode = HandleMode::Free; if let (true, Some(prior_endpoint)) = (self.modifiers.lock_angle, self.prior_segment_endpoint) { self.set_lock_angle(vector, prior_endpoint, self.prior_segment); @@ -626,7 +674,7 @@ impl PenToolData { false } - fn finish_placing_handle(&mut self, snap_data: SnapData, transform: DAffine2, preferences: &PreferencesMessageHandler, responses: &mut VecDeque) -> Option { + fn finish_placing_handle(&mut self, snap_data: SnapData, transform: DAffine2, responses: &mut VecDeque) -> Option { let document = snap_data.document; let next_handle_start = self.next_handle_start; let handle_start = self.latest_point()?.handle_start; @@ -637,12 +685,12 @@ impl PenToolData { let Some(handle_end) = self.handle_end else { responses.add(DocumentMessage::EndTransaction); self.handle_end = Some(next_handle_start); - self.place_anchor(snap_data, transform, mouse, preferences, responses); + self.place_anchor(snap_data, transform, mouse, responses); self.latest_point_mut()?.handle_start = next_handle_start; return None; }; let next_point = self.next_point; - self.place_anchor(snap_data, transform, mouse, preferences, responses); + self.place_anchor(snap_data, transform, mouse, responses); let handles = [handle_start - self.latest_point()?.pos, handle_end - next_point].map(Some); // Get close path @@ -653,7 +701,7 @@ impl PenToolData { let vector = document.network_interface.compute_modified_vector(layer)?; let start = self.latest_point()?.id; let transform = document.metadata().document_to_viewport * transform; - for id in vector.extendable_points(preferences.vector_meshes).filter(|&point| point != start) { + for id in vector.anchor_points().filter(|&point| point != start) { let Some(pos) = vector.point_domain.position_from_id(id) else { continue }; let transformed_distance_between_squared = transform.transform_point2(pos).distance_squared(transform.transform_point2(next_point)); let snap_point_tolerance_squared = crate::consts::SNAP_POINT_TOLERANCE.powi(2); @@ -674,8 +722,8 @@ impl PenToolData { // Store the segment let id = SegmentId::generate(); - if self.path_closed { - if let Some((handles, handle1_pos)) = match self.get_opposite_handle_type(TargetHandle::PreviewInHandle, &vector) { + if self.path_closed + && let Some((handles, handle1_pos)) = match self.get_opposite_handle_type(TargetHandle::PreviewInHandle, &vector) { TargetHandle::PriorOutHandle(segment) => { let handles = [HandleId::end(id), HandleId::primary(segment)]; let handle1_pos = handles[1].to_manipulator_point().get_position(&vector); @@ -688,15 +736,14 @@ impl PenToolData { } _ => None, } { - let angle = (handle_end - next_point).angle_to(handle1_pos - next_point); - let pi = std::f64::consts::PI; - let colinear = (angle - pi).abs() < 1e-6 || (angle + pi).abs() < 1e-6; - responses.add(GraphOperationMessage::Vector { - layer, - modification_type: VectorModificationType::SetG1Continuous { handles, enabled: colinear }, - }); - self.cleanup(responses); - } + let angle = (handle_end - next_point).angle_to(handle1_pos - next_point); + let pi = std::f64::consts::PI; + let colinear = (angle - pi).abs() < 1e-6 || (angle + pi).abs() < 1e-6; + responses.add(GraphOperationMessage::Vector { + layer, + modification_type: VectorModificationType::SetG1Continuous { handles, enabled: colinear }, + }); + self.cleanup(responses); } self.prior_segment = Some(id); @@ -748,13 +795,14 @@ impl PenToolData { mouse: &DVec2, vector: &Vector, input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, ) -> Option { let reference_handle = if self.path_closed { TargetHandle::PreviewInHandle } else { TargetHandle::FuturePreviewOutHandle }; let end_handle = self.get_opposite_handle_type(reference_handle, vector); let end_handle_pos = self.target_handle_position(end_handle, vector); let ref_pos = self.target_handle_position(reference_handle, vector)?; let snap = &mut self.snap_manager; - let snap_data = SnapData::new_snap_cache(snap_data.document, input, &self.snap_cache); + let snap_data = SnapData::new_snap_cache(snap_data.document, input, viewport, &self.snap_cache); let handle_start_offset = self.handle_start_offset.unwrap_or(DVec2::ZERO); let document_pos = viewport_to_document.transform_point2(*mouse + handle_start_offset); @@ -883,10 +931,10 @@ impl PenToolData { } fn move_anchor_and_handles(&mut self, delta: DVec2, layer: LayerNodeIdentifier, responses: &mut VecDeque, vector: &Vector) { - if self.handle_end.is_none() { - if let Some(latest_pt) = self.latest_point_mut() { - latest_pt.pos += delta; - } + if self.handle_end.is_none() + && let Some(latest_pt) = self.latest_point_mut() + { + latest_pt.pos += delta; } let Some(end_point) = self.prior_segment_endpoint else { return }; @@ -910,6 +958,7 @@ impl PenToolData { } } + #[allow(clippy::too_many_arguments)] fn drag_handle( &mut self, snap_data: SnapData, @@ -918,6 +967,7 @@ impl PenToolData { responses: &mut VecDeque, layer: Option, input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, ) -> Option { let colinear = (self.handle_mode == HandleMode::ColinearEquidistant && self.modifiers.break_handle) || (self.handle_mode == HandleMode::ColinearLocked && !self.modifiers.break_handle); let document = snap_data.document; @@ -928,7 +978,7 @@ impl PenToolData { // Handles pressing Space to drag anchor and its handles if self.modifiers.move_anchor_with_handles { - let Some(delta) = self.space_anchor_handle_snap(&viewport_to_document, &transform, &snap_data, &mouse, &vector, input) else { + let Some(delta) = self.space_anchor_handle_snap(&viewport_to_document, &transform, &snap_data, &mouse, &vector, input, viewport) else { return Some(PenToolFsmState::DraggingHandle(self.handle_mode)); }; @@ -1065,7 +1115,7 @@ impl PenToolData { self.update_target_handle_pos(opposite_handle, self.next_point, responses, new_handle_position, layer); } - fn place_anchor(&mut self, snap_data: SnapData, transform: DAffine2, mouse: DVec2, preferences: &PreferencesMessageHandler, responses: &mut VecDeque) -> Option { + fn place_anchor(&mut self, snap_data: SnapData, transform: DAffine2, mouse: DVec2, responses: &mut VecDeque) -> Option { let document = snap_data.document; let relative = if self.path_closed { None } else { self.latest_point().map(|point| point.pos) }; @@ -1076,7 +1126,7 @@ impl PenToolData { let layer = selected_layers.next().filter(|_| selected_layers.next().is_none()).or(self.current_layer)?; let vector = document.network_interface.compute_modified_vector(layer)?; let transform = document.metadata().document_to_viewport * transform; - for point in vector.extendable_points(preferences.vector_meshes) { + for point in vector.anchor_points() { let Some(pos) = vector.point_domain.position_from_id(point) else { continue }; let transformed_distance_between_squared = transform.transform_point2(pos).distance_squared(transform.transform_point2(self.next_point)); let snap_point_tolerance_squared = crate::consts::SNAP_POINT_TOLERANCE.powi(2); @@ -1153,10 +1203,11 @@ impl PenToolData { snap.update_indicator(snapped); } - if let Some(relative) = relative.map(|layer| transform.transform_point2(layer)) { - if (relative - document_pos) != DVec2::ZERO && (relative - document_pos).length_squared() > f64::EPSILON * 100. { - self.angle = -(relative - document_pos).angle_to(DVec2::X) - } + if let Some(relative) = relative.map(|layer| transform.transform_point2(layer)) + && (relative - document_pos) != DVec2::ZERO + && (relative - document_pos).length_squared() > f64::EPSILON * 100. + { + self.angle = -(relative - document_pos).angle_to(DVec2::X) } transform.inverse().transform_point2(document_pos) @@ -1167,44 +1218,42 @@ impl PenToolData { &mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, + viewport: &ViewportMessageHandler, responses: &mut VecDeque, tool_options: &PenOptions, append: bool, - preferences: &PreferencesMessageHandler, shape_editor: &mut ShapeState, ) { let point = SnapCandidatePoint::handle(document.metadata().document_to_viewport.inverse().transform_point2(input.mouse.position)); - let snapped = self.snap_manager.free_snap(&SnapData::new(document, input), &point, SnapTypeConfiguration::default()); - let viewport = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); + let snapped = self.snap_manager.free_snap(&SnapData::new(document, input, viewport), &point, SnapTypeConfiguration::default()); + let viewport_vec = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); self.handle_type = TargetHandle::FuturePreviewOutHandle; let selected_nodes = document.network_interface.selected_nodes(); self.handle_end = None; let tolerance = crate::consts::SNAP_POINT_TOLERANCE; - let extension_choice = should_extend(document, viewport, tolerance, selected_nodes.selected_layers(document.metadata()), preferences); + let extension_choice = should_extend(document, viewport_vec, tolerance, selected_nodes.selected_layers(document.metadata())); if let Some((layer, point, position)) = extension_choice { self.current_layer = Some(layer); self.extend_existing_path(document, layer, point, position); return; - } else if preferences.vector_meshes { - if let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, viewport, tolerance) { - let (point, segments) = closest_segment.adjusted_insert(responses); - let layer = closest_segment.layer(); - let position = closest_segment.closest_point_document(); + } else if let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, viewport_vec, tolerance) { + let (point, segments) = closest_segment.adjusted_insert(responses); + let layer = closest_segment.layer(); + let position = closest_segment.closest_point_document(); - // Setting any one of the new segments created as the previous segment - self.prior_segment_endpoint = Some(point); - self.prior_segment_layer = Some(layer); - self.prior_segments = Some(segments.to_vec()); + // Setting any one of the new segments created as the previous segment + self.prior_segment_endpoint = Some(point); + self.prior_segment_layer = Some(layer); + self.prior_segments = Some(segments.to_vec()); - self.extend_existing_path(document, layer, point, position); - return; - } + self.extend_existing_path(document, layer, point, position); + return; } if append { - if let Some((layer, point, _)) = closest_point(document, viewport, tolerance, document.metadata().all_layers(), |_| false, preferences) { + if let Some((layer, point, _)) = closest_point(document, viewport_vec, tolerance, document.metadata().all_layers(), |_| false) { let vector = document.network_interface.compute_modified_vector(layer).unwrap(); let segment = vector.all_connected(point).collect::>().first().map(|s| s.segment); @@ -1217,12 +1266,12 @@ impl PenToolData { let existing_layer = selected_layers_except_artboards.next().filter(|_| selected_layers_except_artboards.next().is_none()); if let Some(layer) = existing_layer { // Add point to existing layer - responses.add(PenToolMessage::AddPointLayerPosition { layer, viewport }); + responses.add(PenToolMessage::AddPointLayerPosition { layer, viewport: viewport_vec }); return; } } - if let Some((layer, point, _position)) = closest_point(document, viewport, tolerance, document.metadata().all_layers(), |_| false, preferences) { + if let Some((layer, point, _position)) = closest_point(document, viewport_vec, tolerance, document.metadata().all_layers(), |_| false) { let vector = document.network_interface.compute_modified_vector(layer).unwrap(); let segment = vector.all_connected(point).collect::>().first().map(|s| s.segment); self.handle_mode = HandleMode::Free; @@ -1236,7 +1285,7 @@ impl PenToolData { let node_type = resolve_document_node_type("Path").expect("Path node does not exist"); let nodes = vec![(NodeId(0), node_type.default_node_template())]; - let parent = document.new_layer_bounding_artboard(input); + let parent = document.new_layer_bounding_artboard(input, viewport); let layer = graph_modification_utils::new_custom(NodeId::new(), nodes, parent, responses); self.current_layer = Some(layer); tool_options.fill.apply_fill(layer, responses); @@ -1247,7 +1296,7 @@ impl PenToolData { // It is necessary to defer this until the transform of the layer can be accurately computed (quite hacky) responses.add(DeferMessage::AfterGraphRun { - messages: vec![PenToolMessage::AddPointLayerPosition { layer, viewport }.into()], + messages: vec![PenToolMessage::AddPointLayerPosition { layer, viewport: viewport_vec }.into()], }); responses.add(NodeGraphMessage::RunDocumentGraph); } @@ -1257,7 +1306,7 @@ impl PenToolData { let vector = document.network_interface.compute_modified_vector(layer); let (handle_start, in_segment) = if let Some(vector) = &vector { vector - .segment_bezier_iter() + .segment_iter() .find_map(|(segment_id, bezier, start, end)| { let is_end = point == end; let is_start = point == start; @@ -1265,15 +1314,11 @@ impl PenToolData { return None; } - let handle = match bezier.handles { - BezierHandles::Cubic { handle_start, handle_end, .. } => { - if is_start { - handle_start - } else { - handle_end - } - } - BezierHandles::Quadratic { handle } => handle, + let points = pathseg_points(bezier); + let handle = match (points.p1, points.p2) { + (Some(p1), Some(_)) if is_start => p1, + (Some(_), Some(p2)) if !is_start => p2, + (Some(p1), None) | (None, Some(p1)) => p1, _ => return None, }; Some((segment_id, is_end, handle)) @@ -1310,14 +1355,14 @@ impl PenToolData { } // Stores the segment and point ID of the clicked endpoint - fn store_clicked_endpoint(&mut self, document: &DocumentMessageHandler, transform: &DAffine2, input: &InputPreprocessorMessageHandler, preferences: &PreferencesMessageHandler) { + fn store_clicked_endpoint(&mut self, document: &DocumentMessageHandler, transform: &DAffine2, input: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) { let mut manipulators = HashMap::with_hasher(NoHashBuilder); let mut unselected = Vec::new(); let mut layer_manipulators = HashSet::with_hasher(NoHashBuilder); let point = SnapCandidatePoint::handle(document.metadata().document_to_viewport.inverse().transform_point2(input.mouse.position)); - let snapped = self.snap_manager.free_snap(&SnapData::new(document, input), &point, SnapTypeConfiguration::default()); + let snapped = self.snap_manager.free_snap(&SnapData::new(document, input, viewport), &point, SnapTypeConfiguration::default()); let viewport = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); let tolerance = crate::consts::SNAP_POINT_TOLERANCE; @@ -1326,7 +1371,7 @@ impl PenToolData { self.prior_segment_layer = None; self.prior_segments = None; - if let Some((layer, point, _position)) = closest_point(document, viewport, tolerance, document.metadata().all_layers(), |_| false, preferences) { + if let Some((layer, point, _position)) = closest_point(document, viewport, tolerance, document.metadata().all_layers(), |_| false) { self.prior_segment_endpoint = Some(point); self.prior_segment_layer = Some(layer); let vector = document.network_interface.compute_modified_vector(layer).unwrap(); @@ -1405,7 +1450,7 @@ impl Fsm for PenToolFsmState { global_tool_data, input, shape_editor, - preferences, + viewport, .. } = tool_action_data; let selected_nodes = document.network_interface.selected_nodes(); @@ -1550,7 +1595,7 @@ impl Fsm for PenToolFsmState { responses.add(OverlaysMessage::Draw); self } - (PenToolFsmState::Ready, PenToolMessage::Overlays(mut overlay_context)) => { + (PenToolFsmState::Ready, PenToolMessage::Overlays { context: mut overlay_context }) => { match tool_options.pen_overlay_mode { PenOverlayMode::AllHandles => { path_overlays(document, DrawHandles::All, shape_editor, &mut overlay_context); @@ -1563,22 +1608,20 @@ impl Fsm for PenToolFsmState { // If not check if there is a closest segment within threshold, if yes then draw overlay let tolerance = crate::consts::SNAP_POINT_TOLERANCE; let point = SnapCandidatePoint::handle(document.metadata().document_to_viewport.inverse().transform_point2(input.mouse.position)); - let snapped = tool_data.snap_manager.free_snap(&SnapData::new(document, input), &point, SnapTypeConfiguration::default()); - let viewport = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); + let snapped = tool_data.snap_manager.free_snap(&SnapData::new(document, input, viewport), &point, SnapTypeConfiguration::default()); + let viewport_vec = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); - let close_to_point = closest_point(document, viewport, tolerance, document.metadata().all_layers(), |_| false, preferences).is_some(); - if preferences.vector_meshes && !close_to_point { - if let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, viewport, tolerance) { - let pos = closest_segment.closest_point_to_viewport(); - let perp = closest_segment.calculate_perp(document); - overlay_context.manipulator_anchor(pos, true, None); - overlay_context.line(pos - perp * SEGMENT_OVERLAY_SIZE, pos + perp * SEGMENT_OVERLAY_SIZE, Some(COLOR_OVERLAY_BLUE), None); - } + let close_to_point = closest_point(document, viewport_vec, tolerance, document.metadata().all_layers(), |_| false).is_some(); + if !close_to_point && let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, viewport_vec, tolerance) { + let pos = closest_segment.closest_point_to_viewport(); + let perp = closest_segment.calculate_perp(document); + overlay_context.manipulator_anchor(pos, true, None); + overlay_context.line(pos - perp * SEGMENT_OVERLAY_SIZE, pos + perp * SEGMENT_OVERLAY_SIZE, Some(COLOR_OVERLAY_BLUE), None); } - tool_data.snap_manager.draw_overlays(SnapData::new(document, input), &mut overlay_context); + tool_data.snap_manager.draw_overlays(SnapData::new(document, input, viewport), &mut overlay_context); self } - (_, PenToolMessage::Overlays(mut overlay_context)) => { + (_, PenToolMessage::Overlays { context: mut overlay_context }) => { let display_anchors = overlay_context.visibility_settings.anchors(); let display_handles = overlay_context.visibility_settings.handles(); @@ -1599,9 +1642,8 @@ impl Fsm for PenToolFsmState { let handle_start = tool_data.latest_point().map(|point| transform.transform_point2(point.handle_start)); if let (Some((start, handle_start)), Some(handle_end)) = (tool_data.latest_point().map(|point| (point.pos, point.handle_start)), tool_data.handle_end) { - let handles = BezierHandles::Cubic { handle_start, handle_end }; let end = tool_data.next_point; - let bezier = Bezier { start, handles, end }; + let bezier = PathSeg::Cubic(CubicBez::new(dvec2_to_point(start), dvec2_to_point(handle_start), dvec2_to_point(handle_end), dvec2_to_point(end))); if (end - start).length_squared() > f64::EPSILON { // Draw the curve for the currently-being-placed segment overlay_context.outline_bezier(bezier, transform); @@ -1618,17 +1660,19 @@ impl Fsm for PenToolFsmState { path_overlays(document, DrawHandles::All, shape_editor, &mut overlay_context); } PenOverlayMode::FrontierHandles => { - if let Some(latest_segment) = tool_data.prior_segment { - path_overlays(document, DrawHandles::SelectedAnchors(vec![latest_segment]), shape_editor, &mut overlay_context); - } - // If a vector mesh then there can be more than one prior segments - else if let Some(segments) = tool_data.prior_segments.clone() { - if preferences.vector_meshes { - path_overlays(document, DrawHandles::SelectedAnchors(segments), shape_editor, &mut overlay_context); + if let Some(layer) = tool_data.current_layer { + if let Some(latest_segment) = tool_data.prior_segment { + let selected_anchors_data = HashMap::from([(layer, vec![latest_segment])]); + path_overlays(document, DrawHandles::SelectedAnchors(selected_anchors_data), shape_editor, &mut overlay_context); } - } else { - path_overlays(document, DrawHandles::None, shape_editor, &mut overlay_context); - }; + // If a vector mesh then there can be more than one prior segments + else if let Some(segments) = tool_data.prior_segments.clone() { + let selected_anchors_data = HashMap::from([(layer, segments)]); + path_overlays(document, DrawHandles::SelectedAnchors(selected_anchors_data), shape_editor, &mut overlay_context); + } else { + path_overlays(document, DrawHandles::None, shape_editor, &mut overlay_context); + }; + } } } @@ -1687,19 +1731,17 @@ impl Fsm for PenToolFsmState { overlay_context.manipulator_anchor(next_anchor, false, None); } - if self == PenToolFsmState::PlacingAnchor && preferences.vector_meshes { + if self == PenToolFsmState::PlacingAnchor { let tolerance = crate::consts::SNAP_POINT_TOLERANCE; let point = SnapCandidatePoint::handle(document.metadata().document_to_viewport.inverse().transform_point2(input.mouse.position)); - let snapped = tool_data.snap_manager.free_snap(&SnapData::new(document, input), &point, SnapTypeConfiguration::default()); + let snapped = tool_data.snap_manager.free_snap(&SnapData::new(document, input, viewport), &point, SnapTypeConfiguration::default()); let viewport = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); - let close_to_point = closest_point(document, viewport, tolerance, document.metadata().all_layers(), |_| false, preferences).is_some(); - if !close_to_point { - if let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, viewport, tolerance) { - let pos = closest_segment.closest_point_to_viewport(); - let perp = closest_segment.calculate_perp(document); - overlay_context.manipulator_anchor(pos, true, None); - overlay_context.line(pos - perp * SEGMENT_OVERLAY_SIZE, pos + perp * SEGMENT_OVERLAY_SIZE, Some(COLOR_OVERLAY_BLUE), None); - } + let close_to_point = closest_point(document, viewport, tolerance, document.metadata().all_layers(), |_| false).is_some(); + if !close_to_point && let Some(closest_segment) = shape_editor.upper_closest_segment(&document.network_interface, viewport, tolerance) { + let pos = closest_segment.closest_point_to_viewport(); + let perp = closest_segment.calculate_perp(document); + overlay_context.manipulator_anchor(pos, true, None); + overlay_context.line(pos - perp * SEGMENT_OVERLAY_SIZE, pos + perp * SEGMENT_OVERLAY_SIZE, Some(COLOR_OVERLAY_BLUE), None); } } @@ -1713,7 +1755,7 @@ impl Fsm for PenToolFsmState { if let Some(layer) = layer && let Some(mut vector) = document.network_interface.compute_modified_vector(layer) { - let closest_point = vector.extendable_points(preferences.vector_meshes).filter(|&id| id != start).find(|&id| { + let closest_point = vector.anchor_points().filter(|&id| id != start).find(|&id| { vector.point_domain.position_from_id(id).is_some_and(|pos| { let dist_sq = transform.transform_point2(pos).distance_squared(transform.transform_point2(next_point)); dist_sq < crate::consts::SNAP_POINT_TOLERANCE.powi(2) @@ -1723,7 +1765,7 @@ impl Fsm for PenToolFsmState { // We have the point. Join the 2 vertices and check if any path is closed. if let Some(end) = closest_point { let segment_id = SegmentId::generate(); - vector.push(segment_id, start, end, BezierHandles::Cubic { handle_start, handle_end }, StrokeId::ZERO); + vector.push(segment_id, start, end, (Some(handle_start), Some(handle_end)), StrokeId::ZERO); let grouped_segments = vector.auto_join_paths(); let closed_paths = grouped_segments.iter().filter(|path| path.is_closed() && path.contains(segment_id)); @@ -1752,15 +1794,14 @@ impl Fsm for PenToolFsmState { } // Draw the overlays that visualize current snapping - tool_data.snap_manager.draw_overlays(SnapData::new(document, input), &mut overlay_context); + tool_data.snap_manager.draw_overlays(SnapData::new(document, input, viewport), &mut overlay_context); self } (_, PenToolMessage::WorkingColorChanged) => { - responses.add(PenToolMessage::UpdateOptions(PenOptionsUpdate::WorkingColors( - Some(global_tool_data.primary_color), - Some(global_tool_data.secondary_color), - ))); + responses.add(PenToolMessage::UpdateOptions { + options: PenOptionsUpdate::WorkingColors(Some(global_tool_data.primary_color), Some(global_tool_data.secondary_color)), + }); self } (PenToolFsmState::Ready, PenToolMessage::DragStart { append_to_selected }) => { @@ -1770,8 +1811,8 @@ impl Fsm for PenToolFsmState { // Get the closest point and the segment it is on let append = input.keyboard.key(append_to_selected); - tool_data.store_clicked_endpoint(document, &transform, input, preferences); - tool_data.create_initial_point(document, input, responses, tool_options, append, preferences, shape_editor); + tool_data.store_clicked_endpoint(document, &transform, input, viewport); + tool_data.create_initial_point(document, input, viewport, responses, tool_options, append, shape_editor); // Enter the dragging handle state while the mouse is held down, allowing the user to move the mouse and position the handle PenToolFsmState::DraggingHandle(tool_data.handle_mode) @@ -1787,16 +1828,16 @@ impl Fsm for PenToolFsmState { } (PenToolFsmState::PlacingAnchor, PenToolMessage::DragStart { append_to_selected }) => { let point = SnapCandidatePoint::handle(document.metadata().document_to_viewport.inverse().transform_point2(input.mouse.position)); - let snapped = tool_data.snap_manager.free_snap(&SnapData::new(document, input), &point, SnapTypeConfiguration::default()); - let viewport = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); + let snapped = tool_data.snap_manager.free_snap(&SnapData::new(document, input, viewport), &point, SnapTypeConfiguration::default()); + let viewport_vec = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); // Early return if the buffer was started and this message is being run again after the buffer (so that place_anchor updates the state with the newly merged vector) if tool_data.buffering_merged_vector { if let Some(layer) = layer { tool_data.buffering_merged_vector = false; tool_data.handle_mode = HandleMode::ColinearLocked; - tool_data.bend_from_previous_point(SnapData::new(document, input), transform, layer, preferences, shape_editor, responses); - tool_data.place_anchor(SnapData::new(document, input), transform, input.mouse.position, preferences, responses); + tool_data.bend_from_previous_point(SnapData::new(document, input, viewport), transform, layer, shape_editor, responses); + tool_data.place_anchor(SnapData::new(document, input, viewport), transform, input.mouse.position, responses); } tool_data.buffering_merged_vector = false; PenToolFsmState::DraggingHandle(tool_data.handle_mode) @@ -1811,7 +1852,7 @@ impl Fsm for PenToolFsmState { let layers = LayerNodeIdentifier::ROOT_PARENT .descendants(document.metadata()) .filter(|layer| !document.network_interface.is_artboard(&layer.to_node(), &[])); - if let Some((other_layer, _, _)) = should_extend(document, viewport, crate::consts::SNAP_POINT_TOLERANCE, layers, preferences) { + if let Some((other_layer, _, _)) = should_extend(document, viewport_vec, crate::consts::SNAP_POINT_TOLERANCE, layers) { let selected_nodes = document.network_interface.selected_nodes(); let mut selected_layers = selected_nodes.selected_layers(document.metadata()); if let Some(current_layer) = selected_layers @@ -1841,7 +1882,7 @@ impl Fsm for PenToolFsmState { (PenToolFsmState::DraggingHandle(_), PenToolMessage::DragStop) => { tool_data.cleanup_target_selections(shape_editor, layer, document, responses); tool_data - .finish_placing_handle(SnapData::new(document, input), transform, preferences, responses) + .finish_placing_handle(SnapData::new(document, input, viewport), transform, responses) .unwrap_or(PenToolFsmState::PlacingAnchor) } ( @@ -1862,7 +1903,7 @@ impl Fsm for PenToolFsmState { move_anchor_with_handles: input.keyboard.key(move_anchor_with_handles), }; - let snap_data = SnapData::new(document, input); + let snap_data = SnapData::new(document, input, viewport); if tool_data.modifiers.colinear && !tool_data.toggle_colinear_debounce { tool_data.handle_mode = match tool_data.handle_mode { HandleMode::Free => { @@ -1910,7 +1951,7 @@ impl Fsm for PenToolFsmState { } let state = tool_data - .drag_handle(snap_data, transform, input.mouse.position, responses, layer, input) + .drag_handle(snap_data, transform, input.mouse.position, responses, layer, input, viewport) .unwrap_or(PenToolFsmState::Ready); if tool_data.handle_swapped { @@ -1936,7 +1977,7 @@ impl Fsm for PenToolFsmState { } .into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); state } @@ -1960,7 +2001,7 @@ impl Fsm for PenToolFsmState { move_anchor_with_handles: input.keyboard.key(move_anchor_with_handles), }; let state = tool_data - .place_anchor(SnapData::new(document, input), transform, input.mouse.position, preferences, responses) + .place_anchor(SnapData::new(document, input, viewport), transform, input.mouse.position, responses) .unwrap_or(PenToolFsmState::Ready); // Auto-panning @@ -1982,7 +2023,7 @@ impl Fsm for PenToolFsmState { } .into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); state } @@ -2011,13 +2052,13 @@ impl Fsm for PenToolFsmState { colinear: input.keyboard.key(colinear), move_anchor_with_handles: input.keyboard.key(move_anchor_with_handles), }; - tool_data.snap_manager.preview_draw(&SnapData::new(document, input), input.mouse.position); + tool_data.snap_manager.preview_draw(&SnapData::new(document, input, viewport), input.mouse.position); responses.add(OverlaysMessage::Draw); self } (PenToolFsmState::DraggingHandle(mode), PenToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - let _ = tool_data.auto_panning.shift_viewport(input, responses); + let _ = tool_data.auto_panning.shift_viewport(input, viewport, responses); PenToolFsmState::DraggingHandle(mode) } @@ -2026,7 +2067,7 @@ impl Fsm for PenToolFsmState { return self; } // Auto-panning - let _ = tool_data.auto_panning.shift_viewport(input, responses); + let _ = tool_data.auto_panning.shift_viewport(input, viewport, responses); PenToolFsmState::PlacingAnchor } @@ -2067,7 +2108,7 @@ impl Fsm for PenToolFsmState { // Confirm to end path if let Some((vector, layer)) = layer.and_then(|layer| document.network_interface.compute_modified_vector(layer)).zip(layer) { let single_point_in_layer = vector.point_domain.ids().len() == 1; - tool_data.finish_placing_handle(SnapData::new(document, input), transform, preferences, responses); + tool_data.finish_placing_handle(SnapData::new(document, input, viewport), transform, responses); let latest_points = tool_data.latest_points.len() == 1; if latest_points && single_point_in_layer { @@ -2114,7 +2155,7 @@ impl Fsm for PenToolFsmState { PenToolFsmState::Ready } else { tool_data - .place_anchor(SnapData::new(document, input), transform, input.mouse.position, preferences, responses) + .place_anchor(SnapData::new(document, input, viewport), transform, input.mouse.position, responses) .unwrap_or(PenToolFsmState::Ready) } } @@ -2145,7 +2186,7 @@ impl Fsm for PenToolFsmState { if tool_data.point_index > 0 { tool_data.point_index -= 1; tool_data - .place_anchor(SnapData::new(document, input), transform, input.mouse.position, preferences, responses) + .place_anchor(SnapData::new(document, input, viewport), transform, input.mouse.position, responses) .unwrap_or(PenToolFsmState::PlacingAnchor) } else { responses.add(PenToolMessage::Abort); @@ -2154,7 +2195,7 @@ impl Fsm for PenToolFsmState { } (_, PenToolMessage::Redo) => { tool_data.point_index = (tool_data.point_index + 1).min(tool_data.latest_points.len().saturating_sub(1)); - tool_data.place_anchor(SnapData::new(document, input), transform, input.mouse.position, preferences, responses); + tool_data.place_anchor(SnapData::new(document, input, viewport), transform, input.mouse.position, responses); match tool_data.point_index { 0 => PenToolFsmState::Ready, _ => PenToolFsmState::PlacingAnchor, @@ -2223,7 +2264,7 @@ impl Fsm for PenToolFsmState { } }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } fn update_cursor(&self, responses: &mut VecDeque) { diff --git a/editor/src/messages/tool/tool_messages/select_tool.rs b/editor/src/messages/tool/tool_messages/select_tool.rs index 31bd2c3a4..28ecbdfcb 100644 --- a/editor/src/messages/tool/tool_messages/select_tool.rs +++ b/editor/src/messages/tool/tool_messages/select_tool.rs @@ -20,12 +20,12 @@ use crate::messages::tool::common_functionality::shape_editor::SelectionShapeTyp use crate::messages::tool::common_functionality::snapping::{self, SnapCandidatePoint, SnapData, SnapManager}; use crate::messages::tool::common_functionality::transformation_cage::*; use crate::messages::tool::common_functionality::utility_functions::{resize_bounds, rotate_bounds, skew_bounds, text_bounding_box, transforming_transform_cage}; -use bezier_rs::Subpath; use glam::DMat2; use graph_craft::document::NodeId; use graphene_std::path_bool::BooleanOperation; use graphene_std::renderer::Quad; use graphene_std::renderer::Rect; +use graphene_std::subpath::Subpath; use graphene_std::transform::ReferencePoint; use std::fmt; @@ -78,7 +78,9 @@ pub struct SelectToolPointerKeys { pub enum SelectToolMessage { // Standard messages Abort, - Overlays(OverlayContext), + Overlays { + context: OverlayContext, + }, // Tool-specific messages DragStart { @@ -92,10 +94,17 @@ pub enum SelectToolMessage { remove_from_selection: Key, }, EditLayer, + EditLayerExec, Enter, - PointerMove(SelectToolPointerKeys), - PointerOutsideViewport(SelectToolPointerKeys), - SelectOptions(SelectOptionsUpdate), + PointerMove { + modifier_keys: SelectToolPointerKeys, + }, + PointerOutsideViewport { + modifier_keys: SelectToolPointerKeys, + }, + SelectOptions { + options: SelectOptionsUpdate, + }, SetPivot { position: ReferencePoint, }, @@ -113,7 +122,7 @@ impl ToolMetadata for SelectTool { fn icon_name(&self) -> String { "GeneralSelectTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Select Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -122,33 +131,35 @@ impl ToolMetadata for SelectTool { } impl SelectTool { - fn deep_selection_widget(&self) -> WidgetHolder { + fn deep_selection_widget(&self) -> WidgetInstance { let layer_selection_behavior_entries = [NestedSelectionBehavior::Shallowest, NestedSelectionBehavior::Deepest] .iter() .map(|mode| { - MenuListEntry::new(format!("{mode:?}")) - .label(mode.to_string()) - .on_commit(move |_| SelectToolMessage::SelectOptions(SelectOptionsUpdate::NestedSelectionBehavior(*mode)).into()) + MenuListEntry::new(format!("{mode:?}")).label(mode.to_string()).on_commit(move |_| { + SelectToolMessage::SelectOptions { + options: SelectOptionsUpdate::NestedSelectionBehavior(*mode), + } + .into() + }) }) .collect(); DropdownInput::new(vec![layer_selection_behavior_entries]) .selected_index(Some((self.tool_data.nested_selection_behavior == NestedSelectionBehavior::Deepest) as u32)) - .tooltip( - "Selection Mode\n\ - \n\ - Shallow Select: clicks initially select the least-nested layers and double clicks drill deeper into the folder hierarchy.\n\ + .tooltip_label("Selection Mode") + .tooltip_description( + "Shallow Select: clicks initially select the least-nested layers and double clicks drill deeper into the folder hierarchy.\n\ Deep Select: clicks directly select the most-nested layers in the folder hierarchy.", ) - .widget_holder() + .widget_instance() } - fn alignment_widgets(&self, disabled: bool) -> impl Iterator + use<> { + fn alignment_widgets(&self, disabled: bool) -> impl Iterator + use<> { [AlignAxis::X, AlignAxis::Y] .into_iter() .flat_map(|axis| [(axis, AlignAggregate::Min), (axis, AlignAggregate::Center), (axis, AlignAggregate::Max)]) .map(move |(axis, aggregate)| { - let (icon, tooltip) = match (axis, aggregate) { + let (icon, label) = match (axis, aggregate) { (AlignAxis::X, AlignAggregate::Min) => ("AlignLeft", "Align Left"), (AlignAxis::X, AlignAggregate::Center) => ("AlignHorizontalCenter", "Align Horizontal Center"), (AlignAxis::X, AlignAggregate::Max) => ("AlignRight", "Align Right"), @@ -157,51 +168,49 @@ impl SelectTool { (AlignAxis::Y, AlignAggregate::Max) => ("AlignBottom", "Align Bottom"), }; IconButton::new(icon, 24) - .tooltip(tooltip) + .tooltip_label(label) .on_update(move |_| DocumentMessage::AlignSelectedLayers { axis, aggregate }.into()) .disabled(disabled) - .widget_holder() + .widget_instance() }) } - fn flip_widgets(&self, disabled: bool) -> impl Iterator + use<> { - [(FlipAxis::X, "Horizontal"), (FlipAxis::Y, "Vertical")].into_iter().map(move |(flip_axis, name)| { - IconButton::new("Flip".to_string() + name, 24) - .tooltip("Flip ".to_string() + name) - .on_update(move |_| DocumentMessage::FlipSelectedLayers { flip_axis }.into()) - .disabled(disabled) - .widget_holder() - }) + fn flip_widgets(&self, disabled: bool) -> impl Iterator + use<> { + [(FlipAxis::X, "FlipHorizontal", "Flip Horizontal"), (FlipAxis::Y, "FlipVertical", "Flip Vertical")] + .into_iter() + .map(move |(flip_axis, icon, label)| { + IconButton::new(icon, 24) + .tooltip_label(label) + .on_update(move |_| DocumentMessage::FlipSelectedLayers { flip_axis }.into()) + .disabled(disabled) + .widget_instance() + }) } - fn turn_widgets(&self, disabled: bool) -> impl Iterator + use<> { + fn turn_widgets(&self, disabled: bool) -> impl Iterator + use<> { [(-90., "TurnNegative90", "Turn -90ยฐ"), (90., "TurnPositive90", "Turn 90ยฐ")] .into_iter() - .map(move |(degrees, icon, name)| { + .map(move |(degrees, icon, label)| { IconButton::new(icon, 24) - .tooltip(name) + .tooltip_label(label) .on_update(move |_| DocumentMessage::RotateSelectedLayers { degrees }.into()) .disabled(disabled) - .widget_holder() + .widget_instance() }) } - fn boolean_widgets(&self, selected_count: usize) -> impl Iterator + use<> { + fn boolean_widgets(&self, selected_count: usize) -> impl Iterator + use<> { let list = ::list(); list.iter().flat_map(|i| i.iter()).map(move |(operation, info)| { - let mut tooltip = info.label.to_string(); - if let Some(doc) = info.docstring.as_deref() { - tooltip.push_str("\n\n"); - tooltip.push_str(doc); - } - IconButton::new(info.icon.as_deref().unwrap(), 24) - .tooltip(tooltip) + IconButton::new(info.icon.unwrap(), 24) + .tooltip_label(info.label) + .tooltip_description(info.description.unwrap_or_default()) .disabled(selected_count == 0) .on_update(move |_| { let group_folder_type = GroupFolderType::BooleanOperation(*operation); DocumentMessage::GroupSelectedLayers { group_folder_type }.into() }) - .widget_holder() + .widget_instance() }) } } @@ -214,12 +223,12 @@ impl LayoutHolder for SelectTool { widgets.push(self.deep_selection_widget()); // Pivot gizmo type (checkbox + dropdown for pivot/origin) - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.extend(pivot_gizmo_type_widget(self.tool_data.pivot_gizmo.state, PivotToolSource::Select)); if self.tool_data.pivot_gizmo.state.is_pivot_type() { // Nine-position reference point widget - widgets.push(Separator::new(SeparatorType::Related).widget_holder()); + widgets.push(Separator::new(SeparatorType::Related).widget_instance()); widgets.push(pivot_reference_point_widget( self.tool_data.selected_layers_count == 0 || !self.tool_data.pivot_gizmo.state.is_pivot(), self.tool_data.pivot_gizmo.pivot.to_pivot_position(), @@ -227,7 +236,7 @@ impl LayoutHolder for SelectTool { )); // Pivot pin button - widgets.push(Separator::new(SeparatorType::Related).widget_holder()); + widgets.push(Separator::new(SeparatorType::Related).widget_instance()); let pin_active = self.tool_data.pivot_gizmo.pin_active(); let pin_enabled = self.tool_data.pivot_gizmo.pivot.old_pivot_position == ReferencePoint::None && !self.tool_data.pivot_gizmo.state.disabled; @@ -239,36 +248,23 @@ impl LayoutHolder for SelectTool { // Align let disabled = self.tool_data.selected_layers_count < 2; - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.extend(self.alignment_widgets(disabled)); - // widgets.push( - // PopoverButton::new() - // .popover_layout(vec![ - // LayoutGroup::Row { - // widgets: vec![TextLabel::new("Align").bold(true).widget_holder()], - // }, - // LayoutGroup::Row { - // widgets: vec![TextLabel::new("Coming soon").widget_holder()], - // }, - // ]) - // .disabled(disabled) - // .widget_holder(), - // ); // Flip let disabled = self.tool_data.selected_layers_count == 0; - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.extend(self.flip_widgets(disabled)); // Turn - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.extend(self.turn_widgets(disabled)); // Boolean - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.extend(self.boolean_widgets(self.tool_data.selected_layers_count)); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } @@ -277,7 +273,7 @@ impl<'a> MessageHandler> for Sele fn process_message(&mut self, message: ToolMessage, responses: &mut VecDeque, context: &mut ToolActionMessageContext<'a>) { let mut redraw_reference_pivot = false; - if let ToolMessage::Select(SelectToolMessage::SelectOptions(ref option_update)) = message { + if let ToolMessage::Select(SelectToolMessage::SelectOptions { options: ref option_update }) = message { match option_update { SelectOptionsUpdate::NestedSelectionBehavior(nested_selection_behavior) => { self.tool_data.nested_selection_behavior = *nested_selection_behavior; @@ -323,6 +319,7 @@ impl<'a> MessageHandler> for Sele PointerMove, Abort, EditLayer, + EditLayerExec, Enter, ); @@ -340,7 +337,7 @@ impl ToolTransition for SelectTool { fn event_to_message_map(&self) -> EventToMessageMap { EventToMessageMap { tool_abort: Some(SelectToolMessage::Abort.into()), - overlay_provider: Some(|overlay_context| SelectToolMessage::Overlays(overlay_context).into()), + overlay_provider: Some(|context| SelectToolMessage::Overlays { context }.into()), ..Default::default() } } @@ -403,14 +400,15 @@ struct SelectToolData { selected_layers_changed: bool, snap_candidates: Vec, auto_panning: AutoPanning, + drag_start_center: ViewportPosition, } impl SelectToolData { - fn get_snap_candidates(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler) { + fn get_snap_candidates(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) { self.snap_candidates.clear(); for &layer in &self.layers_dragging { if (self.snap_candidates.len() as f64) < document.snapping_state.tolerance { - snapping::get_layer_snap_points(layer, &SnapData::new(document, input), &mut self.snap_candidates); + snapping::get_layer_snap_points(layer, &SnapData::new(document, input, viewport), &mut self.snap_candidates); } if let Some(bounds) = document.metadata().bounding_box_with_transform(layer, DAffine2::IDENTITY) { let quad = document.metadata().transform_to_document(layer) * Quad::from_box(bounds); @@ -450,20 +448,20 @@ impl SelectToolData { } } - pub fn intersect_lasso_no_artboards(&self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler) -> Vec { + pub fn intersect_lasso_no_artboards(&self, document: &DocumentMessageHandler, viewport: &ViewportMessageHandler) -> Vec { if self.lasso_polygon.len() < 2 { return Vec::new(); } let polygon = Subpath::from_anchors_linear(self.lasso_polygon.clone(), true); - document.intersect_polygon_no_artboards(polygon, input).collect() + document.intersect_polygon_no_artboards(polygon, viewport).collect() } - pub fn is_layer_inside_lasso_polygon(&self, layer: &LayerNodeIdentifier, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler) -> bool { + pub fn is_layer_inside_lasso_polygon(&self, layer: &LayerNodeIdentifier, document: &DocumentMessageHandler, viewport: &ViewportMessageHandler) -> bool { if self.lasso_polygon.len() < 2 { return false; } let polygon = Subpath::from_anchors_linear(self.lasso_polygon.clone(), true); - document.is_layer_fully_inside_polygon(layer, input, polygon) + document.is_layer_fully_inside_polygon(layer, viewport, polygon) } /// Duplicates the currently dragging layers. Called when Alt is pressed and the layers have not yet been duplicated. @@ -580,17 +578,36 @@ impl SelectToolData { } } +/// Bounding boxes are unfortunately not axis aligned. The bounding boxes are found after a transformation is applied to all of the layers. +/// This uses some rather confusing logic to determine what transform that should be. +pub fn create_bounding_box_transform(document: &DocumentMessageHandler) -> DAffine2 { + // Update bounds + document + .network_interface + .selected_nodes() + .selected_visible_and_unlocked_layers(&document.network_interface) + .find(|layer| !document.network_interface.is_artboard(&layer.to_node(), &[])) + .map(|layer| document.metadata().transform_to_viewport_with_first_transform_node_if_group(layer, &document.network_interface)) + .unwrap_or_default() +} + impl Fsm for SelectToolFsmState { type ToolData = SelectToolData; type ToolOptions = (); fn transition(self, event: ToolMessage, tool_data: &mut Self::ToolData, tool_action_data: &mut ToolActionMessageContext, _tool_options: &(), responses: &mut VecDeque) -> Self { - let ToolActionMessageContext { document, input, font_cache, .. } = tool_action_data; + let ToolActionMessageContext { + document, + input, + viewport, + persistent_data, + .. + } = tool_action_data; let ToolMessage::Select(event) = event else { return self }; match (self, event) { - (_, SelectToolMessage::Overlays(mut overlay_context)) => { - tool_data.snap_manager.draw_overlays(SnapData::new(document, input), &mut overlay_context); + (_, SelectToolMessage::Overlays { context: mut overlay_context }) => { + tool_data.snap_manager.draw_overlays(SnapData::new(document, input, viewport), &mut overlay_context); let selected_layers_count = document.network_interface.selected_nodes().selected_unlocked_layers(&document.network_interface).count(); tool_data.selected_layers_changed = selected_layers_count != tool_data.selected_layers_count; @@ -608,20 +625,13 @@ impl Fsm for SelectToolFsmState { overlay_context.outline(document.metadata().layer_with_free_points_outline(layer), layer_to_viewport, None); if is_layer_fed_by_node_of_name(layer, &document.network_interface, "Text") { - let transformed_quad = layer_to_viewport * text_bounding_box(layer, document, font_cache); + let transformed_quad = layer_to_viewport * text_bounding_box(layer, document, &persistent_data.font_cache); overlay_context.dashed_quad(transformed_quad, None, None, Some(7.), Some(5.), None); } } } - // Update bounds - let mut transform = document - .network_interface - .selected_nodes() - .selected_visible_and_unlocked_layers(&document.network_interface) - .find(|layer| !document.network_interface.is_artboard(&layer.to_node(), &[])) - .map(|layer| document.metadata().transform_to_viewport_with_first_transform_node_if_group(layer, &document.network_interface)) - .unwrap_or_default(); + let mut transform = create_bounding_box_transform(document); // Check if the matrix is not invertible let mut transform_tampered = false; @@ -647,10 +657,11 @@ impl Fsm for SelectToolFsmState { // TODO: Don't use `Key::MouseMiddle` directly, instead take it as a variable from the input mappings list like in all other places; or find a better way than checking the key state if !matches!(self, Self::Drawing { .. }) && !input.keyboard.get(Key::MouseMiddle as usize) { // Get the layer the user is hovering over - let click = document.click(input); + // Artboards are included since they're needed for quick measurement, but will be filtered out for selection later on + let click = document.click_list_with_artboards(input, viewport).last(); let not_selected_click = click.filter(|&hovered_layer| !document.network_interface.selected_nodes().selected_layers_contains(hovered_layer, document.metadata())); if let Some(layer) = not_selected_click { - if overlay_context.visibility_settings.hover_outline() { + if overlay_context.visibility_settings.hover_outline() && !document.network_interface.is_artboard(&layer.to_node(), &[]) { let layer_to_viewport = document.metadata().transform_to_viewport(layer); let mut hover_overlay_draw = |layer: LayerNodeIdentifier, color: Option<&str>| { if layer.has_children(document.metadata()) { @@ -689,32 +700,28 @@ impl Fsm for SelectToolFsmState { // Measure with Alt held down // TODO: Don't use `Key::Alt` directly, instead take it as a variable from the input mappings list like in all other places if overlay_context.visibility_settings.quick_measurement() && !matches!(self, Self::ResizingBounds { .. }) && input.keyboard.get(Key::Alt as usize) { - // Get all selected layers and compute their viewport-aligned AABB - let selected_bounds_viewport = document + // Compute document-space bounding box (AABB) of all selected visible & unlocked layers + let selected_bounds_doc_space = document .network_interface .selected_nodes() .selected_visible_and_unlocked_layers(&document.network_interface) + // Exclude layers that are artboards from the selection bounding box .filter(|layer| !document.network_interface.is_artboard(&layer.to_node(), &[])) - .filter_map(|layer| { - // Get the layer's bounding box in its local space - let local_bounds = document.metadata().bounding_box_with_transform(layer, DAffine2::IDENTITY)?; - // Transform the bounds directly to viewport space - let viewport_quad = document.metadata().transform_to_viewport(layer) * Quad::from_box(local_bounds); - // Convert the quad to an AABB in viewport space - Some(Rect::from_box(viewport_quad.bounding_box())) - }) + // For each remaining layer, try to get its document-space bounding box and convert it to a Rect + .filter_map(|layer| document.metadata().bounding_box_document(layer).map(Rect::from_box)) + // Combine all individual bounding boxes into one overall bounding box that contains all selected layers .reduce(Rect::combine_bounds); - // Get the hovered layer's viewport-aligned AABB - let hovered_bounds_viewport = document.metadata().bounding_box_with_transform(layer, DAffine2::IDENTITY).map(|bounds| { - let viewport_quad = document.metadata().transform_to_viewport(layer) * Quad::from_box(bounds); - Rect::from_box(viewport_quad.bounding_box()) - }); + // Compute document-space bounding box (AABB) of the currently hovered layer + let hovered_bounds_doc_space = document.metadata().bounding_box_document(layer); - // Use the viewport-aligned AABBs for measurement - if let (Some(selected_bounds), Some(hovered_bounds)) = (selected_bounds_viewport, hovered_bounds_viewport) { - // Since we're already in viewport space, use identity transform - measure::overlay(selected_bounds, hovered_bounds, DAffine2::IDENTITY, DAffine2::IDENTITY, &mut overlay_context); + // If both selected and hovered bounds exist, overlay measurement lines + if let (Some(selected_bounds), Some(hovered_bounds)) = (selected_bounds_doc_space, hovered_bounds_doc_space.map(Rect::from_box)) { + // Both `selected_bounds` and `hovered_bounds` are in document space. + // To correctly render overlay lines in the UI (which is in viewport space), we need to transform both rectangles from document to viewport space. + // Therefore, we pass `document_to_viewport` as both the `transform` and `document_to_viewport` parameters. + let document_to_viewport = document.metadata().document_to_viewport; + measure::overlay(selected_bounds, hovered_bounds, document_to_viewport, document_to_viewport, &mut overlay_context); } } } @@ -760,19 +767,19 @@ impl Fsm for SelectToolFsmState { let is_resizing_or_rotating = matches!(self, SelectToolFsmState::ResizingBounds | SelectToolFsmState::SkewingBounds { .. } | SelectToolFsmState::RotatingBounds); - if overlay_context.visibility_settings.transform_cage() { - if let Some(bounds) = tool_data.bounding_box_manager.as_mut() { - let edges = bounds.check_selected_edges(input.mouse.position); - let is_skewing = matches!(self, SelectToolFsmState::SkewingBounds { .. }); - let is_near_square = edges.is_some_and(|hover_edge| bounds.over_extended_edge_midpoint(input.mouse.position, hover_edge)); - if is_skewing || (dragging_bounds && is_near_square && !is_resizing_or_rotating) { - bounds.render_skew_gizmos(&mut overlay_context, tool_data.skew_edge); - } - if !is_skewing && dragging_bounds { - if let Some(edges) = edges { - tool_data.skew_edge = bounds.get_closest_edge(edges, input.mouse.position); - } - } + if overlay_context.visibility_settings.transform_cage() + && let Some(bounds) = tool_data.bounding_box_manager.as_mut() + { + let edges = bounds.check_selected_edges(input.mouse.position); + let is_skewing = matches!(self, SelectToolFsmState::SkewingBounds { .. }); + let is_near_square = edges.is_some_and(|hover_edge| bounds.over_extended_edge_midpoint(input.mouse.position, hover_edge)); + if is_skewing || (dragging_bounds && is_near_square && !is_resizing_or_rotating) { + bounds.render_skew_gizmos(&mut overlay_context, tool_data.skew_edge); + } + if !is_skewing + && dragging_bounds && let Some(edges) = edges + { + tool_data.skew_edge = bounds.get_closest_edge(edges, input.mouse.position); } } @@ -843,7 +850,13 @@ impl Fsm for SelectToolFsmState { if let Some(pivot) = pivot { let offset = tool_data .pivot_gizmo_start - .map(|offset| tool_data.pivot_gizmo.pivot_disconnected().then_some(tool_data.drag_current - offset).unwrap_or_default()) + .map(|offset| { + if tool_data.pivot_gizmo.pivot_disconnected() { + tool_data.drag_current - offset + } else { + Default::default() + } + }) .unwrap_or_default(); let shift = tool_data.pivot_gizmo_shift.unwrap_or_default(); overlay_context.pivot(pivot + offset + shift, angle); @@ -865,33 +878,32 @@ impl Fsm for SelectToolFsmState { compass_rose_state.axis_type().and_then(|axis| axis.is_constraint().then_some((axis, true))) }; - if show_compass_with_ring.is_some() { - if let Some((axis, hover)) = axis_state { - if axis.is_constraint() { - let e0 = tool_data - .bounding_box_manager - .as_ref() - .map(|bounding_box_manager| bounding_box_manager.transform * Quad::from_box(bounding_box_manager.bounds)) - .map_or(DVec2::X, |quad| (quad.top_left() - quad.top_right()).normalize_or(DVec2::X)); + if show_compass_with_ring.is_some() + && let Some((axis, hover)) = axis_state + && axis.is_constraint() + { + let e0 = tool_data + .bounding_box_manager + .as_ref() + .map(|bounding_box_manager| bounding_box_manager.transform * Quad::from_box(bounding_box_manager.bounds)) + .map_or(DVec2::X, |quad| (quad.top_left() - quad.top_right()).normalize_or(DVec2::X)); - let (direction, color) = match axis { - Axis::X => (e0, COLOR_OVERLAY_RED), - Axis::Y => (e0.perp(), COLOR_OVERLAY_GREEN), - _ => unreachable!(), - }; + let (direction, color) = match axis { + Axis::X => (e0, COLOR_OVERLAY_RED), + Axis::Y => (e0.perp(), COLOR_OVERLAY_GREEN), + _ => unreachable!(), + }; - let viewport_diagonal = input.viewport_bounds.size().length(); + let viewport_diagonal = viewport.size().into_dvec2().length(); - let color = if !hover { - color - } else { - let color_string = &graphene_std::Color::from_rgb_str(color.strip_prefix('#').unwrap()).unwrap().with_alpha(0.25).to_rgba_hex_srgb(); - &format!("#{}", color_string) - }; - let line_center = tool_data.line_center; - overlay_context.line(line_center - direction * viewport_diagonal, line_center + direction * viewport_diagonal, Some(color), None); - } - } + let color = if !hover { + color + } else { + let color_string = &graphene_std::Color::from_rgb_str(color.strip_prefix('#').unwrap()).unwrap().with_alpha(0.25).to_rgba_hex_srgb(); + &format!("#{color_string}") + }; + let line_center = tool_data.line_center; + overlay_context.line(line_center - direction * viewport_diagonal, line_center + direction * viewport_diagonal, Some(color), None); } if axis_state.is_none_or(|(axis, _)| !axis.is_constraint()) && tool_data.axis_align { @@ -900,11 +912,10 @@ impl Fsm for SelectToolFsmState { let angle = -mouse_position.angle_to(DVec2::X); let snapped_angle = (angle / snap_resolution).round() * snap_resolution; - let extension = tool_data.drag_current - tool_data.drag_start; - let origin = compass_center - extension; - let viewport_diagonal = input.viewport_bounds.size().length(); + let origin = tool_data.drag_start_center; + let viewport_diagonal = viewport.size().into_dvec2().length(); - let edge = DVec2::from_angle(snapped_angle).normalize_or(DVec2::X) * viewport_diagonal; + let edge = DVec2::from_angle(snapped_angle).normalize_or(DVec2::X); let perp = edge.perp(); let (edge_color, perp_color) = if edge.x.abs() > edge.y.abs() { @@ -933,13 +944,13 @@ impl Fsm for SelectToolFsmState { // Draw outline visualizations on the layers to be selected let intersected_layers = match selection_shape { - SelectionShapeType::Box => document.intersect_quad_no_artboards(quad, input).collect(), - SelectionShapeType::Lasso => tool_data.intersect_lasso_no_artboards(document, input), + SelectionShapeType::Box => document.intersect_quad_no_artboards(quad, viewport).collect(), + SelectionShapeType::Lasso => tool_data.intersect_lasso_no_artboards(document, viewport), }; let layers_to_outline = intersected_layers.into_iter().filter(|layer| match current_selection_mode { SelectionMode::Enclosed => match selection_shape { SelectionShapeType::Box => document.is_layer_fully_inside(layer, quad), - SelectionShapeType::Lasso => tool_data.is_layer_inside_lasso_polygon(layer, document, input), + SelectionShapeType::Lasso => tool_data.is_layer_inside_lasso_polygon(layer, document, viewport), }, SelectionMode::Touched => match tool_data.nested_selection_behavior { NestedSelectionBehavior::Deepest => !layer.has_children(document.metadata()), @@ -985,14 +996,19 @@ impl Fsm for SelectToolFsmState { self } (_, SelectToolMessage::EditLayer) => { - // Edit the clicked layer - if let Some(intersect) = document.click(input) { + responses.add(DeferMessage::AfterGraphRun { + messages: vec![SelectToolMessage::EditLayerExec.into()], + }); + + self + } + (_, SelectToolMessage::EditLayerExec) => { + if let Some(intersect) = document.click(input, viewport) { match tool_data.nested_selection_behavior { NestedSelectionBehavior::Shallowest => edit_layer_shallowest_manipulation(document, intersect, responses), NestedSelectionBehavior::Deepest => edit_layer_deepest_manipulation(intersect, &document.network_interface, responses), } } - self } ( @@ -1010,12 +1026,14 @@ impl Fsm for SelectToolFsmState { tool_data.selection_mode = None; let mut selected: Vec<_> = document.network_interface.selected_nodes().selected_visible_and_unlocked_layers(&document.network_interface).collect(); - let intersection_list = document.click_list(input).collect::>(); + let intersection_list = document.click_list(input, viewport).collect::>(); let intersection = document.find_deepest(&intersection_list); let position = tool_data.pivot_gizmo().position(document); let (resize, rotate, skew) = transforming_transform_cage(document, &mut tool_data.bounding_box_manager, input, responses, &mut tool_data.layers_dragging, Some(position)); + tool_data.drag_start_center = position; + // If the user is dragging the bounding box bounds, go into ResizingBounds mode. // If the user is dragging the rotate trigger, go into RotatingBounds mode. // If the user clicks on a layer that is in their current selection, go into the dragging mode. @@ -1043,10 +1061,10 @@ impl Fsm for SelectToolFsmState { } // Dragging one (or two, forming a corner) of the transform cage bounding box edges else if resize { - tool_data.get_snap_candidates(document, input); + tool_data.get_snap_candidates(document, input, viewport); SelectToolFsmState::ResizingBounds } else if skew { - tool_data.get_snap_candidates(document, input); + tool_data.get_snap_candidates(document, input, viewport); SelectToolFsmState::SkewingBounds { skew: Key::Control } } // Dragging the selected layers around to transform them @@ -1060,7 +1078,7 @@ impl Fsm for SelectToolFsmState { } tool_data.layers_dragging = selected; - tool_data.get_snap_candidates(document, input); + tool_data.get_snap_candidates(document, input, viewport); let (axis, using_compass) = { let axis_state = compass_rose_state.axis_type().filter(|_| can_grab_compass_rose); (axis_state.unwrap_or_default(), axis_state.is_some()) @@ -1103,7 +1121,7 @@ impl Fsm for SelectToolFsmState { NestedSelectionBehavior::Shallowest if !input.keyboard.key(select_deepest) => drag_shallowest_manipulation(responses, selected, tool_data, document, false, extend), _ => drag_deepest_manipulation(responses, selected, tool_data, document, false), } - tool_data.get_snap_candidates(document, input); + tool_data.get_snap_candidates(document, input, viewport); responses.add(DocumentMessage::StartTransaction); @@ -1139,7 +1157,7 @@ impl Fsm for SelectToolFsmState { deepest, remove, }, - SelectToolMessage::PointerMove(modifier_keys), + SelectToolMessage::PointerMove { modifier_keys }, ) => { if !has_dragged { responses.add(ToolMessage::UpdateHints); @@ -1156,7 +1174,7 @@ impl Fsm for SelectToolFsmState { let layers_exist = tool_data.layers_dragging.iter().all(|&layer| document.metadata().click_targets(layer).is_some()); let ignore = tool_data.non_duplicated_layers.as_ref().filter(|_| !layers_exist).unwrap_or(&tool_data.layers_dragging); - let snap_data = SnapData::ignore(document, input, ignore); + let snap_data = SnapData::ignore(document, input, viewport, ignore); let (start, current) = (tool_data.drag_start, tool_data.drag_current); let e0 = tool_data .bounding_box_manager @@ -1184,10 +1202,10 @@ impl Fsm for SelectToolFsmState { // Auto-panning let messages = [ - SelectToolMessage::PointerOutsideViewport(modifier_keys.clone()).into(), - SelectToolMessage::PointerMove(modifier_keys).into(), + SelectToolMessage::PointerOutsideViewport { modifier_keys: modifier_keys.clone() }.into(), + SelectToolMessage::PointerMove { modifier_keys }.into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); SelectToolFsmState::Dragging { axis, @@ -1197,7 +1215,7 @@ impl Fsm for SelectToolFsmState { remove, } } - (SelectToolFsmState::ResizingBounds, SelectToolMessage::PointerMove(modifier_keys)) => { + (SelectToolFsmState::ResizingBounds, SelectToolMessage::PointerMove { modifier_keys }) => { if let Some(bounds) = &mut tool_data.bounding_box_manager { resize_bounds( document, @@ -1207,19 +1225,20 @@ impl Fsm for SelectToolFsmState { &mut tool_data.snap_manager, &mut tool_data.snap_candidates, input, + viewport, input.keyboard.key(modifier_keys.center), input.keyboard.key(modifier_keys.axis_align), ToolType::Select, ); let messages = [ - SelectToolMessage::PointerOutsideViewport(modifier_keys.clone()).into(), - SelectToolMessage::PointerMove(modifier_keys).into(), + SelectToolMessage::PointerOutsideViewport { modifier_keys: modifier_keys.clone() }.into(), + SelectToolMessage::PointerMove { modifier_keys }.into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); } SelectToolFsmState::ResizingBounds } - (SelectToolFsmState::SkewingBounds { skew }, SelectToolMessage::PointerMove(_)) => { + (SelectToolFsmState::SkewingBounds { skew }, SelectToolMessage::PointerMove { .. }) => { if let Some(bounds) = &mut tool_data.bounding_box_manager { skew_bounds( document, @@ -1233,7 +1252,7 @@ impl Fsm for SelectToolFsmState { } SelectToolFsmState::SkewingBounds { skew } } - (SelectToolFsmState::RotatingBounds, SelectToolMessage::PointerMove(_)) => { + (SelectToolFsmState::RotatingBounds, SelectToolMessage::PointerMove { .. }) => { if let Some(bounds) = &mut tool_data.bounding_box_manager { rotate_bounds( document, @@ -1249,7 +1268,7 @@ impl Fsm for SelectToolFsmState { SelectToolFsmState::RotatingBounds } - (SelectToolFsmState::DraggingPivot, SelectToolMessage::PointerMove(modifier_keys)) => { + (SelectToolFsmState::DraggingPivot, SelectToolMessage::PointerMove { modifier_keys }) => { let mouse_position = input.mouse.position; let snapped_mouse_position = mouse_position; @@ -1259,14 +1278,14 @@ impl Fsm for SelectToolFsmState { // Auto-panning let messages = [ - SelectToolMessage::PointerOutsideViewport(modifier_keys.clone()).into(), - SelectToolMessage::PointerMove(modifier_keys).into(), + SelectToolMessage::PointerOutsideViewport { modifier_keys: modifier_keys.clone() }.into(), + SelectToolMessage::PointerMove { modifier_keys }.into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); SelectToolFsmState::DraggingPivot } - (SelectToolFsmState::Drawing { selection_shape, has_drawn }, SelectToolMessage::PointerMove(modifier_keys)) => { + (SelectToolFsmState::Drawing { selection_shape, has_drawn }, SelectToolMessage::PointerMove { modifier_keys }) => { if !has_drawn { responses.add(ToolMessage::UpdateHints); } @@ -1280,14 +1299,14 @@ impl Fsm for SelectToolFsmState { // Auto-panning let messages = [ - SelectToolMessage::PointerOutsideViewport(modifier_keys.clone()).into(), - SelectToolMessage::PointerMove(modifier_keys).into(), + SelectToolMessage::PointerOutsideViewport { modifier_keys: modifier_keys.clone() }.into(), + SelectToolMessage::PointerMove { modifier_keys }.into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); SelectToolFsmState::Drawing { selection_shape, has_drawn: true } } - (SelectToolFsmState::Ready { .. }, SelectToolMessage::PointerMove(_)) => { + (SelectToolFsmState::Ready { .. }, SelectToolMessage::PointerMove { .. }) => { let dragging_bounds = tool_data .bounding_box_manager .as_mut() @@ -1323,10 +1342,10 @@ impl Fsm for SelectToolFsmState { deepest, remove, }, - SelectToolMessage::PointerOutsideViewport(_), + SelectToolMessage::PointerOutsideViewport { .. }, ) => { // Auto-panning - if let Some(shift) = tool_data.auto_panning.shift_viewport(input, responses) { + if let Some(shift) = tool_data.auto_panning.shift_viewport(input, viewport, responses) { tool_data.drag_current += shift; tool_data.drag_start += shift; } @@ -1339,36 +1358,36 @@ impl Fsm for SelectToolFsmState { remove, } } - (SelectToolFsmState::ResizingBounds | SelectToolFsmState::SkewingBounds { .. }, SelectToolMessage::PointerOutsideViewport(_)) => { + (SelectToolFsmState::ResizingBounds | SelectToolFsmState::SkewingBounds { .. }, SelectToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - if let Some(shift) = tool_data.auto_panning.shift_viewport(input, responses) { - if let Some(bounds) = &mut tool_data.bounding_box_manager { - bounds.center_of_transformation += shift; - bounds.original_bound_transform.translation += shift; - } + if let Some(shift) = tool_data.auto_panning.shift_viewport(input, viewport, responses) + && let Some(bounds) = &mut tool_data.bounding_box_manager + { + bounds.center_of_transformation += shift; + bounds.original_bound_transform.translation += shift; } self } - (SelectToolFsmState::DraggingPivot, SelectToolMessage::PointerOutsideViewport(_)) => { + (SelectToolFsmState::DraggingPivot, SelectToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - let _ = tool_data.auto_panning.shift_viewport(input, responses); + let _ = tool_data.auto_panning.shift_viewport(input, viewport, responses); self } - (SelectToolFsmState::Drawing { .. }, SelectToolMessage::PointerOutsideViewport(_)) => { + (SelectToolFsmState::Drawing { .. }, SelectToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - if let Some(shift) = tool_data.auto_panning.shift_viewport(input, responses) { + if let Some(shift) = tool_data.auto_panning.shift_viewport(input, viewport, responses) { tool_data.drag_start += shift; } self } - (state, SelectToolMessage::PointerOutsideViewport(modifier_keys)) => { + (state, SelectToolMessage::PointerOutsideViewport { modifier_keys }) => { // Auto-panning let messages = [ - SelectToolMessage::PointerOutsideViewport(modifier_keys.clone()).into(), - SelectToolMessage::PointerMove(modifier_keys).into(), + SelectToolMessage::PointerOutsideViewport { modifier_keys: modifier_keys.clone() }.into(), + SelectToolMessage::PointerMove { modifier_keys }.into(), ]; tool_data.auto_panning.stop(&messages, responses); @@ -1382,7 +1401,7 @@ impl Fsm for SelectToolFsmState { if !has_dragged && input.keyboard.key(remove_from_selection) && tool_data.layer_selected_on_start.is_none() { // When you click on the layer with remove from selection key (shift) pressed, we deselect all nodes that are children. let quad = tool_data.selection_quad(); - let intersection = document.intersect_quad_no_artboards(quad, input); + let intersection = document.intersect_quad_no_artboards(quad, viewport); if let Some(path) = intersection.last() { let replacement_selected_layers: Vec<_> = document @@ -1412,7 +1431,7 @@ impl Fsm for SelectToolFsmState { } else if tool_data.select_single_layer.take().is_some() { // Previously, we may have had many layers selected. If the user clicks without dragging, we should just select the one layer that has been clicked. if !has_dragged { - let selected = document.click_list(input).collect::>(); + let selected = document.click_list(input, viewport).collect::>(); let intersection = document.find_deepest(&selected); if let Some(intersection) = intersection { tool_data.layer_selected_on_start = Some(intersection); @@ -1428,9 +1447,7 @@ impl Fsm for SelectToolFsmState { } } - tool_data.get_snap_candidates(document, input); - - responses.add(DocumentMessage::StartTransaction); + tool_data.get_snap_candidates(document, input, viewport); } } } @@ -1441,7 +1458,11 @@ impl Fsm for SelectToolFsmState { tool_data.select_single_layer = None; if let Some(start) = tool_data.pivot_gizmo_start { - let offset = tool_data.pivot_gizmo.pivot_disconnected().then_some(tool_data.drag_current - start).unwrap_or_default(); + let offset = if tool_data.pivot_gizmo.pivot_disconnected() { + tool_data.drag_current - start + } else { + Default::default() + }; if let Some(v) = tool_data.pivot_gizmo.pivot.pivot.as_mut() { *v += offset; } @@ -1469,10 +1490,10 @@ impl Fsm for SelectToolFsmState { tool_data.axis_align = false; tool_data.snap_manager.cleanup(responses); - if !matches!(self, SelectToolFsmState::DraggingPivot) { - if let Some(bounds) = &mut tool_data.bounding_box_manager { - bounds.original_transforms.clear(); - } + if !matches!(self, SelectToolFsmState::DraggingPivot) + && let Some(bounds) = &mut tool_data.bounding_box_manager + { + bounds.original_transforms.clear(); } let selection = tool_data.nested_selection_behavior; @@ -1487,13 +1508,13 @@ impl Fsm for SelectToolFsmState { }; let intersection: Vec = match selection_shape { - SelectionShapeType::Box => document.intersect_quad_no_artboards(quad, input).collect(), - SelectionShapeType::Lasso => tool_data.intersect_lasso_no_artboards(document, input), + SelectionShapeType::Box => document.intersect_quad_no_artboards(quad, viewport).collect(), + SelectionShapeType::Lasso => tool_data.intersect_lasso_no_artboards(document, viewport), }; let new_selected: HashSet<_> = if selection_mode == SelectionMode::Enclosed { let is_inside = |layer: &LayerNodeIdentifier| match selection_shape { SelectionShapeType::Box => document.is_layer_fully_inside(layer, quad), - SelectionShapeType::Lasso => tool_data.is_layer_inside_lasso_polygon(layer, document, input), + SelectionShapeType::Lasso => tool_data.is_layer_inside_lasso_polygon(layer, document, viewport), }; intersection.into_iter().filter(is_inside).collect() } else { @@ -1599,8 +1620,6 @@ impl Fsm for SelectToolFsmState { SelectToolFsmState::Ready { selection } } (_, SelectToolMessage::SetPivot { position }) => { - responses.add(DocumentMessage::StartTransaction); - tool_data.pivot_gizmo.pivot.last_non_none_reference_point = position; tool_data.pivot_gizmo.pivot.pinned = false; @@ -1635,7 +1654,9 @@ impl Fsm for SelectToolFsmState { } (_, SelectToolMessage::PivotShift { offset, flush }) => { if flush { - tool_data.pivot_gizmo.pivot.pivot.as_mut().map(|v| *v += tool_data.pivot_gizmo_shift.take().unwrap_or_default()); + if let Some(v) = tool_data.pivot_gizmo.pivot.pivot.as_mut() { + *v += tool_data.pivot_gizmo_shift.take().unwrap_or_default(); + } let pivot_gizmo = tool_data.pivot_gizmo(); responses.add(TransformLayerMessage::SetPivotGizmo { pivot_gizmo }); return self; @@ -1696,7 +1717,7 @@ impl Fsm for SelectToolFsmState { HintInfo::keys([Key::Control, Key::KeyD], "Duplicate").add_mac_keys([Key::Command, Key::KeyD]), ]), ]); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } SelectToolFsmState::Dragging { axis, using_compass, has_dragged, .. } if *has_dragged => { let mut hint_data = vec![ @@ -1711,7 +1732,7 @@ impl Fsm for SelectToolFsmState { hint_data.push(HintGroup(vec![HintInfo::keys([Key::Shift], "Constrain to Axis")])); }; let hint_data = HintData(hint_data); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } SelectToolFsmState::Drawing { has_drawn, .. } if *has_drawn => { let hint_data = HintData(vec![ @@ -1721,7 +1742,7 @@ impl Fsm for SelectToolFsmState { // TODO: (See https://discord.com/channels/731730685944922173/1216976541947531264/1321360311298818048) // HintGroup(vec![HintInfo::keys([Key::Shift], "Extend")]) ]); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } SelectToolFsmState::Drawing { .. } | SelectToolFsmState::Dragging { .. } => {} SelectToolFsmState::ResizingBounds => { @@ -1729,25 +1750,25 @@ impl Fsm for SelectToolFsmState { HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]), HintGroup(vec![HintInfo::keys([Key::Alt], "From Pivot"), HintInfo::keys([Key::Shift], "Preserve Aspect Ratio")]), ]); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } SelectToolFsmState::RotatingBounds => { let hint_data = HintData(vec![ HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]), HintGroup(vec![HintInfo::keys([Key::Shift], "15ยฐ Increments")]), ]); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } SelectToolFsmState::SkewingBounds { .. } => { let hint_data = HintData(vec![ HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]), HintGroup(vec![HintInfo::keys([Key::Control], "Unlock Slide")]), ]); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } SelectToolFsmState::DraggingPivot => { let hint_data = HintData(vec![HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()])]); - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } } } diff --git a/editor/src/messages/tool/tool_messages/shape_tool.rs b/editor/src/messages/tool/tool_messages/shape_tool.rs index c6e6911a6..24798333e 100644 --- a/editor/src/messages/tool/tool_messages/shape_tool.rs +++ b/editor/src/messages/tool/tool_messages/shape_tool.rs @@ -3,31 +3,30 @@ use crate::consts::{DEFAULT_STROKE_WIDTH, SNAP_POINT_TOLERANCE}; use crate::messages::portfolio::document::graph_operation::utility_types::TransformIn; use crate::messages::portfolio::document::overlays::utility_types::OverlayContext; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; -use crate::messages::portfolio::document::utility_types::network_interface::InputConnector; use crate::messages::tool::common_functionality::auto_panning::AutoPanning; use crate::messages::tool::common_functionality::color_selector::{ToolColorOptions, ToolColorType}; use crate::messages::tool::common_functionality::gizmos::gizmo_manager::GizmoManager; use crate::messages::tool::common_functionality::graph_modification_utils; -use crate::messages::tool::common_functionality::graph_modification_utils::NodeGraphLayer; use crate::messages::tool::common_functionality::resize::Resize; use crate::messages::tool::common_functionality::shapes::arc_shape::Arc; use crate::messages::tool::common_functionality::shapes::circle_shape::Circle; +use crate::messages::tool::common_functionality::shapes::grid_shape::Grid; use crate::messages::tool::common_functionality::shapes::line_shape::{LineToolData, clicked_on_line_endpoints}; use crate::messages::tool::common_functionality::shapes::polygon_shape::Polygon; use crate::messages::tool::common_functionality::shapes::shape_utility::{ShapeToolModifierKey, ShapeType, anchor_overlays, transform_cage_overlays}; +use crate::messages::tool::common_functionality::shapes::spiral_shape::Spiral; use crate::messages::tool::common_functionality::shapes::star_shape::Star; use crate::messages::tool::common_functionality::shapes::{Ellipse, Line, Rectangle}; use crate::messages::tool::common_functionality::snapping::{self, SnapCandidatePoint, SnapData, SnapTypeConfiguration}; use crate::messages::tool::common_functionality::transformation_cage::{BoundingBoxManager, EdgeBool}; use crate::messages::tool::common_functionality::utility_functions::{closest_point, resize_bounds, rotate_bounds, skew_bounds, transforming_transform_cage}; -use graph_craft::document::value::TaggedValue; -use graph_craft::document::{NodeId, NodeInput}; +use graph_craft::document::NodeId; use graphene_std::Color; use graphene_std::renderer::Quad; -use graphene_std::vector::misc::ArcType; +use graphene_std::vector::misc::{ArcType, GridType, SpiralType}; use std::vec; -#[derive(Default)] +#[derive(Default, ExtractField)] pub struct ShapeTool { fsm_state: ShapeToolFsmState, tool_data: ShapeToolData, @@ -41,6 +40,9 @@ pub struct ShapeToolOptions { vertices: u32, shape_type: ShapeType, arc_type: ArcType, + grid_type: GridType, + spiral_type: SpiralType, + turns: f64, } impl Default for ShapeToolOptions { @@ -52,6 +54,9 @@ impl Default for ShapeToolOptions { vertices: 5, shape_type: ShapeType::Polygon, arc_type: ArcType::Open, + spiral_type: SpiralType::Archimedean, + turns: 5., + grid_type: GridType::Rectangular, } } } @@ -67,24 +72,27 @@ pub enum ShapeOptionsUpdate { Vertices(u32), ShapeType(ShapeType), ArcType(ArcType), + SpiralType(SpiralType), + Turns(f64), + GridType(GridType), } #[impl_message(Message, ToolMessage, Shape)] #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)] pub enum ShapeToolMessage { // Standard messages - Overlays(OverlayContext), + Overlays { context: OverlayContext }, Abort, WorkingColorChanged, // Tool-specific messages DragStart, DragStop, - HideShapeTypeWidget(bool), - PointerMove(ShapeToolModifierKey), - PointerOutsideViewport(ShapeToolModifierKey), - UpdateOptions(ShapeOptionsUpdate), - SetShape(ShapeType), + HideShapeTypeWidget { hide: bool }, + PointerMove { modifier: ShapeToolModifierKey }, + PointerOutsideViewport { modifier: ShapeToolModifierKey }, + UpdateOptions { options: ShapeOptionsUpdate }, + SetShape { shape: ShapeType }, IncreaseSides, DecreaseSides, @@ -92,58 +100,151 @@ pub enum ShapeToolMessage { NudgeSelectedLayers { delta_x: f64, delta_y: f64, resize: Key, resize_opposite_corner: Key }, } -fn create_sides_widget(vertices: u32) -> WidgetHolder { +fn create_sides_widget(vertices: u32) -> WidgetInstance { NumberInput::new(Some(vertices as f64)) .label("Sides") .int() .min(3.) .max(1000.) .mode(NumberInputMode::Increment) - .on_update(|number_input: &NumberInput| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::Vertices(number_input.value.unwrap() as u32)).into()) - .widget_holder() + .on_update(|number_input: &NumberInput| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::Vertices(number_input.value.unwrap() as u32), + } + .into() + }) + .widget_instance() } -fn create_shape_option_widget(shape_type: ShapeType) -> WidgetHolder { +fn create_turns_widget(turns: f64) -> WidgetInstance { + NumberInput::new(Some(turns)) + .label("Turns") + .min(0.5) + .mode(NumberInputMode::Increment) + .on_update(|number_input: &NumberInput| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::Turns(number_input.value.unwrap()), + } + .into() + }) + .widget_instance() +} + +fn create_shape_option_widget(shape_type: ShapeType) -> WidgetInstance { let entries = vec![vec![ - MenuListEntry::new("Polygon") - .label("Polygon") - .on_commit(move |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::ShapeType(ShapeType::Polygon)).into()), - MenuListEntry::new("Star") - .label("Star") - .on_commit(move |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::ShapeType(ShapeType::Star)).into()), - MenuListEntry::new("Circle") - .label("Circle") - .on_commit(move |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::ShapeType(ShapeType::Circle)).into()), - MenuListEntry::new("Arc") - .label("Arc") - .on_commit(move |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::ShapeType(ShapeType::Arc)).into()), + MenuListEntry::new("Polygon").label("Polygon").on_commit(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ShapeType(ShapeType::Polygon), + } + .into() + }), + MenuListEntry::new("Star").label("Star").on_commit(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ShapeType(ShapeType::Star), + } + .into() + }), + MenuListEntry::new("Circle").label("Circle").on_commit(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ShapeType(ShapeType::Circle), + } + .into() + }), + MenuListEntry::new("Arc").label("Arc").on_commit(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ShapeType(ShapeType::Arc), + } + .into() + }), + MenuListEntry::new("Spiral").label("Spiral").on_commit(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ShapeType(ShapeType::Spiral), + } + .into() + }), + MenuListEntry::new("Grid").label("Grid").on_commit(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ShapeType(ShapeType::Grid), + } + .into() + }), ]]; - DropdownInput::new(entries).selected_index(Some(shape_type as u32)).widget_holder() + DropdownInput::new(entries).selected_index(Some(shape_type as u32)).widget_instance() } -fn create_arc_type_widget(arc_type: ArcType) -> WidgetHolder { +fn create_arc_type_widget(arc_type: ArcType) -> WidgetInstance { let entries = vec![ - RadioEntryData::new("Open") - .label("Open") - .on_update(move |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::ArcType(ArcType::Open)).into()), - RadioEntryData::new("Closed") - .label("Closed") - .on_update(move |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::ArcType(ArcType::Closed)).into()), - RadioEntryData::new("Pie") - .label("Pie") - .on_update(move |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::ArcType(ArcType::PieSlice)).into()), + RadioEntryData::new("Open").label("Open").on_update(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ArcType(ArcType::Open), + } + .into() + }), + RadioEntryData::new("Closed").label("Closed").on_update(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ArcType(ArcType::Closed), + } + .into() + }), + RadioEntryData::new("Pie").label("Pie").on_update(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ArcType(ArcType::PieSlice), + } + .into() + }), ]; - RadioInput::new(entries).selected_index(Some(arc_type as u32)).widget_holder() + RadioInput::new(entries).selected_index(Some(arc_type as u32)).widget_instance() } -fn create_weight_widget(line_weight: f64) -> WidgetHolder { +fn create_weight_widget(line_weight: f64) -> WidgetInstance { NumberInput::new(Some(line_weight)) .unit(" px") .label("Weight") .min(0.) .max((1_u64 << f64::MANTISSA_DIGITS) as f64) - .on_update(|number_input: &NumberInput| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::LineWeight(number_input.value.unwrap())).into()) - .widget_holder() + .on_update(|number_input: &NumberInput| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::LineWeight(number_input.value.unwrap()), + } + .into() + }) + .widget_instance() +} + +fn create_spiral_type_widget(spiral_type: SpiralType) -> WidgetInstance { + let entries = vec![vec![ + MenuListEntry::new("Archimedean").label("Archimedean").on_commit(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::SpiralType(SpiralType::Archimedean), + } + .into() + }), + MenuListEntry::new("Logarithmic").label("Logarithmic").on_commit(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::SpiralType(SpiralType::Logarithmic), + } + .into() + }), + ]]; + DropdownInput::new(entries).selected_index(Some(spiral_type as u32)).widget_instance() +} + +fn create_grid_type_widget(grid_type: GridType) -> WidgetInstance { + let entries = vec![ + RadioEntryData::new("Rectangular").label("Rectangular").on_update(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::GridType(GridType::Rectangular), + } + .into() + }), + RadioEntryData::new("Isometric").label("Isometric").on_update(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::GridType(GridType::Isometric), + } + .into() + }), + ]; + RadioInput::new(entries).selected_index(Some(grid_type as u32)).widget_instance() } impl LayoutHolder for ShapeTool { @@ -152,52 +253,100 @@ impl LayoutHolder for ShapeTool { if !self.tool_data.hide_shape_option_widget { widgets.push(create_shape_option_widget(self.options.shape_type)); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); if self.options.shape_type == ShapeType::Polygon || self.options.shape_type == ShapeType::Star { widgets.push(create_sides_widget(self.options.vertices)); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); } if self.options.shape_type == ShapeType::Arc { widgets.push(create_arc_type_widget(self.options.arc_type)); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); } } + if self.options.shape_type == ShapeType::Spiral { + widgets.push(create_spiral_type_widget(self.options.spiral_type)); + widgets.push(Separator::new(SeparatorType::Related).widget_instance()); + + widgets.push(create_turns_widget(self.options.turns)); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); + } + + if self.options.shape_type == ShapeType::Grid { + widgets.push(create_grid_type_widget(self.options.grid_type)); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); + } + if self.options.shape_type != ShapeType::Line { widgets.append(&mut self.options.fill.create_widgets( "Fill", true, - |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::FillColor(None)).into(), - |color_type: ToolColorType| WidgetCallback::new(move |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::FillColorType(color_type.clone())).into()), - |color: &ColorInput| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::FillColor(color.value.as_solid().map(|color| color.to_linear_srgb()))).into(), + |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::FillColor(None), + } + .into() + }, + |color_type: ToolColorType| { + WidgetCallback::new(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::FillColorType(color_type.clone()), + } + .into() + }) + }, + |color: &ColorInput| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::FillColor(color.value.as_solid().map(|color| color.to_linear_srgb())), + } + .into() + }, )); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); } widgets.append(&mut self.options.stroke.create_widgets( "Stroke", true, - |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::StrokeColor(None)).into(), - |color_type: ToolColorType| WidgetCallback::new(move |_| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::StrokeColorType(color_type.clone())).into()), - |color: &ColorInput| ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::StrokeColor(color.value.as_solid().map(|color| color.to_linear_srgb()))).into(), + |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::StrokeColor(None), + } + .into() + }, + |color_type: ToolColorType| { + WidgetCallback::new(move |_| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::StrokeColorType(color_type.clone()), + } + .into() + }) + }, + |color: &ColorInput| { + ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::StrokeColor(color.value.as_solid().map(|color| color.to_linear_srgb())), + } + .into() + }, )); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.push(create_weight_widget(self.options.line_weight)); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } +#[message_handler_data] impl<'a> MessageHandler> for ShapeTool { fn process_message(&mut self, message: ToolMessage, responses: &mut VecDeque, context: &mut ToolActionMessageContext<'a>) { - let ToolMessage::Shape(ShapeToolMessage::UpdateOptions(action)) = message else { + let ToolMessage::Shape(ShapeToolMessage::UpdateOptions { options }) = message else { self.fsm_state.process_event(message, &mut self.tool_data, context, &self.options, responses, true); return; }; - match action { + match options { ShapeOptionsUpdate::FillColor(color) => { self.options.fill.custom_color = color; self.options.fill.color_type = ToolColorType::Custom; @@ -231,6 +380,15 @@ impl<'a> MessageHandler> for Shap ShapeOptionsUpdate::ArcType(arc_type) => { self.options.arc_type = arc_type; } + ShapeOptionsUpdate::SpiralType(spiral_type) => { + self.options.spiral_type = spiral_type; + } + ShapeOptionsUpdate::Turns(turns) => { + self.options.turns = turns; + } + ShapeOptionsUpdate::GridType(grid_type) => { + self.options.grid_type = grid_type; + } } update_dynamic_hints(&self.fsm_state, responses, &self.tool_data); @@ -274,7 +432,7 @@ impl ToolMetadata for ShapeTool { fn icon_name(&self) -> String { "VectorPolygonTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Shape Tool".into() } fn tool_type(&self) -> ToolType { @@ -285,7 +443,7 @@ impl ToolMetadata for ShapeTool { impl ToolTransition for ShapeTool { fn event_to_message_map(&self) -> EventToMessageMap { EventToMessageMap { - overlay_provider: Some(|overlay_context| ShapeToolMessage::Overlays(overlay_context).into()), + overlay_provider: Some(|context| ShapeToolMessage::Overlays { context }.into()), tool_abort: Some(ShapeToolMessage::Abort.into()), working_color_changed: Some(ShapeToolMessage::WorkingColorChanged.into()), ..Default::default() @@ -343,11 +501,11 @@ pub struct ShapeToolData { } impl ShapeToolData { - fn get_snap_candidates(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler) { + fn get_snap_candidates(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) { self.snap_candidates.clear(); for &layer in &self.layers_dragging { if (self.snap_candidates.len() as f64) < document.snapping_state.tolerance { - snapping::get_layer_snap_points(layer, &SnapData::new(document, input), &mut self.snap_candidates); + snapping::get_layer_snap_points(layer, &SnapData::new(document, input, viewport), &mut self.snap_candidates); } if let Some(bounds) = document.metadata().bounding_box_with_transform(layer, DAffine2::IDENTITY) { let quad = document.metadata().transform_to_document(layer) * Quad::from_box(bounds); @@ -372,6 +530,18 @@ impl ShapeToolData { fn shape_tool_modifier_keys() -> [Key; 3] { [Key::Alt, Key::Shift, Key::Control] } + + fn decrease_or_increase_sides(&self, document: &DocumentMessageHandler, shape_type: ShapeType, responses: &mut VecDeque, decrease: bool) { + if let Some(layer) = self.data.layer { + match shape_type { + ShapeType::Star | ShapeType::Polygon => Polygon::decrease_or_increase_sides(decrease, layer, document, responses), + ShapeType::Spiral => Spiral::update_turns(decrease, layer, document, responses), + _ => {} + } + } + + responses.add(NodeGraphMessage::RunDocumentGraph); + } } impl Fsm for ShapeToolFsmState { @@ -386,8 +556,8 @@ impl Fsm for ShapeToolFsmState { document, global_tool_data, input, - preferences, shape_editor, + viewport, .. }: &mut ToolActionMessageContext, tool_options: &Self::ToolOptions, @@ -402,7 +572,7 @@ impl Fsm for ShapeToolFsmState { let ToolMessage::Shape(event) = event else { return self }; match (self, event) { - (_, ShapeToolMessage::Overlays(mut overlay_context)) => { + (_, ShapeToolMessage::Overlays { context: mut overlay_context }) => { let mouse_position = tool_data .data .snap_manager @@ -426,7 +596,7 @@ impl Fsm for ShapeToolFsmState { let hovering_over_gizmo = tool_data.gizmo_manager.hovering_over_gizmo(); if !matches!(self, ShapeToolFsmState::ModifyingGizmo) && !modifying_transform_cage && !hovering_over_gizmo { - tool_data.data.snap_manager.draw_overlays(SnapData::new(document, input), &mut overlay_context); + tool_data.data.snap_manager.draw_overlays(SnapData::new(document, input, viewport), &mut overlay_context); } if modifying_transform_cage && !matches!(self, ShapeToolFsmState::ModifyingGizmo) { @@ -461,10 +631,11 @@ impl Fsm for ShapeToolFsmState { if is_skewing || (dragging_bounds && is_near_square && !hovering_over_gizmo) { bounds.render_skew_gizmos(&mut overlay_context, tool_data.skew_edge); } - if !is_skewing && dragging_bounds && !hovering_over_gizmo { - if let Some(edges) = edges { - tool_data.skew_edge = bounds.get_closest_edge(edges, input.mouse.position); - } + if dragging_bounds + && !is_skewing && !hovering_over_gizmo + && let Some(edges) = edges + { + tool_data.skew_edge = bounds.get_closest_edge(edges, input.mouse.position); } } @@ -484,11 +655,32 @@ impl Fsm for ShapeToolFsmState { self } (ShapeToolFsmState::Ready(_), ShapeToolMessage::IncreaseSides) => { - responses.add(ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::Vertices(tool_options.vertices + 1))); + if matches!(tool_options.shape_type, ShapeType::Star | ShapeType::Polygon) { + responses.add(ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::Vertices(tool_options.vertices + 1), + }); + } + + if matches!(tool_options.shape_type, ShapeType::Spiral) { + responses.add(ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::Turns(tool_options.turns + 1.), + }); + } + self } (ShapeToolFsmState::Ready(_), ShapeToolMessage::DecreaseSides) => { - responses.add(ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::Vertices((tool_options.vertices - 1).max(3)))); + if matches!(tool_options.shape_type, ShapeType::Star | ShapeType::Polygon) { + responses.add(ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::Vertices((tool_options.vertices - 1).max(3)), + }); + } + + if matches!(tool_options.shape_type, ShapeType::Spiral) { + responses.add(ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::Turns((tool_options.turns - 1.).max(1.)), + }); + } self } ( @@ -525,61 +717,11 @@ impl Fsm for ShapeToolFsmState { self } (ShapeToolFsmState::Drawing(_), ShapeToolMessage::IncreaseSides) => { - if let Some(layer) = tool_data.data.layer { - let Some(node_id) = graph_modification_utils::get_polygon_id(layer, &document.network_interface).or(graph_modification_utils::get_star_id(layer, &document.network_interface)) - else { - return self; - }; - - let Some(node_inputs) = NodeGraphLayer::new(layer, &document.network_interface) - .find_node_inputs("Regular Polygon") - .or(NodeGraphLayer::new(layer, &document.network_interface).find_node_inputs("Star")) - else { - return self; - }; - - let Some(&TaggedValue::U32(n)) = node_inputs.get(1).unwrap().as_value() else { - return self; - }; - - responses.add(ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::Vertices(n + 1))); - - responses.add(NodeGraphMessage::SetInput { - input_connector: InputConnector::node(node_id, 1), - input: NodeInput::value(TaggedValue::U32(n + 1), false), - }); - responses.add(NodeGraphMessage::RunDocumentGraph); - } - + tool_data.decrease_or_increase_sides(document, tool_options.shape_type, responses, false); self } (ShapeToolFsmState::Drawing(_), ShapeToolMessage::DecreaseSides) => { - if let Some(layer) = tool_data.data.layer { - let Some(node_id) = graph_modification_utils::get_polygon_id(layer, &document.network_interface).or(graph_modification_utils::get_star_id(layer, &document.network_interface)) - else { - return self; - }; - - let Some(node_inputs) = NodeGraphLayer::new(layer, &document.network_interface) - .find_node_inputs("Regular Polygon") - .or(NodeGraphLayer::new(layer, &document.network_interface).find_node_inputs("Star")) - else { - return self; - }; - - let Some(&TaggedValue::U32(n)) = node_inputs.get(1).unwrap().as_value() else { - return self; - }; - - responses.add(ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::Vertices((n - 1).max(3)))); - - responses.add(NodeGraphMessage::SetInput { - input_connector: InputConnector::node(node_id, 1), - input: NodeInput::value(TaggedValue::U32((n - 1).max(3)), false), - }); - responses.add(NodeGraphMessage::RunDocumentGraph); - } - + tool_data.decrease_or_increase_sides(document, tool_options.shape_type, responses, true); self } (ShapeToolFsmState::Ready(_), ShapeToolMessage::DragStart) => { @@ -603,7 +745,11 @@ impl Fsm for ShapeToolFsmState { tool_data.cursor = cursor; responses.add(FrontendMessage::UpdateMouseCursor { cursor }); // Send a PointerMove message to refresh the cursor icon - responses.add(ShapeToolMessage::PointerMove(ShapeToolData::shape_tool_modifier_keys())); + responses.add(ShapeToolMessage::PointerMove { + modifier: ShapeToolData::shape_tool_modifier_keys(), + }); + + responses.add(DocumentMessage::StartTransaction); return ShapeToolFsmState::ModifyingGizmo; } @@ -615,11 +761,10 @@ impl Fsm for ShapeToolFsmState { SNAP_POINT_TOLERANCE, document.network_interface.selected_nodes().selected_visible_and_unlocked_layers(&document.network_interface), |_| false, - preferences, - ) { - if clicked_on_line_endpoints(layer, document, input, tool_data) && !input.keyboard.key(Key::Control) { - return ShapeToolFsmState::DraggingLineEndpoints; - } + ) && clicked_on_line_endpoints(layer, document, input, tool_data) + && !input.keyboard.key(Key::Control) + { + return ShapeToolFsmState::DraggingLineEndpoints; } let (resize, rotate, skew) = transforming_transform_cage(document, &mut tool_data.bounding_box_manager, input, responses, &mut tool_data.layers_dragging, None); @@ -630,12 +775,14 @@ impl Fsm for ShapeToolFsmState { let cursor = tool_data.transform_cage_mouse_icon(input); tool_data.cursor = cursor; responses.add(FrontendMessage::UpdateMouseCursor { cursor }); - responses.add(ShapeToolMessage::PointerMove(ShapeToolData::shape_tool_modifier_keys())); + responses.add(ShapeToolMessage::PointerMove { + modifier: ShapeToolData::shape_tool_modifier_keys(), + }); }; match (resize, rotate, skew) { (true, false, false) => { - tool_data.get_snap_candidates(document, input); + tool_data.get_snap_candidates(document, input, viewport); update_cursor_and_pointer(tool_data, responses); return ShapeToolFsmState::ResizingBounds; @@ -647,7 +794,7 @@ impl Fsm for ShapeToolFsmState { return ShapeToolFsmState::RotatingBounds; } (false, false, true) => { - tool_data.get_snap_candidates(document, input); + tool_data.get_snap_candidates(document, input, viewport); update_cursor_and_pointer(tool_data, responses); return ShapeToolFsmState::SkewingBounds { skew: Key::Control }; @@ -657,10 +804,15 @@ impl Fsm for ShapeToolFsmState { }; match tool_data.current_shape { - ShapeType::Polygon | ShapeType::Star | ShapeType::Circle | ShapeType::Arc | ShapeType::Rectangle | ShapeType::Ellipse => tool_data.data.start(document, input), + ShapeType::Polygon | ShapeType::Star | ShapeType::Circle | ShapeType::Arc | ShapeType::Spiral | ShapeType::Grid | ShapeType::Rectangle | ShapeType::Ellipse => { + tool_data.data.start(document, input, viewport); + } ShapeType::Line => { let point = SnapCandidatePoint::handle(document.metadata().document_to_viewport.inverse().transform_point2(input.mouse.position)); - let snapped = tool_data.data.snap_manager.free_snap(&SnapData::new(document, input), &point, SnapTypeConfiguration::default()); + let snapped = tool_data + .data + .snap_manager + .free_snap(&SnapData::new(document, input, viewport), &point, SnapTypeConfiguration::default()); tool_data.data.drag_start = snapped.snapped_point_document; } } @@ -672,18 +824,20 @@ impl Fsm for ShapeToolFsmState { ShapeType::Star => Star::create_node(tool_options.vertices), ShapeType::Circle => Circle::create_node(), ShapeType::Arc => Arc::create_node(tool_options.arc_type), + ShapeType::Spiral => Spiral::create_node(tool_options.spiral_type, tool_options.turns), + ShapeType::Grid => Grid::create_node(tool_options.grid_type), ShapeType::Rectangle => Rectangle::create_node(), ShapeType::Ellipse => Ellipse::create_node(), ShapeType::Line => Line::create_node(document, tool_data.data.drag_start), }; let nodes = vec![(NodeId(0), node)]; - let layer = graph_modification_utils::new_custom(NodeId::new(), nodes, document.new_layer_bounding_artboard(input), responses); + let layer = graph_modification_utils::new_custom(NodeId::new(), nodes, document.new_layer_bounding_artboard(input, viewport), responses); let defered_responses = &mut VecDeque::new(); match tool_data.current_shape { - ShapeType::Polygon | ShapeType::Star | ShapeType::Circle | ShapeType::Arc | ShapeType::Rectangle | ShapeType::Ellipse => { + ShapeType::Polygon | ShapeType::Star | ShapeType::Circle | ShapeType::Arc | ShapeType::Spiral | ShapeType::Grid | ShapeType::Rectangle | ShapeType::Ellipse => { defered_responses.add(GraphOperationMessage::TransformSet { layer, transform: DAffine2::from_scale_angle_translation(DVec2::ONE, 0., input.mouse.position), @@ -710,49 +864,51 @@ impl Fsm for ShapeToolFsmState { ShapeToolFsmState::Drawing(tool_data.current_shape) } - (ShapeToolFsmState::Drawing(shape), ShapeToolMessage::PointerMove(modifier)) => { + (ShapeToolFsmState::Drawing(shape), ShapeToolMessage::PointerMove { modifier }) => { let Some(layer) = tool_data.data.layer else { return ShapeToolFsmState::Ready(shape); }; match tool_data.current_shape { - ShapeType::Polygon => Polygon::update_shape(document, input, layer, tool_data, modifier, responses), - ShapeType::Star => Star::update_shape(document, input, layer, tool_data, modifier, responses), - ShapeType::Circle => Circle::update_shape(document, input, layer, tool_data, modifier, responses), - ShapeType::Arc => Arc::update_shape(document, input, layer, tool_data, modifier, responses), - ShapeType::Rectangle => Rectangle::update_shape(document, input, layer, tool_data, modifier, responses), - ShapeType::Ellipse => Ellipse::update_shape(document, input, layer, tool_data, modifier, responses), - ShapeType::Line => Line::update_shape(document, input, layer, tool_data, modifier, responses), + ShapeType::Polygon => Polygon::update_shape(document, input, viewport, layer, tool_data, modifier, responses), + ShapeType::Star => Star::update_shape(document, input, viewport, layer, tool_data, modifier, responses), + ShapeType::Circle => Circle::update_shape(document, input, viewport, layer, tool_data, modifier, responses), + ShapeType::Arc => Arc::update_shape(document, input, viewport, layer, tool_data, modifier, responses), + ShapeType::Spiral => Spiral::update_shape(document, input, viewport, layer, tool_data, responses), + ShapeType::Grid => Grid::update_shape(document, input, layer, tool_options.grid_type, tool_data, modifier, responses), + ShapeType::Rectangle => Rectangle::update_shape(document, input, viewport, layer, tool_data, modifier, responses), + ShapeType::Ellipse => Ellipse::update_shape(document, input, viewport, layer, tool_data, modifier, responses), + ShapeType::Line => Line::update_shape(document, input, viewport, layer, tool_data, modifier, responses), } // Auto-panning - let messages = [ShapeToolMessage::PointerOutsideViewport(modifier).into(), ShapeToolMessage::PointerMove(modifier).into()]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + let messages = [ShapeToolMessage::PointerOutsideViewport { modifier }.into(), ShapeToolMessage::PointerMove { modifier }.into()]; + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); self } - (ShapeToolFsmState::DraggingLineEndpoints, ShapeToolMessage::PointerMove(modifier)) => { + (ShapeToolFsmState::DraggingLineEndpoints, ShapeToolMessage::PointerMove { modifier }) => { let Some(layer) = tool_data.line_data.editing_layer else { return ShapeToolFsmState::Ready(tool_data.current_shape); }; - Line::update_shape(document, input, layer, tool_data, modifier, responses); + Line::update_shape(document, input, viewport, layer, tool_data, modifier, responses); // Auto-panning - let messages = [ShapeToolMessage::PointerOutsideViewport(modifier).into(), ShapeToolMessage::PointerMove(modifier).into()]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + let messages = [ShapeToolMessage::PointerOutsideViewport { modifier }.into(), ShapeToolMessage::PointerMove { modifier }.into()]; + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); self } - (ShapeToolFsmState::ModifyingGizmo, ShapeToolMessage::PointerMove(..)) => { + (ShapeToolFsmState::ModifyingGizmo, ShapeToolMessage::PointerMove { .. }) => { tool_data.gizmo_manager.handle_update(tool_data.data.viewport_drag_start(document), document, input, responses); responses.add(OverlaysMessage::Draw); ShapeToolFsmState::ModifyingGizmo } - (ShapeToolFsmState::ResizingBounds, ShapeToolMessage::PointerMove(modifier)) => { + (ShapeToolFsmState::ResizingBounds, ShapeToolMessage::PointerMove { modifier }) => { if let Some(bounds) = &mut tool_data.bounding_box_manager { - let messages = [ShapeToolMessage::PointerOutsideViewport(modifier).into(), ShapeToolMessage::PointerMove(modifier).into()]; + let messages = [ShapeToolMessage::PointerOutsideViewport { modifier }.into(), ShapeToolMessage::PointerMove { modifier }.into()]; resize_bounds( document, responses, @@ -761,17 +917,18 @@ impl Fsm for ShapeToolFsmState { &mut tool_data.data.snap_manager, &mut tool_data.snap_candidates, input, + viewport, input.keyboard.key(modifier[0]), input.keyboard.key(modifier[1]), ToolType::Shape, ); - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); } responses.add(OverlaysMessage::Draw); ShapeToolFsmState::ResizingBounds } - (ShapeToolFsmState::RotatingBounds, ShapeToolMessage::PointerMove(modifier)) => { + (ShapeToolFsmState::RotatingBounds, ShapeToolMessage::PointerMove { modifier }) => { if let Some(bounds) = &mut tool_data.bounding_box_manager { rotate_bounds( document, @@ -787,7 +944,7 @@ impl Fsm for ShapeToolFsmState { ShapeToolFsmState::RotatingBounds } - (ShapeToolFsmState::SkewingBounds { skew }, ShapeToolMessage::PointerMove(_)) => { + (ShapeToolFsmState::SkewingBounds { skew }, ShapeToolMessage::PointerMove { .. }) => { if let Some(bounds) = &mut tool_data.bounding_box_manager { skew_bounds( document, @@ -803,7 +960,7 @@ impl Fsm for ShapeToolFsmState { ShapeToolFsmState::SkewingBounds { skew } } - (_, ShapeToolMessage::PointerMove(_)) => { + (_, ShapeToolMessage::PointerMove { .. }) => { let dragging_bounds = tool_data .bounding_box_manager .as_mut() @@ -820,26 +977,26 @@ impl Fsm for ShapeToolFsmState { responses.add(FrontendMessage::UpdateMouseCursor { cursor }); } - tool_data.data.snap_manager.preview_draw(&SnapData::new(document, input), input.mouse.position); + tool_data.data.snap_manager.preview_draw(&SnapData::new(document, input, viewport), input.mouse.position); responses.add(OverlaysMessage::Draw); self } - (ShapeToolFsmState::ResizingBounds | ShapeToolFsmState::SkewingBounds { .. }, ShapeToolMessage::PointerOutsideViewport(_)) => { + (ShapeToolFsmState::ResizingBounds | ShapeToolFsmState::SkewingBounds { .. }, ShapeToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - if let Some(shift) = tool_data.auto_panning.shift_viewport(input, responses) { - if let Some(bounds) = &mut tool_data.bounding_box_manager { - bounds.center_of_transformation += shift; - bounds.original_bound_transform.translation += shift; - } + if let Some(shift) = tool_data.auto_panning.shift_viewport(input, viewport, responses) + && let Some(bounds) = &mut tool_data.bounding_box_manager + { + bounds.center_of_transformation += shift; + bounds.original_bound_transform.translation += shift; } self } - (ShapeToolFsmState::Ready(_), ShapeToolMessage::PointerOutsideViewport(..)) => self, + (ShapeToolFsmState::Ready(_), ShapeToolMessage::PointerOutsideViewport { .. }) => self, (_, ShapeToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - let _ = tool_data.auto_panning.shift_viewport(input, responses); + let _ = tool_data.auto_panning.shift_viewport(input, viewport, responses); self } ( @@ -891,21 +1048,25 @@ impl Fsm for ShapeToolFsmState { ShapeToolFsmState::Ready(tool_data.current_shape) } (_, ShapeToolMessage::WorkingColorChanged) => { - responses.add(ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::WorkingColors( - Some(global_tool_data.primary_color), - Some(global_tool_data.secondary_color), - ))); + responses.add(ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::WorkingColors(Some(global_tool_data.primary_color), Some(global_tool_data.secondary_color)), + }); self } - (_, ShapeToolMessage::SetShape(shape)) => { + (_, ShapeToolMessage::SetShape { shape }) => { responses.add(DocumentMessage::AbortTransaction); tool_data.data.cleanup(responses); tool_data.current_shape = shape; + responses.add(ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ShapeType(shape), + }); - responses.add(ShapeToolMessage::UpdateOptions(ShapeOptionsUpdate::ShapeType(shape))); + responses.add(ShapeToolMessage::UpdateOptions { + options: ShapeOptionsUpdate::ShapeType(shape), + }); ShapeToolFsmState::Ready(shape) } - (_, ShapeToolMessage::HideShapeTypeWidget(hide)) => { + (_, ShapeToolMessage::HideShapeTypeWidget { hide }) => { tool_data.hide_shape_option_widget = hide; responses.add(ToolMessage::RefreshToolOptions); self @@ -935,6 +1096,10 @@ fn update_dynamic_hints(state: &ShapeToolFsmState, responses: &mut VecDeque vec![ + HintGroup(vec![HintInfo::mouse(MouseMotion::LmbDrag, "Draw Spiral")]), + HintGroup(vec![HintInfo::multi_keys([[Key::BracketLeft], [Key::BracketRight]], "Decrease/Increase Turns")]), + ], ShapeType::Ellipse => vec![HintGroup(vec![ HintInfo::mouse(MouseMotion::LmbDrag, "Draw Ellipse"), HintInfo::keys([Key::Shift], "Constrain Circular").prepend_plus(), @@ -960,6 +1125,11 @@ fn update_dynamic_hints(state: &ShapeToolFsmState, responses: &mut VecDeque vec![HintGroup(vec![ + HintInfo::mouse(MouseMotion::LmbDrag, "Draw Grid"), + HintInfo::keys([Key::Shift], "Constrain Regular").prepend_plus(), + HintInfo::keys([Key::Alt], "From Center").prepend_plus(), + ])], }; HintData(hint_groups) } @@ -969,12 +1139,14 @@ fn update_dynamic_hints(state: &ShapeToolFsmState, responses: &mut VecDeque HintGroup(vec![HintInfo::keys([Key::Shift], "Constrain Regular"), HintInfo::keys([Key::Alt], "From Center")]), ShapeType::Rectangle => HintGroup(vec![HintInfo::keys([Key::Shift], "Constrain Square"), HintInfo::keys([Key::Alt], "From Center")]), ShapeType::Ellipse => HintGroup(vec![HintInfo::keys([Key::Shift], "Constrain Circular"), HintInfo::keys([Key::Alt], "From Center")]), + ShapeType::Grid => HintGroup(vec![HintInfo::keys([Key::Shift], "Constrain Regular"), HintInfo::keys([Key::Alt], "From Center")]), ShapeType::Line => HintGroup(vec![ HintInfo::keys([Key::Shift], "15ยฐ Increments"), HintInfo::keys([Key::Alt], "From Center"), HintInfo::keys([Key::Control], "Lock Angle"), ]), ShapeType::Circle => HintGroup(vec![HintInfo::keys([Key::Alt], "From Center")]), + ShapeType::Spiral => HintGroup(vec![]), }; if !tool_hint_group.0.is_empty() { @@ -985,6 +1157,10 @@ fn update_dynamic_hints(state: &ShapeToolFsmState, responses: &mut VecDeque HintData(vec![ @@ -1009,5 +1185,5 @@ fn update_dynamic_hints(state: &ShapeToolFsmState, responses: &mut VecDeque HintData(vec![HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()])]), }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } diff --git a/editor/src/messages/tool/tool_messages/spline_tool.rs b/editor/src/messages/tool/tool_messages/spline_tool.rs index 6e455b293..18428d6fa 100644 --- a/editor/src/messages/tool/tool_messages/spline_tool.rs +++ b/editor/src/messages/tool/tool_messages/spline_tool.rs @@ -41,7 +41,7 @@ impl Default for SplineOptions { #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)] pub enum SplineToolMessage { // Standard messages - Overlays(OverlayContext), + Overlays { context: OverlayContext }, CanvasTransformed, Abort, WorkingColorChanged, @@ -54,7 +54,7 @@ pub enum SplineToolMessage { PointerMove, PointerOutsideViewport, Undo, - UpdateOptions(SplineOptionsUpdate), + UpdateOptions { options: SplineOptionsUpdate }, } #[derive(Clone, Copy, Debug, Default, PartialEq, Eq)] @@ -79,7 +79,7 @@ impl ToolMetadata for SplineTool { fn icon_name(&self) -> String { "VectorSplineTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Spline Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -87,14 +87,19 @@ impl ToolMetadata for SplineTool { } } -fn create_weight_widget(line_weight: f64) -> WidgetHolder { +fn create_weight_widget(line_weight: f64) -> WidgetInstance { NumberInput::new(Some(line_weight)) .unit(" px") .label("Weight") .min(0.) .max((1_u64 << f64::MANTISSA_DIGITS) as f64) - .on_update(|number_input: &NumberInput| SplineToolMessage::UpdateOptions(SplineOptionsUpdate::LineWeight(number_input.value.unwrap())).into()) - .widget_holder() + .on_update(|number_input: &NumberInput| { + SplineToolMessage::UpdateOptions { + options: SplineOptionsUpdate::LineWeight(number_input.value.unwrap()), + } + .into() + }) + .widget_instance() } impl LayoutHolder for SplineTool { @@ -102,35 +107,69 @@ impl LayoutHolder for SplineTool { let mut widgets = self.options.fill.create_widgets( "Fill", true, - |_| SplineToolMessage::UpdateOptions(SplineOptionsUpdate::FillColor(None)).into(), - |color_type: ToolColorType| WidgetCallback::new(move |_| SplineToolMessage::UpdateOptions(SplineOptionsUpdate::FillColorType(color_type.clone())).into()), - |color: &ColorInput| SplineToolMessage::UpdateOptions(SplineOptionsUpdate::FillColor(color.value.as_solid().map(|color| color.to_linear_srgb()))).into(), + |_| { + SplineToolMessage::UpdateOptions { + options: SplineOptionsUpdate::FillColor(None), + } + .into() + }, + |color_type: ToolColorType| { + WidgetCallback::new(move |_| { + SplineToolMessage::UpdateOptions { + options: SplineOptionsUpdate::FillColorType(color_type.clone()), + } + .into() + }) + }, + |color: &ColorInput| { + SplineToolMessage::UpdateOptions { + options: SplineOptionsUpdate::FillColor(color.value.as_solid().map(|color| color.to_linear_srgb())), + } + .into() + }, ); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.append(&mut self.options.stroke.create_widgets( "Stroke", true, - |_| SplineToolMessage::UpdateOptions(SplineOptionsUpdate::StrokeColor(None)).into(), - |color_type: ToolColorType| WidgetCallback::new(move |_| SplineToolMessage::UpdateOptions(SplineOptionsUpdate::StrokeColorType(color_type.clone())).into()), - |color: &ColorInput| SplineToolMessage::UpdateOptions(SplineOptionsUpdate::StrokeColor(color.value.as_solid().map(|color| color.to_linear_srgb()))).into(), + |_| { + SplineToolMessage::UpdateOptions { + options: SplineOptionsUpdate::StrokeColor(None), + } + .into() + }, + |color_type: ToolColorType| { + WidgetCallback::new(move |_| { + SplineToolMessage::UpdateOptions { + options: SplineOptionsUpdate::StrokeColorType(color_type.clone()), + } + .into() + }) + }, + |color: &ColorInput| { + SplineToolMessage::UpdateOptions { + options: SplineOptionsUpdate::StrokeColor(color.value.as_solid().map(|color| color.to_linear_srgb())), + } + .into() + }, )); - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.push(create_weight_widget(self.options.line_weight)); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } #[message_handler_data] impl<'a> MessageHandler> for SplineTool { fn process_message(&mut self, message: ToolMessage, responses: &mut VecDeque, context: &mut ToolActionMessageContext<'a>) { - let ToolMessage::Spline(SplineToolMessage::UpdateOptions(action)) = message else { + let ToolMessage::Spline(SplineToolMessage::UpdateOptions { options }) = message else { self.fsm_state.process_event(message, &mut self.tool_data, context, &self.options, responses, true); return; }; - match action { + match options { SplineOptionsUpdate::LineWeight(line_weight) => self.options.line_weight = line_weight, SplineOptionsUpdate::FillColor(color) => { self.options.fill.custom_color = color; @@ -179,7 +218,7 @@ impl<'a> MessageHandler> for Spli impl ToolTransition for SplineTool { fn event_to_message_map(&self) -> EventToMessageMap { EventToMessageMap { - overlay_provider: Some(|overlay_context: OverlayContext| SplineToolMessage::Overlays(overlay_context).into()), + overlay_provider: Some(|context: OverlayContext| SplineToolMessage::Overlays { context }.into()), canvas_transformed: Some(SplineToolMessage::CanvasTransformed.into()), tool_abort: Some(SplineToolMessage::Abort.into()), working_color_changed: Some(SplineToolMessage::WorkingColorChanged.into()), @@ -228,12 +267,12 @@ impl SplineToolData { } /// Get the snapped point while ignoring current layer - fn snapped_point(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler) -> SnappedPoint { + fn snapped_point(&mut self, document: &DocumentMessageHandler, input: &InputPreprocessorMessageHandler, viewport: &ViewportMessageHandler) -> SnappedPoint { let metadata = document.metadata(); let transform = self.current_layer.map_or(metadata.document_to_viewport, |layer| metadata.transform_to_viewport(layer)); let point = SnapCandidatePoint::handle(transform.inverse().transform_point2(input.mouse.position)); let ignore = if let Some(layer) = self.current_layer { vec![layer] } else { vec![] }; - let snap_data = SnapData::ignore(document, input, &ignore); + let snap_data = SnapData::ignore(document, input, viewport, &ignore); self.snap_manager.free_snap(&snap_data, &point, SnapTypeConfiguration::default()) } } @@ -255,16 +294,16 @@ impl Fsm for SplineToolFsmState { global_tool_data, input, shape_editor, - preferences, + viewport, .. } = tool_action_data; let ToolMessage::Spline(event) = event else { return self }; match (self, event) { (_, SplineToolMessage::CanvasTransformed) => self, - (_, SplineToolMessage::Overlays(mut overlay_context)) => { - path_endpoint_overlays(document, shape_editor, &mut overlay_context, preferences); - tool_data.snap_manager.draw_overlays(SnapData::new(document, input), &mut overlay_context); + (_, SplineToolMessage::Overlays { context: mut overlay_context }) => { + path_endpoint_overlays(document, shape_editor, &mut overlay_context); + tool_data.snap_manager.draw_overlays(SnapData::new(document, input, viewport), &mut overlay_context); self } (SplineToolFsmState::MergingEndpoints, SplineToolMessage::MergeEndpoints) => { @@ -303,15 +342,15 @@ impl Fsm for SplineToolFsmState { tool_data.weight = tool_options.line_weight; let point = SnapCandidatePoint::handle(document.metadata().document_to_viewport.inverse().transform_point2(input.mouse.position)); - let snapped = tool_data.snap_manager.free_snap(&SnapData::new(document, input), &point, SnapTypeConfiguration::default()); - let viewport = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); + let snapped = tool_data.snap_manager.free_snap(&SnapData::new(document, input, viewport), &point, SnapTypeConfiguration::default()); + let viewport_vec = document.metadata().document_to_viewport.transform_point2(snapped.snapped_point_document); let layers = LayerNodeIdentifier::ROOT_PARENT .descendants(document.metadata()) .filter(|layer| !document.network_interface.is_artboard(&layer.to_node(), &[])); // Extend an endpoint of the selected path - if let Some((layer, point, position)) = should_extend(document, viewport, SNAP_POINT_TOLERANCE, layers, preferences) { + if let Some((layer, point, position)) = should_extend(document, viewport_vec, SNAP_POINT_TOLERANCE, layers) { if find_spline(document, layer).is_some() { // If the point is the part of Spline then we extend it. tool_data.current_layer = Some(layer); @@ -347,7 +386,7 @@ impl Fsm for SplineToolFsmState { responses.add(DocumentMessage::DeselectAllLayers); - let parent = document.new_layer_bounding_artboard(input); + let parent = document.new_layer_bounding_artboard(input, viewport); let path_node_type = resolve_document_node_type("Path").expect("Path node does not exist"); let path_node = path_node_type.default_node_template(); @@ -371,13 +410,13 @@ impl Fsm for SplineToolFsmState { if tool_data.current_layer.is_none() { return SplineToolFsmState::Ready; }; - tool_data.next_point = tool_data.snapped_point(document, input).snapped_point_document; + tool_data.next_point = tool_data.snapped_point(document, input, viewport).snapped_point_document; if tool_data.points.last().is_none_or(|last_pos| last_pos.1.distance(tool_data.next_point) > DRAG_THRESHOLD) { let preview_point = tool_data.preview_point; extend_spline(tool_data, false, responses); tool_data.preview_point = preview_point; - if try_merging_lastest_endpoint(document, tool_data, preferences).is_some() { + if try_merging_lastest_endpoint(document, tool_data).is_some() { responses.add(SplineToolMessage::Confirm); } } @@ -387,14 +426,14 @@ impl Fsm for SplineToolFsmState { (SplineToolFsmState::Drawing, SplineToolMessage::PointerMove) => { let Some(layer) = tool_data.current_layer else { return SplineToolFsmState::Ready }; let ignore = |cp: PointId| tool_data.preview_point.is_some_and(|pp| pp == cp) || tool_data.points.last().is_some_and(|(ep, _)| *ep == cp); - let join_point = closest_point(document, input.mouse.position, PATH_JOIN_THRESHOLD, vec![layer].into_iter(), ignore, preferences); + let join_point = closest_point(document, input.mouse.position, PATH_JOIN_THRESHOLD, vec![layer].into_iter(), ignore); // Endpoints snapping if let Some((_, _, point)) = join_point { tool_data.next_point = point; tool_data.snap_manager.clear_indicator(); } else { - let snapped_point = tool_data.snapped_point(document, input); + let snapped_point = tool_data.snapped_point(document, input, viewport); tool_data.next_point = snapped_point.snapped_point_document; tool_data.snap_manager.update_indicator(snapped_point); } @@ -403,12 +442,12 @@ impl Fsm for SplineToolFsmState { // Auto-panning let messages = [SplineToolMessage::PointerOutsideViewport.into(), SplineToolMessage::PointerMove.into()]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); SplineToolFsmState::Drawing } (_, SplineToolMessage::PointerMove) => { - tool_data.snap_manager.preview_draw(&SnapData::new(document, input), input.mouse.position); + tool_data.snap_manager.preview_draw(&SnapData::new(document, input, viewport), input.mouse.position); responses.add(OverlaysMessage::Draw); self } @@ -417,7 +456,7 @@ impl Fsm for SplineToolFsmState { return self; } // Auto-panning - let _ = tool_data.auto_panning.shift_viewport(input, responses); + let _ = tool_data.auto_panning.shift_viewport(input, viewport, responses); SplineToolFsmState::Drawing } @@ -440,10 +479,9 @@ impl Fsm for SplineToolFsmState { SplineToolFsmState::Ready } (_, SplineToolMessage::WorkingColorChanged) => { - responses.add(SplineToolMessage::UpdateOptions(SplineOptionsUpdate::WorkingColors( - Some(global_tool_data.primary_color), - Some(global_tool_data.secondary_color), - ))); + responses.add(SplineToolMessage::UpdateOptions { + options: SplineOptionsUpdate::WorkingColors(Some(global_tool_data.primary_color), Some(global_tool_data.secondary_color)), + }); self } _ => self, @@ -464,7 +502,7 @@ impl Fsm for SplineToolFsmState { SplineToolFsmState::MergingEndpoints => HintData(vec![]), }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } fn update_cursor(&self, responses: &mut VecDeque) { @@ -472,7 +510,7 @@ impl Fsm for SplineToolFsmState { } } -fn try_merging_lastest_endpoint(document: &DocumentMessageHandler, tool_data: &mut SplineToolData, preferences: &PreferencesMessageHandler) -> Option<()> { +fn try_merging_lastest_endpoint(document: &DocumentMessageHandler, tool_data: &mut SplineToolData) -> Option<()> { if tool_data.points.len() < 2 { return None; }; @@ -487,7 +525,7 @@ fn try_merging_lastest_endpoint(document: &DocumentMessageHandler, tool_data: &m let exclude = |p: PointId| preview_point.is_some_and(|pp| pp == p) || *last_endpoint == p; let position = document.metadata().transform_to_viewport(current_layer).transform_point2(*last_endpoint_position); - let (layer, endpoint, _) = closest_point(document, position, PATH_JOIN_THRESHOLD, layers, exclude, preferences)?; + let (layer, endpoint, _) = closest_point(document, position, PATH_JOIN_THRESHOLD, layers, exclude)?; tool_data.merge_layers.insert(layer); tool_data.merge_endpoints.push((EndpointPosition::End, endpoint)); @@ -568,11 +606,7 @@ mod test_spline_tool { assert!( distance < epsilon, - "Point {} position mismatch: expected {:?}, got {:?} (distance: {})", - i, - expected_point, - actual_point, - distance + "Point {i} position mismatch: expected {expected_point:?}, got {actual_point:?} (distance: {distance})" ); } } @@ -606,13 +640,13 @@ mod test_spline_tool { // Verify initial spline has correct number of points and segments let initial_point_count = first_vector.point_domain.ids().len(); let initial_segment_count = first_vector.segment_domain.ids().len(); - assert_eq!(initial_point_count, 3, "Expected 3 points in initial spline, found {}", initial_point_count); - assert_eq!(initial_segment_count, 2, "Expected 2 segments in initial spline, found {}", initial_segment_count); + assert_eq!(initial_point_count, 3, "Expected 3 points in initial spline, found {initial_point_count}"); + assert_eq!(initial_segment_count, 2, "Expected 2 segments in initial spline, found {initial_segment_count}"); let layer_to_viewport = document.metadata().transform_to_viewport(spline_layer); let endpoints: Vec<(PointId, DVec2)> = first_vector - .extendable_points(false) + .anchor_endpoints() .filter_map(|point_id| first_vector.point_domain.position_from_id(point_id).map(|pos| (point_id, layer_to_viewport.transform_point2(pos)))) .collect(); @@ -641,8 +675,8 @@ mod test_spline_tool { let extended_point_count = extended_vector.point_domain.ids().len(); let extended_segment_count = extended_vector.segment_domain.ids().len(); - assert_eq!(extended_point_count, 5, "Expected 5 points in extended spline, found {}", extended_point_count); - assert_eq!(extended_segment_count, 4, "Expected 4 segments in extended spline, found {}", extended_segment_count); + assert_eq!(extended_point_count, 5, "Expected 5 points in extended spline, found {extended_point_count}"); + assert_eq!(extended_segment_count, 4, "Expected 4 segments in extended spline, found {extended_segment_count}"); // Verify the spline node is still the same let extended_spline_node = find_spline(document, spline_layer).expect("Spline node not found after extension"); @@ -677,7 +711,7 @@ mod test_spline_tool { // Evaluate the graph to ensure everything is processed if let Err(e) = editor.eval_graph().await { - panic!("Graph evaluation failed: {}", e); + panic!("Graph evaluation failed: {e}"); } // Get the layer and vector data @@ -717,7 +751,7 @@ mod test_spline_tool { // Evaluating the graph to ensure everything is processed if let Err(e) = editor.eval_graph().await { - panic!("Graph evaluation failed: {}", e); + panic!("Graph evaluation failed: {e}"); } // Get the layer and vector data @@ -755,7 +789,7 @@ mod test_spline_tool { // Evaluating the graph to ensure everything is processed if let Err(e) = editor.eval_graph().await { - panic!("Graph evaluation failed: {}", e); + panic!("Graph evaluation failed: {e}"); } // Get the layer and vector data @@ -794,7 +828,7 @@ mod test_spline_tool { editor.handle_message(SplineToolMessage::Confirm).await; if let Err(e) = editor.eval_graph().await { - panic!("Graph evaluation failed: {}", e); + panic!("Graph evaluation failed: {e}"); } // Get the layer and vector data @@ -851,8 +885,8 @@ mod test_spline_tool { let point_count = vector.point_domain.ids().len(); let segment_count = vector.segment_domain.ids().len(); - assert_eq!(point_count, 3, "Expected 3 points in the spline, found {}", point_count); - assert_eq!(segment_count, 2, "Expected 2 segments in the spline, found {}", segment_count); + assert_eq!(point_count, 3, "Expected 3 points in the spline, found {point_count}"); + assert_eq!(segment_count, 2, "Expected 2 segments in the spline, found {segment_count}"); let layer_to_viewport = document.metadata().transform_to_viewport(spline_layer); diff --git a/editor/src/messages/tool/tool_messages/text_tool.rs b/editor/src/messages/tool/tool_messages/text_tool.rs index 1e2cc3f6a..4bc39f208 100644 --- a/editor/src/messages/tool/tool_messages/text_tool.rs +++ b/editor/src/messages/tool/tool_messages/text_tool.rs @@ -6,6 +6,7 @@ use crate::messages::portfolio::document::graph_operation::utility_types::Transf use crate::messages::portfolio::document::overlays::utility_types::OverlayContext; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::network_interface::InputConnector; +use crate::messages::portfolio::utility_types::{FontCatalog, FontCatalogStyle, PersistentData}; use crate::messages::tool::common_functionality::auto_panning::AutoPanning; use crate::messages::tool::common_functionality::color_selector::{ToolColorOptions, ToolColorType}; use crate::messages::tool::common_functionality::graph_modification_utils::{self, is_layer_fed_by_node_of_name}; @@ -13,11 +14,12 @@ use crate::messages::tool::common_functionality::resize::Resize; use crate::messages::tool::common_functionality::snapping::{self, SnapCandidatePoint, SnapData}; use crate::messages::tool::common_functionality::transformation_cage::*; use crate::messages::tool::common_functionality::utility_functions::text_bounding_box; +use crate::messages::tool::utility_types::ToolRefreshOptions; use graph_craft::document::value::TaggedValue; use graph_craft::document::{NodeId, NodeInput}; use graphene_std::Color; use graphene_std::renderer::Quad; -use graphene_std::text::{Font, FontCache, TextAlign, TypesettingConfig, lines_clipping, load_font}; +use graphene_std::text::{Font, FontCache, TextAlign, TypesettingConfig, lines_clipping}; use graphene_std::vector::style::Fill; #[derive(Default, ExtractField)] @@ -31,8 +33,7 @@ pub struct TextOptions { font_size: f64, line_height_ratio: f64, character_spacing: f64, - font_name: String, - font_style: String, + font: Font, fill: ToolColorOptions, tilt: f64, align: TextAlign, @@ -44,8 +45,7 @@ impl Default for TextOptions { font_size: 24., line_height_ratio: 1.2, character_spacing: 0., - font_name: graphene_std::consts::DEFAULT_FONT_FAMILY.into(), - font_style: graphene_std::consts::DEFAULT_FONT_STYLE.into(), + font: Font::new(graphene_std::consts::DEFAULT_FONT_FAMILY.into(), graphene_std::consts::DEFAULT_FONT_STYLE.into()), fill: ToolColorOptions::new_primary(), tilt: 0., align: TextAlign::default(), @@ -59,7 +59,7 @@ pub enum TextToolMessage { // Standard messages Abort, WorkingColorChanged, - Overlays(OverlayContext), + Overlays { context: OverlayContext }, // Tool-specific messages DragStart, @@ -70,14 +70,15 @@ pub enum TextToolMessage { PointerOutsideViewport { center: Key, lock_ratio: Key }, TextChange { new_text: String, is_left_or_right_click: bool }, UpdateBounds { new_text: String }, - UpdateOptions(TextOptionsUpdate), + UpdateOptions { options: TextOptionsUpdate }, + RefreshEditingFontData, } #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize, specta::Type)] pub enum TextOptionsUpdate { FillColor(Option), FillColorType(ToolColorType), - Font { family: String, style: String }, + Font { font: Font }, FontSize(f64), LineHeightRatio(f64), Align(TextAlign), @@ -88,7 +89,7 @@ impl ToolMetadata for TextTool { fn icon_name(&self) -> String { "VectorTextTool".into() } - fn tooltip(&self) -> String { + fn tooltip_label(&self) -> String { "Text Tool".into() } fn tool_type(&self) -> crate::messages::tool::utility_types::ToolType { @@ -96,96 +97,193 @@ impl ToolMetadata for TextTool { } } -fn create_text_widgets(tool: &TextTool) -> Vec { - let font = FontInput::new(&tool.options.font_name, &tool.options.font_style) - .is_style_picker(false) - .on_update(|font_input: &FontInput| { - TextToolMessage::UpdateOptions(TextOptionsUpdate::Font { - family: font_input.font_family.clone(), - style: font_input.font_style.clone(), - }) +fn create_text_widgets(tool: &TextTool, font_catalog: &FontCatalog) -> Vec { + fn update_options(font: Font, commit_style: Option) -> impl Fn(&()) -> Message + Clone { + let mut font = font; + if let Some(style) = commit_style { + font.font_style = style; + } + + move |_| { + TextToolMessage::UpdateOptions { + options: TextOptionsUpdate::Font { font: font.clone() }, + } .into() - }) - .widget_holder(); - let style = FontInput::new(&tool.options.font_name, &tool.options.font_style) - .is_style_picker(true) - .on_update(|font_input: &FontInput| { - TextToolMessage::UpdateOptions(TextOptionsUpdate::Font { - family: font_input.font_family.clone(), - style: font_input.font_style.clone(), + } + } + + let font = DropdownInput::new(vec![ + font_catalog + .0 + .iter() + .map(|family| { + let font = Font::new(family.name.clone(), tool.options.font.font_style.clone()); + let commit_style = font_catalog.find_font_style_in_catalog(&tool.options.font).map(|style| style.to_named_style()); + let update = update_options(font.clone(), None); + let commit = update_options(font, commit_style); + + MenuListEntry::new(family.name.clone()) + .label(family.name.clone()) + .font(family.closest_style(400, false).preview_url(&family.name)) + .on_update(update) + .on_commit(commit) }) - .into() - }) - .widget_holder(); + .collect::>(), + ]) + .selected_index(font_catalog.0.iter().position(|family| family.name == tool.options.font.font_family).map(|i| i as u32)) + .virtual_scrolling(true) + .widget_instance(); + + let style = DropdownInput::new({ + font_catalog + .0 + .iter() + .find(|family| family.name == tool.options.font.font_family) + .map(|family| { + let build_entry = |style: &FontCatalogStyle| { + let font_style = style.to_named_style(); + + let font = Font::new(tool.options.font.font_family.clone(), font_style.clone()); + let commit_style = font_catalog.find_font_style_in_catalog(&tool.options.font).map(|style| style.to_named_style()); + let update = update_options(font.clone(), None); + let commit = update_options(font, commit_style); + + MenuListEntry::new(font_style.clone()).on_update(update).on_commit(commit).label(font_style) + }; + + vec![ + family.styles.iter().filter(|style| !style.italic).map(build_entry).collect::>(), + family.styles.iter().filter(|style| style.italic).map(build_entry).collect::>(), + ] + }) + .filter(|styles| !styles.is_empty()) + .unwrap_or_default() + }) + .selected_index( + font_catalog + .0 + .iter() + .find(|family| family.name == tool.options.font.font_family) + .and_then(|family| { + let not_italic = family.styles.iter().filter(|style| !style.italic); + let italic = family.styles.iter().filter(|style| style.italic); + not_italic + .chain(italic) + .position(|style| Some(style) == font_catalog.find_font_style_in_catalog(&tool.options.font).as_ref()) + }) + .map(|i| i as u32), + ) + .widget_instance(); + let size = NumberInput::new(Some(tool.options.font_size)) .unit(" px") .label("Size") .int() .min(1.) .max((1_u64 << f64::MANTISSA_DIGITS) as f64) - .on_update(|number_input: &NumberInput| TextToolMessage::UpdateOptions(TextOptionsUpdate::FontSize(number_input.value.unwrap())).into()) - .widget_holder(); + .on_update(|number_input: &NumberInput| { + TextToolMessage::UpdateOptions { + options: TextOptionsUpdate::FontSize(number_input.value.unwrap()), + } + .into() + }) + .widget_instance(); let line_height_ratio = NumberInput::new(Some(tool.options.line_height_ratio)) .label("Line Height") .int() .min(0.) .max((1_u64 << f64::MANTISSA_DIGITS) as f64) .step(0.1) - .on_update(|number_input: &NumberInput| TextToolMessage::UpdateOptions(TextOptionsUpdate::LineHeightRatio(number_input.value.unwrap())).into()) - .widget_holder(); + .on_update(|number_input: &NumberInput| { + TextToolMessage::UpdateOptions { + options: TextOptionsUpdate::LineHeightRatio(number_input.value.unwrap()), + } + .into() + }) + .widget_instance(); let align_entries: Vec<_> = [TextAlign::Left, TextAlign::Center, TextAlign::Right, TextAlign::JustifyLeft] .into_iter() .map(|align| { - RadioEntryData::new(format!("{align:?}")) - .label(align.to_string()) - .on_update(move |_| TextToolMessage::UpdateOptions(TextOptionsUpdate::Align(align)).into()) + RadioEntryData::new(format!("{align:?}")).label(align.to_string()).on_update(move |_| { + TextToolMessage::UpdateOptions { + options: TextOptionsUpdate::Align(align), + } + .into() + }) }) .collect(); - let align = RadioInput::new(align_entries).selected_index(Some(tool.options.align as u32)).widget_holder(); + let align = RadioInput::new(align_entries).selected_index(Some(tool.options.align as u32)).widget_instance(); vec![ font, - Separator::new(SeparatorType::Related).widget_holder(), + Separator::new(SeparatorType::Related).widget_instance(), style, - Separator::new(SeparatorType::Related).widget_holder(), + Separator::new(SeparatorType::Related).widget_instance(), size, - Separator::new(SeparatorType::Related).widget_holder(), + Separator::new(SeparatorType::Related).widget_instance(), line_height_ratio, - Separator::new(SeparatorType::Related).widget_holder(), + Separator::new(SeparatorType::Related).widget_instance(), align, ] } -impl LayoutHolder for TextTool { - fn layout(&self) -> Layout { - let mut widgets = create_text_widgets(self); +impl ToolRefreshOptions for TextTool { + fn refresh_options(&self, responses: &mut VecDeque, persistent_data: &PersistentData) { + self.send_layout(responses, LayoutTarget::ToolOptions, &persistent_data.font_catalog); + } +} - widgets.push(Separator::new(SeparatorType::Unrelated).widget_holder()); +impl TextTool { + fn send_layout(&self, responses: &mut VecDeque, layout_target: LayoutTarget, font_catalog: &FontCatalog) { + responses.add(LayoutMessage::SendLayout { + layout: self.layout(font_catalog), + layout_target, + }); + } + + fn layout(&self, font_catalog: &FontCatalog) -> Layout { + let mut widgets = create_text_widgets(self, font_catalog); + + widgets.push(Separator::new(SeparatorType::Unrelated).widget_instance()); widgets.append(&mut self.options.fill.create_widgets( "Fill", true, - |_| TextToolMessage::UpdateOptions(TextOptionsUpdate::FillColor(None)).into(), - |color_type: ToolColorType| WidgetCallback::new(move |_| TextToolMessage::UpdateOptions(TextOptionsUpdate::FillColorType(color_type.clone())).into()), - |color: &ColorInput| TextToolMessage::UpdateOptions(TextOptionsUpdate::FillColor(color.value.as_solid().map(|color| color.to_linear_srgb()))).into(), + |_| { + TextToolMessage::UpdateOptions { + options: TextOptionsUpdate::FillColor(None), + } + .into() + }, + |color_type: ToolColorType| { + WidgetCallback::new(move |_| { + TextToolMessage::UpdateOptions { + options: TextOptionsUpdate::FillColorType(color_type.clone()), + } + .into() + }) + }, + |color: &ColorInput| { + TextToolMessage::UpdateOptions { + options: TextOptionsUpdate::FillColor(color.value.as_solid().map(|color| color.to_linear_srgb())), + } + .into() + }, )); - Layout::WidgetLayout(WidgetLayout::new(vec![LayoutGroup::Row { widgets }])) + Layout(vec![LayoutGroup::Row { widgets }]) } } #[message_handler_data] impl<'a> MessageHandler> for TextTool { fn process_message(&mut self, message: ToolMessage, responses: &mut VecDeque, context: &mut ToolActionMessageContext<'a>) { - let ToolMessage::Text(TextToolMessage::UpdateOptions(action)) = message else { + let ToolMessage::Text(TextToolMessage::UpdateOptions { options }) = message else { self.fsm_state.process_event(message, &mut self.tool_data, context, &self.options, responses, true); return; }; - match action { - TextOptionsUpdate::Font { family, style } => { - self.options.font_name = family; - self.options.font_style = style; - - self.send_layout(responses, LayoutTarget::ToolOptions); + match options { + TextOptionsUpdate::Font { font } => { + self.options.font = font; } TextOptionsUpdate::FontSize(font_size) => self.options.font_size = font_size, TextOptionsUpdate::LineHeightRatio(line_height_ratio) => self.options.line_height_ratio = line_height_ratio, @@ -201,7 +299,7 @@ impl<'a> MessageHandler> for Text } } - self.send_layout(responses, LayoutTarget::ToolOptions); + self.send_layout(responses, LayoutTarget::ToolOptions, &context.persistent_data.font_catalog); } fn actions(&self) -> ActionList { @@ -237,7 +335,7 @@ impl ToolTransition for TextTool { canvas_transformed: None, tool_abort: Some(TextToolMessage::Abort.into()), working_color_changed: Some(TextToolMessage::WorkingColorChanged.into()), - overlay_provider: Some(|overlay_context| TextToolMessage::Overlays(overlay_context).into()), + overlay_provider: Some(|context| TextToolMessage::Overlays { context }.into()), ..Default::default() } } @@ -305,6 +403,7 @@ impl TextToolData { TextToolFsmState::Ready } + /// Set the editing state of the currently modifying layer fn set_editing(&self, editable: bool, font_cache: &FontCache, responses: &mut VecDeque) { if let Some(editing_text) = self.editing_text.as_ref().filter(|_| editable) { @@ -313,7 +412,7 @@ impl TextToolData { line_height_ratio: editing_text.typesetting.line_height_ratio, font_size: editing_text.typesetting.font_size, color: editing_text.color.unwrap_or(Color::BLACK), - url: font_cache.get_preview_url(&editing_text.font).cloned().unwrap_or_default(), + font_data: font_cache.get(&editing_text.font).map(|(data, _)| data.clone()).unwrap_or_default(), transform: editing_text.transform.to_cols_array(), max_width: editing_text.typesetting.max_width, max_height: editing_text.typesetting.max_height, @@ -377,6 +476,7 @@ impl TextToolData { self.layer = LayerNodeIdentifier::new_unchecked(NodeId::new()); + responses.add(PortfolioMessage::LoadFontData { font: editing_text.font.clone() }); responses.add(GraphOperationMessage::NewTextLayer { id: self.layer.to_node(), text: String::new(), @@ -464,9 +564,11 @@ impl Fsm for TextToolFsmState { document, global_tool_data, input, - font_cache, + persistent_data, + viewport, .. } = transition_data; + let font_cache = &persistent_data.font_cache; let fill_color = graphene_std::Color::from_rgb_str(COLOR_OVERLAY_BLUE.strip_prefix('#').unwrap()) .unwrap() .with_alpha(0.05) @@ -474,13 +576,11 @@ impl Fsm for TextToolFsmState { let ToolMessage::Text(event) = event else { return self }; match (self, event) { - (TextToolFsmState::Editing, TextToolMessage::Overlays(mut overlay_context)) => { - responses.add(FrontendMessage::DisplayEditableTextboxTransform { - transform: document.metadata().transform_to_viewport(tool_data.layer).to_cols_array(), - }); + (TextToolFsmState::Editing, TextToolMessage::Overlays { context: mut overlay_context }) => { + let transform = document.metadata().transform_to_viewport(tool_data.layer).to_cols_array(); + responses.add(FrontendMessage::DisplayEditableTextboxTransform { transform }); if let Some(editing_text) = tool_data.editing_text.as_mut() { - let font_data = font_cache.get(&editing_text.font).map(|data| load_font(data)); - let far = graphene_std::text::bounding_box(&tool_data.new_text, font_data, editing_text.typesetting, false); + let far = graphene_std::text::bounding_box(&tool_data.new_text, &editing_text.font, font_cache, editing_text.typesetting, false); if far.x != 0. && far.y != 0. { let quad = Quad::from_box([DVec2::ZERO, far]); let transformed_quad = document.metadata().transform_to_viewport(tool_data.layer) * quad; @@ -490,13 +590,13 @@ impl Fsm for TextToolFsmState { TextToolFsmState::Editing } - (_, TextToolMessage::Overlays(mut overlay_context)) => { + (_, TextToolMessage::Overlays { context: mut overlay_context }) => { if matches!(self, Self::Placing) { // Get the updated selection box bounds let quad = Quad::from_box(tool_data.cached_resize_bounds); // Draw a bounding box on the layers to be selected - for layer in document.intersect_quad_no_artboards(quad, input) { + for layer in document.intersect_quad_no_artboards(quad, viewport) { overlay_context.quad( Quad::from_box(document.metadata().bounding_box_viewport(layer).unwrap_or([DVec2::ZERO; 2])), None, @@ -527,11 +627,10 @@ impl Fsm for TextToolFsmState { bounding_box_manager.render_quad(&mut overlay_context); // Draw red overlay if text is clipped let transformed_quad = layer_transform * bounds; - if let Some((text, font, typesetting, _)) = graph_modification_utils::get_text(layer.unwrap(), &document.network_interface) { - let font_data = font_cache.get(font).map(|data| load_font(data)); - if lines_clipping(text.as_str(), font_data, typesetting) { - overlay_context.line(transformed_quad.0[2], transformed_quad.0[3], Some(COLOR_OVERLAY_RED), Some(3.)); - } + if let Some((text, font, typesetting, _)) = graph_modification_utils::get_text(layer.unwrap(), &document.network_interface) + && lines_clipping(text.as_str(), font, font_cache, typesetting) + { + overlay_context.line(transformed_quad.0[2], transformed_quad.0[3], Some(COLOR_OVERLAY_RED), Some(3.)); } bounding_box_manager.render_overlays(&mut overlay_context, false); @@ -540,7 +639,7 @@ impl Fsm for TextToolFsmState { tool_data.bounding_box_manager.take(); } - tool_data.resize.snap_manager.draw_overlays(SnapData::new(document, input), &mut overlay_context); + tool_data.resize.snap_manager.draw_overlays(SnapData::new(document, input, viewport), &mut overlay_context); self } @@ -553,7 +652,7 @@ impl Fsm for TextToolFsmState { state } (TextToolFsmState::Ready, TextToolMessage::DragStart) => { - tool_data.resize.start(document, input); + tool_data.resize.start(document, input, viewport); tool_data.cached_resize_bounds = [tool_data.resize.viewport_drag_start(document); 2]; tool_data.drag_start = input.mouse.position; tool_data.drag_current = input.mouse.position; @@ -627,7 +726,7 @@ impl Fsm for TextToolFsmState { TextToolFsmState::Ready } (TextToolFsmState::Placing, TextToolMessage::PointerMove { center, lock_ratio }) => { - tool_data.cached_resize_bounds = tool_data.resize.calculate_points_ignore_layer(document, input, center, lock_ratio, false); + tool_data.cached_resize_bounds = tool_data.resize.calculate_points_ignore_layer(document, input, viewport, center, lock_ratio, false); responses.add(OverlaysMessage::Draw); @@ -636,7 +735,7 @@ impl Fsm for TextToolFsmState { TextToolMessage::PointerOutsideViewport { center, lock_ratio }.into(), TextToolMessage::PointerMove { center, lock_ratio }.into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); TextToolFsmState::Placing } @@ -659,91 +758,91 @@ impl Fsm for TextToolFsmState { TextToolMessage::PointerOutsideViewport { center, lock_ratio }.into(), TextToolMessage::PointerMove { center, lock_ratio }.into(), ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); } TextToolFsmState::Dragging } (TextToolFsmState::ResizingBounds, TextToolMessage::PointerMove { center, lock_ratio }) => { - if let Some(bounds) = &mut tool_data.bounding_box_manager { - if let Some(movement) = &mut bounds.selected_edges { - let (centered, constrain) = (input.keyboard.key(center), input.keyboard.key(lock_ratio)); - let center_position = centered.then_some(bounds.center_of_transformation); + if let Some(bounds) = &mut tool_data.bounding_box_manager + && let Some(movement) = &mut bounds.selected_edges + { + let (centered, constrain) = (input.keyboard.key(center), input.keyboard.key(lock_ratio)); + let center_position = centered.then_some(bounds.center_of_transformation); - let Some(dragging_layer) = tool_data.layer_dragging else { return TextToolFsmState::Ready }; - let Some(node_id) = graph_modification_utils::get_text_id(dragging_layer.id, &document.network_interface) else { - warn!("Cannot get text node id"); - tool_data.layer_dragging.take(); - return TextToolFsmState::Ready; - }; + let Some(dragging_layer) = tool_data.layer_dragging else { return TextToolFsmState::Ready }; + let Some(node_id) = graph_modification_utils::get_text_id(dragging_layer.id, &document.network_interface) else { + warn!("Cannot get text node id"); + tool_data.layer_dragging.take(); + return TextToolFsmState::Ready; + }; - let selected = vec![dragging_layer.id]; - let snap = Some(SizeSnapData { - manager: &mut tool_data.resize.snap_manager, - points: &mut tool_data.snap_candidates, - snap_data: SnapData::ignore(document, input, &selected), - }); + let selected = vec![dragging_layer.id]; + let snap = Some(SizeSnapData { + manager: &mut tool_data.resize.snap_manager, + points: &mut tool_data.snap_candidates, + snap_data: SnapData::ignore(document, input, viewport, &selected), + }); - let (position, size) = movement.new_size(input.mouse.position, bounds.original_bound_transform, center_position, constrain, snap); - // Normalize so the size is always positive - let (position, size) = (position.min(position + size), size.abs()); + let (position, size) = movement.new_size(input.mouse.position, bounds.original_bound_transform, center_position, constrain, snap); + // Normalize so the size is always positive + let (position, size) = (position.min(position + size), size.abs()); - // Compute the offset needed for the top left in bounds space - let original_position = movement.bounds[0].min(movement.bounds[1]); - let translation_bounds_space = position - original_position; + // Compute the offset needed for the top left in bounds space + let original_position = movement.bounds[0].min(movement.bounds[1]); + let translation_bounds_space = position - original_position; - // Compute a transformation from bounds->viewport->layer - let transform_to_layer = document.metadata().transform_to_viewport(dragging_layer.id).inverse() * bounds.original_bound_transform; - let size_layer = transform_to_layer.transform_vector2(size); + // Compute a transformation from bounds->viewport->layer + let transform_to_layer = document.metadata().transform_to_viewport(dragging_layer.id).inverse() * bounds.original_bound_transform; + let size_layer = transform_to_layer.transform_vector2(size); - // Find the translation necessary from the original position in viewport space - let translation_viewport = bounds.original_bound_transform.transform_vector2(translation_bounds_space); + // Find the translation necessary from the original position in viewport space + let translation_viewport = bounds.original_bound_transform.transform_vector2(translation_bounds_space); - responses.add(NodeGraphMessage::SetInput { - input_connector: InputConnector::node(node_id, 6), - input: NodeInput::value(TaggedValue::OptionalF64(Some(size_layer.x)), false), - }); - responses.add(NodeGraphMessage::SetInput { - input_connector: InputConnector::node(node_id, 7), - input: NodeInput::value(TaggedValue::OptionalF64(Some(size_layer.y)), false), - }); - responses.add(GraphOperationMessage::TransformSet { - layer: dragging_layer.id, - transform: DAffine2::from_translation(translation_viewport) * document.metadata().document_to_viewport * dragging_layer.original_transform, - transform_in: TransformIn::Viewport, - skip_rerender: false, - }); - responses.add(NodeGraphMessage::RunDocumentGraph); + responses.add(NodeGraphMessage::SetInput { + input_connector: InputConnector::node(node_id, 6), + input: NodeInput::value(TaggedValue::OptionalF64(Some(size_layer.x)), false), + }); + responses.add(NodeGraphMessage::SetInput { + input_connector: InputConnector::node(node_id, 7), + input: NodeInput::value(TaggedValue::OptionalF64(Some(size_layer.y)), false), + }); + responses.add(GraphOperationMessage::TransformSet { + layer: dragging_layer.id, + transform: DAffine2::from_translation(translation_viewport) * document.metadata().document_to_viewport * dragging_layer.original_transform, + transform_in: TransformIn::Viewport, + skip_rerender: false, + }); + responses.add(NodeGraphMessage::RunDocumentGraph); - // Auto-panning - let messages = [ - TextToolMessage::PointerOutsideViewport { center, lock_ratio }.into(), - TextToolMessage::PointerMove { center, lock_ratio }.into(), - ]; - tool_data.auto_panning.setup_by_mouse_position(input, &messages, responses); - } + // Auto-panning + let messages = [ + TextToolMessage::PointerOutsideViewport { center, lock_ratio }.into(), + TextToolMessage::PointerMove { center, lock_ratio }.into(), + ]; + tool_data.auto_panning.setup_by_mouse_position(input, viewport, &messages, responses); } TextToolFsmState::ResizingBounds } (_, TextToolMessage::PointerMove { .. }) => { - tool_data.resize.snap_manager.preview_draw(&SnapData::new(document, input), input.mouse.position); + tool_data.resize.snap_manager.preview_draw(&SnapData::new(document, input, viewport), input.mouse.position); responses.add(OverlaysMessage::Draw); self } (TextToolFsmState::Placing, TextToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning setup - let _ = tool_data.auto_panning.shift_viewport(input, responses); + let _ = tool_data.auto_panning.shift_viewport(input, viewport, responses); TextToolFsmState::Placing } (TextToolFsmState::ResizingBounds | TextToolFsmState::Dragging, TextToolMessage::PointerOutsideViewport { .. }) => { // Auto-panning - if let Some(shift) = tool_data.auto_panning.shift_viewport(input, responses) { - if let Some(bounds) = &mut tool_data.bounding_box_manager { - bounds.center_of_transformation += shift; - bounds.original_bound_transform.translation += shift; - } + if let Some(shift) = tool_data.auto_panning.shift_viewport(input, viewport, responses) + && let Some(bounds) = &mut tool_data.bounding_box_manager + { + bounds.center_of_transformation += shift; + bounds.original_bound_transform.translation += shift; } self @@ -776,11 +875,9 @@ impl Fsm for TextToolFsmState { let has_dragged = (start - end).length_squared() > DRAG_THRESHOLD * DRAG_THRESHOLD; // Check if the user has clicked (no dragging) on some existing text - if !has_dragged { - if let Some(clicked_text_layer_path) = TextToolData::check_click(document, input, font_cache) { - tool_data.start_editing_layer(clicked_text_layer_path, self, document, font_cache, responses); - return TextToolFsmState::Editing; - } + if !has_dragged && let Some(clicked_text_layer_path) = TextToolData::check_click(document, input, font_cache) { + tool_data.start_editing_layer(clicked_text_layer_path, self, document, font_cache, responses); + return TextToolFsmState::Editing; } // Otherwise create some new text @@ -797,7 +894,7 @@ impl Fsm for TextToolFsmState { tilt: tool_options.tilt, align: tool_options.align, }, - font: Font::new(tool_options.font_name.clone(), tool_options.font_style.clone()), + font: Font::new(tool_options.font.font_family.clone(), tool_options.font.font_style.clone()), color: tool_options.fill.active_color(), }; tool_data.new_text(document, editing_text, font_cache, responses); @@ -814,16 +911,22 @@ impl Fsm for TextToolFsmState { bounds.original_transforms.clear(); } - if drag_too_small { - if let Some(layer_info) = &tool_data.layer_dragging { - tool_data.start_editing_layer(layer_info.id, self, document, font_cache, responses); - return TextToolFsmState::Editing; - } + if drag_too_small && let Some(layer_info) = &tool_data.layer_dragging { + tool_data.start_editing_layer(layer_info.id, self, document, font_cache, responses); + return TextToolFsmState::Editing; } tool_data.layer_dragging.take(); TextToolFsmState::Ready } + (TextToolFsmState::Editing, TextToolMessage::RefreshEditingFontData) => { + let font = Font::new(tool_options.font.font_family.clone(), tool_options.font.font_style.clone()); + responses.add(FrontendMessage::DisplayEditableTextboxUpdateFontData { + font_data: font_cache.get(&font).map(|(data, _)| data.clone()).unwrap_or_default(), + }); + + TextToolFsmState::Editing + } (TextToolFsmState::Editing, TextToolMessage::TextChange { new_text, is_left_or_right_click }) => { tool_data.new_text = new_text; @@ -843,6 +946,7 @@ impl Fsm for TextToolFsmState { } responses.add(FrontendMessage::TriggerTextCommit); + TextToolFsmState::Editing } } @@ -852,10 +956,9 @@ impl Fsm for TextToolFsmState { TextToolFsmState::Editing } (_, TextToolMessage::WorkingColorChanged) => { - responses.add(TextToolMessage::UpdateOptions(TextOptionsUpdate::WorkingColors( - Some(global_tool_data.primary_color), - Some(global_tool_data.secondary_color), - ))); + responses.add(TextToolMessage::UpdateOptions { + options: TextOptionsUpdate::WorkingColors(Some(global_tool_data.primary_color), Some(global_tool_data.secondary_color)), + }); self } (TextToolFsmState::Editing, TextToolMessage::Abort) => { @@ -912,7 +1015,7 @@ impl Fsm for TextToolFsmState { ]), }; - responses.add(FrontendMessage::UpdateInputHints { hint_data }); + hint_data.send_layout(responses); } fn update_cursor(&self, responses: &mut VecDeque) { diff --git a/editor/src/messages/tool/transform_layer/transform_layer_message.rs b/editor/src/messages/tool/transform_layer/transform_layer_message.rs index c819260e5..4922db713 100644 --- a/editor/src/messages/tool/transform_layer/transform_layer_message.rs +++ b/editor/src/messages/tool/transform_layer/transform_layer_message.rs @@ -8,10 +8,8 @@ use glam::DVec2; #[impl_message(Message, ToolMessage, TransformLayer)] #[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] pub enum TransformLayerMessage { - // Overlays - Overlays(OverlayContext), - // Messages + Overlays { context: OverlayContext }, ApplyTransformOperation { final_transform: bool }, BeginTransformOperation { operation: TransformType }, BeginGrab, diff --git a/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs b/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs index bcad0b24d..12da55517 100644 --- a/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs +++ b/editor/src/messages/tool/transform_layer/transform_layer_message_handler.rs @@ -1,5 +1,6 @@ use crate::consts::{ANGLE_MEASURE_RADIUS_FACTOR, ARC_MEASURE_RADIUS_FACTOR_RANGE, COLOR_OVERLAY_BLUE, COLOR_OVERLAY_GRAY, SLOWING_DIVISOR}; use crate::messages::input_mapper::utility_types::input_mouse::{DocumentPosition, ViewportPosition}; +use crate::messages::portfolio::document::overlays::utility_functions::text_width; use crate::messages::portfolio::document::overlays::utility_types::{OverlayProvider, Pivot}; use crate::messages::portfolio::document::utility_types::document_metadata::LayerNodeIdentifier; use crate::messages::portfolio::document::utility_types::misc::PTZ; @@ -7,6 +8,7 @@ use crate::messages::portfolio::document::utility_types::transformation::{Axis, use crate::messages::prelude::*; use crate::messages::tool::common_functionality::pivot::{PivotGizmo, PivotGizmoType}; use crate::messages::tool::common_functionality::shape_editor::ShapeState; +use crate::messages::tool::tool_messages::select_tool; use crate::messages::tool::tool_messages::tool_prelude::Key; use crate::messages::tool::utility_types::{ToolData, ToolType}; use glam::{DAffine2, DVec2}; @@ -16,7 +18,7 @@ use graphene_std::vector::misc::ManipulatorPointId; use graphene_std::vector::{Vector, VectorModificationType}; use std::f64::consts::{PI, TAU}; -const TRANSFORM_GRS_OVERLAY_PROVIDER: OverlayProvider = |context| TransformLayerMessage::Overlays(context).into(); +const TRANSFORM_GRS_OVERLAY_PROVIDER: OverlayProvider = |context| TransformLayerMessage::Overlays { context }.into(); // TODO: Get these from the input mapper const SLOW_KEY: Key = Key::Shift; @@ -28,45 +30,73 @@ pub struct TransformLayerMessageContext<'a> { pub input: &'a InputPreprocessorMessageHandler, pub tool_data: &'a ToolData, pub shape_editor: &'a mut ShapeState, + pub viewport: &'a ViewportMessageHandler, +} + +#[derive(Debug, Clone, Default, ExtractField)] +pub struct TransformationState { + pub is_rounded_to_intervals: bool, + pub is_transforming_in_local_space: bool, + pub local_transform_axes: [DVec2; 2], + pub document_space_pivot: DocumentPosition, +} + +impl TransformationState { + pub fn pivot_viewport(&self, document: &DocumentMessageHandler) -> DVec2 { + document.metadata().document_to_viewport.transform_point2(self.document_space_pivot) + } + + pub fn constraint_axis(&self, axis_constraint: Axis) -> Option { + match axis_constraint { + Axis::X => Some(if self.is_transforming_in_local_space { self.local_transform_axes[0] } else { DVec2::X }), + Axis::Y => Some(if self.is_transforming_in_local_space { self.local_transform_axes[1] } else { DVec2::Y }), + _ => None, + } + } + + pub fn project_onto_constrained(&self, vector: DVec2, axis_constraint: Axis) -> DVec2 { + self.constraint_axis(axis_constraint).map_or(vector, |direction| vector.project_onto_normalized(direction)) + } + + pub fn local_to_viewport_transform(&self) -> DAffine2 { + if self.is_transforming_in_local_space { + DAffine2::from_cols(self.local_transform_axes[0], self.local_transform_axes[1], DVec2::ZERO) + } else { + DAffine2::IDENTITY + } + } } #[derive(Debug, Clone, Default, ExtractField)] pub struct TransformLayerMessageHandler { pub transform_operation: TransformOperation, - + state: TransformationState, slow: bool, - increments: bool, - local: bool, layer_bounding_box: Quad, typing: Typing, - mouse_position: ViewportPosition, start_mouse: ViewportPosition, - original_transforms: OriginalTransforms, pivot_gizmo: PivotGizmo, pivot: ViewportPosition, - path_bounds: Option<[DVec2; 2]>, - - local_pivot: DocumentPosition, local_mouse_start: DocumentPosition, grab_target: DocumentPosition, - ptz: PTZ, initial_transform: DAffine2, - operation_count: usize, + was_grabbing: bool, // Pen tool (outgoing handle GRS manipulation) handle: DVec2, last_point: DVec2, grs_pen_handle: bool, - // Ghost outlines for Path Tool + // Path tool (ghost outlines showing pre-transform geometry) ghost_outline: Vec<(Vec, DAffine2)>, } +#[message_handler_data] impl MessageHandler> for TransformLayerMessageHandler { fn process_message(&mut self, message: TransformLayerMessage, responses: &mut VecDeque, context: TransformLayerMessageContext) { let TransformLayerMessageContext { @@ -74,6 +104,7 @@ impl MessageHandler> for input, tool_data, shape_editor, + viewport, } = context; let using_path_tool = tool_data.active_tool_type == ToolType::Path; @@ -119,10 +150,10 @@ impl MessageHandler> for if !using_path_tool { self.pivot_gizmo.recalculate_transform(document); *selected.pivot = self.pivot_gizmo.position(document); - self.local_pivot = document.metadata().document_to_viewport.inverse().transform_point2(*selected.pivot); - self.grab_target = self.local_pivot; + self.state.document_space_pivot = document.metadata().document_to_viewport.inverse().transform_point2(*selected.pivot); + self.grab_target = self.state.document_space_pivot; } - // Here vector data from all layers is not considered which can be a problem in pivot calculation + // TODO: Here vector data from all layers is not considered which can be a problem in pivot calculation else if let Some(vector) = selected_layers.first().and_then(|&layer| document.network_interface.compute_modified_vector(layer)) { *selected.original_transforms = OriginalTransforms::default(); @@ -151,7 +182,7 @@ impl MessageHandler> for *selected.pivot = new_pivot; self.path_bounds = bounds; - self.local_pivot = document_to_viewport.inverse().transform_point2(*selected.pivot); + self.state.document_space_pivot = document_to_viewport.inverse().transform_point2(*selected.pivot); self.grab_target = document_to_viewport.inverse().transform_point2(grab_target); } else { log::warn!("Failed to calculate pivot."); @@ -170,7 +201,7 @@ impl MessageHandler> for match message { // Overlays - TransformLayerMessage::Overlays(mut overlay_context) => { + TransformLayerMessage::Overlays { context: mut overlay_context } => { if !overlay_context.visibility_settings.transform_measurement() { return; } @@ -181,12 +212,12 @@ impl MessageHandler> for } } - let viewport_box = input.viewport_bounds.size(); + let viewport_box = viewport.size().into_dvec2(); let axis_constraint = self.transform_operation.axis_constraint(); let format_rounded = |value: f64, precision: usize| { if self.typing.digits.is_empty() || !self.transform_operation.can_begin_typing() { - format!("{:.*}", precision, value).trim_end_matches('0').trim_end_matches('.').to_string() + format!("{value:.precision$}").trim_end_matches('0').trim_end_matches('.').to_string() } else { self.typing.string.clone() } @@ -201,52 +232,52 @@ impl MessageHandler> for match self.transform_operation { TransformOperation::None => (), TransformOperation::Grabbing(translation) => { - let translation = translation.to_dvec(self.initial_transform, self.increments); - let viewport_translate = document_to_viewport.transform_vector2(translation); + let translation_viewport = self.state.local_to_viewport_transform().matrix2 * translation.to_dvec(&self.state, document); let pivot = document_to_viewport.transform_point2(self.grab_target); - let quad = Quad::from_box([pivot, pivot + viewport_translate]); + let quad = Quad::from_box([pivot, pivot + translation_viewport]); responses.add(SelectToolMessage::PivotShift { - offset: Some(viewport_translate), + offset: Some(translation_viewport), flush: false, }); let typed_string = (!self.typing.digits.is_empty() && self.transform_operation.can_begin_typing()).then(|| self.typing.string.clone()); - overlay_context.translation_box(translation, quad, typed_string); + overlay_context.translation_box(translation_viewport / document_to_viewport.matrix2.y_axis.length(), quad, typed_string); } TransformOperation::Scaling(scale) => { - let scale = scale.to_f64(self.increments); + let scale = scale.to_f64(self.state.is_rounded_to_intervals); let text = format!("{}x", format_rounded(scale, 3)); - let pivot = document_to_viewport.transform_point2(self.local_pivot); let start_mouse = document_to_viewport.transform_point2(self.local_mouse_start); - let local_edge = start_mouse - pivot; - let local_edge = project_edge_to_quad(local_edge, &self.layer_bounding_box, self.local, axis_constraint); - let boundary_point = pivot + local_edge * scale.min(1.); - let end_point = pivot + local_edge * scale.max(1.); + let local_edge = start_mouse - self.state.pivot_viewport(document); + let local_edge = self.state.project_onto_constrained(local_edge, axis_constraint); + let boundary_point = self.state.pivot_viewport(document) + local_edge * scale.min(1.); + let end_point = self.state.pivot_viewport(document) + local_edge * scale.max(1.); if scale > 0. { - overlay_context.dashed_line(pivot, boundary_point, None, None, Some(2.), Some(2.), Some(0.5)); + overlay_context.dashed_line(self.state.pivot_viewport(document), boundary_point, None, None, Some(2.), Some(2.), Some(0.5)); } overlay_context.line(boundary_point, end_point, None, None); - let transform = DAffine2::from_translation(boundary_point.midpoint(pivot) + local_edge.perp().normalize_or(DVec2::X) * local_edge.element_product().signum() * 24.); + let transform = DAffine2::from_translation( + boundary_point.midpoint(self.state.pivot_viewport(document)) + local_edge.perp().normalize_or(DVec2::X) * local_edge.element_product().signum() * 24., + ); overlay_context.text(&text, COLOR_OVERLAY_BLUE, None, transform, 16., [Pivot::Middle, Pivot::Middle]); } TransformOperation::Rotating(rotation) => { - let angle = rotation.to_f64(self.increments); - let pivot = document_to_viewport.transform_point2(self.local_pivot); + let angle = rotation.to_f64(self.state.is_rounded_to_intervals); let start_mouse = document_to_viewport.transform_point2(self.local_mouse_start); let offset_angle = if self.grs_pen_handle { self.handle - self.last_point } else if using_path_tool { - start_mouse - pivot + start_mouse - self.state.pivot_viewport(document) } else { + // TODO: This is always zero breaking the `.to_angle()` below? self.layer_bounding_box.top_right() - self.layer_bounding_box.top_right() }; let tilt_offset = document.document_ptz.unmodified_tilt(); let offset_angle = offset_angle.to_angle() + tilt_offset; let width = viewport_box.max_element(); - let radius = start_mouse.distance(pivot); + let radius = start_mouse.distance(self.state.pivot_viewport(document)); let arc_radius = ANGLE_MEASURE_RADIUS_FACTOR * width; let radius = radius.clamp(ARC_MEASURE_RADIUS_FACTOR_RANGE.0 * width, ARC_MEASURE_RADIUS_FACTOR_RANGE.1 * width); let angle_in_degrees = angle.to_degrees(); @@ -258,15 +289,17 @@ impl MessageHandler> for angle_in_degrees }; let text = format!("{}ยฐ", format_rounded(display_angle, 2)); - let text_texture_width = overlay_context.get_width(&text) / 2.; + const FONT_SIZE: f64 = 12.; + + let text_texture_width = text_width(&text, FONT_SIZE) / 2.; let text_texture_height = 12.; let text_angle_on_unit_circle = DVec2::from_angle((angle % TAU) / 2. + offset_angle); let text_texture_position = DVec2::new( (arc_radius + 4. + text_texture_width) * text_angle_on_unit_circle.x, (arc_radius + text_texture_height) * text_angle_on_unit_circle.y, ); - let transform = DAffine2::from_translation(text_texture_position + pivot); - overlay_context.draw_angle(pivot, radius, arc_radius, offset_angle, angle); + let transform = DAffine2::from_translation(text_texture_position + self.state.pivot_viewport(document)); + overlay_context.draw_angle(self.state.pivot_viewport(document), radius, arc_radius, offset_angle, angle); overlay_context.text(&text, COLOR_OVERLAY_BLUE, None, transform, 16., [Pivot::Middle, Pivot::Middle]); } } @@ -301,7 +334,10 @@ impl MessageHandler> for responses.add(SelectToolMessage::PivotShift { offset: None, flush: true }); if final_transform { - responses.add(OverlaysMessage::RemoveProvider(TRANSFORM_GRS_OVERLAY_PROVIDER)); + self.was_grabbing = false; + responses.add(OverlaysMessage::RemoveProvider { + provider: TRANSFORM_GRS_OVERLAY_PROVIDER, + }); } } TransformLayerMessage::BeginTransformOperation { operation } => { @@ -312,6 +348,8 @@ impl MessageHandler> for TransformType::Scale => TransformOperation::Scaling(Default::default()), }; self.layer_bounding_box = selected.bounding_box(); + let bounding_box = select_tool::create_bounding_box_transform(document); + self.state.local_transform_axes = [bounding_box.x_axis, bounding_box.y_axis].map(|axis| axis.normalize_or_zero()); } TransformLayerMessage::BeginGrabPen { last_point, handle } | TransformLayerMessage::BeginRotatePen { last_point, handle } | TransformLayerMessage::BeginScalePen { last_point, handle } => { self.typing.clear(); @@ -324,11 +362,13 @@ impl MessageHandler> for let top_left = DVec2::new(last_point.x, handle.y); let bottom_right = DVec2::new(handle.x, last_point.y); - self.local = false; + self.state.is_transforming_in_local_space = false; self.layer_bounding_box = Quad::from_box([top_left, bottom_right]); + let normalized_along = (handle - last_point).normalize_or_zero(); + self.state.local_transform_axes = [normalized_along, normalized_along.perp()]; self.grab_target = document.metadata().document_to_viewport.inverse().transform_point2(handle); - self.pivot = last_point; - self.local_pivot = document.metadata().document_to_viewport.inverse().transform_point2(self.pivot); + let pivot = last_point; + self.state.document_space_pivot = document.metadata().document_to_viewport.inverse().transform_point2(pivot); self.local_mouse_start = document.metadata().document_to_viewport.inverse().transform_point2(self.start_mouse); self.handle = handle; @@ -340,7 +380,9 @@ impl MessageHandler> for _ => unreachable!(), // Safe because the match arms are exhaustive }; - responses.add(OverlaysMessage::AddProvider(TRANSFORM_GRS_OVERLAY_PROVIDER)); + responses.add(OverlaysMessage::AddProvider { + provider: TRANSFORM_GRS_OVERLAY_PROVIDER, + }); // Find a way better than this hack responses.add(TransformLayerMessage::PointerMove { slow_key: SLOW_KEY, @@ -356,46 +398,78 @@ impl MessageHandler> for if (selected_points.is_empty() && selected_segments.is_empty()) || (!using_path_tool && !using_select_tool && !using_pen_tool && !using_shape_tool) || selected_layers.is_empty() - || transform_type.equivalent_to(self.transform_operation) + || (transform_type.equivalent_to(self.transform_operation) && !self.was_grabbing) { return; } + + if using_path_tool && transform_type == TransformType::Grab { + // Check if a single point is selected and it's a colinear point + let single_anchor_selected = shape_editor.selected_points().count() == 1 && shape_editor.selected_points().any(|point| point.as_anchor().is_some()); + + if single_anchor_selected && transform_type.equivalent_to(self.transform_operation) && self.was_grabbing { + let selected_nodes = &document.network_interface.selected_nodes(); + + let Some(layer) = selected_nodes.selected_layers(document.metadata()).next() else { return }; + let Some(vector_data) = document.network_interface.compute_modified_vector(layer) else { return }; + let Some(anchor) = shape_editor.selected_points().next() else { return }; + + if vector_data.colinear(*anchor) { + responses.add(TransformLayerMessage::CancelTransformOperation); + + // Start sliding point + responses.add(DeferMessage::AfterGraphRun { + messages: vec![PathToolMessage::StartSlidingPoint.into()], + }); + } + + return; + } + + if transform_type.equivalent_to(self.transform_operation) { + return; + } + + self.was_grabbing = true; + } } - if let Some(vector) = selected_layers.first().and_then(|&layer| document.network_interface.compute_modified_vector(layer)) { - if let [point] = selected_points.as_slice() { - if matches!(point, ManipulatorPointId::Anchor(_)) { - if let Some([handle1, handle2]) = point.get_handle_pair(&vector) { - let handle1_length = handle1.length(&vector); - let handle2_length = handle2.length(&vector); + if let Some(vector) = selected_layers.first().and_then(|&layer| document.network_interface.compute_modified_vector(layer)) + && let [point] = selected_points.as_slice() + { + if matches!(point, ManipulatorPointId::Anchor(_)) { + if let Some([handle1, handle2]) = point.get_handle_pair(&vector) { + let handle1_length = handle1.length(&vector); + let handle2_length = handle2.length(&vector); - if (handle1_length == 0. && handle2_length == 0. && !using_select_tool) || (handle1_length == f64::MAX && handle2_length == f64::MAX && !using_select_tool) { - // G should work for this point but not R and S - if matches!(transform_type, TransformType::Rotate | TransformType::Scale) { - selected.original_transforms.clear(); - return; - } + if (handle1_length == 0. && handle2_length == 0. && !using_select_tool) || (handle1_length == f64::MAX && handle2_length == f64::MAX && !using_select_tool) { + // G should work for this point but not R and S + if matches!(transform_type, TransformType::Rotate | TransformType::Scale) { + selected.original_transforms.clear(); + return; } } - } else { - let handle_length = point.as_handle().map(|handle| handle.length(&vector)); + } + } else { + let handle_length = point.as_handle().map(|handle| handle.length(&vector)); - if handle_length == Some(0.) { - selected.original_transforms.clear(); - return; - } + if handle_length == Some(0.) { + selected.original_transforms.clear(); + return; } } } - self.local = false; + self.state.is_transforming_in_local_space = false; self.operation_count += 1; let chain_operation = self.transform_operation != TransformOperation::None; if chain_operation { responses.add(TransformLayerMessage::ApplyTransformOperation { final_transform: false }); } else { - responses.add(OverlaysMessage::AddProvider(TRANSFORM_GRS_OVERLAY_PROVIDER)); + responses.add(OverlaysMessage::AddProvider { + provider: TRANSFORM_GRS_OVERLAY_PROVIDER, + }); } responses.add(TransformLayerMessage::BeginTransformOperation { operation: transform_type }); responses.add(TransformLayerMessage::PointerMove { @@ -409,6 +483,7 @@ impl MessageHandler> for TransformLayerMessage::CancelTransformOperation => { if using_path_tool { self.ghost_outline.clear(); + self.was_grabbing = false; } if using_pen_tool { @@ -431,53 +506,17 @@ impl MessageHandler> for } responses.add(SelectToolMessage::PivotShift { offset: None, flush: false }); - responses.add(OverlaysMessage::RemoveProvider(TRANSFORM_GRS_OVERLAY_PROVIDER)); + responses.add(OverlaysMessage::RemoveProvider { + provider: TRANSFORM_GRS_OVERLAY_PROVIDER, + }); } TransformLayerMessage::ConstrainX => { - let pivot = document_to_viewport.transform_point2(self.local_pivot); - self.local = self.transform_operation.constrain_axis( - Axis::X, - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ); - self.transform_operation.grs_typed( - self.typing.evaluate(), - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ); + self.state.is_transforming_in_local_space = self.transform_operation.constrain_axis(Axis::X, &mut selected, &self.state, document); + self.transform_operation.grs_typed(self.typing.evaluate(), &mut selected, &self.state, document); } TransformLayerMessage::ConstrainY => { - let pivot = document_to_viewport.transform_point2(self.local_pivot); - self.local = self.transform_operation.constrain_axis( - Axis::Y, - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ); - self.transform_operation.grs_typed( - self.typing.evaluate(), - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ); + self.state.is_transforming_in_local_space = self.transform_operation.constrain_axis(Axis::Y, &mut selected, &self.state, document); + self.transform_operation.grs_typed(self.typing.evaluate(), &mut selected, &self.state, document); } TransformLayerMessage::PointerMove { slow_key, increments_key } => { self.slow = input.keyboard.get(slow_key as usize); @@ -488,60 +527,42 @@ impl MessageHandler> for return; } - let pivot = document_to_viewport.transform_point2(self.local_pivot); - let new_increments = input.keyboard.get(increments_key as usize); - if new_increments != self.increments { - self.increments = new_increments; - self.transform_operation - .apply_transform_operation(&mut selected, self.increments, self.local, self.layer_bounding_box, document_to_viewport, pivot, self.initial_transform); + if new_increments != self.state.is_rounded_to_intervals { + self.state.is_rounded_to_intervals = new_increments; + self.transform_operation.apply_transform_operation(&mut selected, &self.state, document); } if self.typing.digits.is_empty() || !self.transform_operation.can_begin_typing() { match self.transform_operation { - TransformOperation::None => unreachable!(), + TransformOperation::None => {} TransformOperation::Grabbing(translation) => { let delta_pos = input.mouse.position - self.mouse_position; let delta_pos = (self.initial_transform * document_to_viewport.inverse()).transform_vector2(delta_pos); - let change = if self.slow { delta_pos / SLOWING_DIVISOR } else { delta_pos }; - self.transform_operation = TransformOperation::Grabbing(translation.increment_amount(change)); - self.transform_operation.apply_transform_operation( - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ); + let delta_viewport = if self.slow { delta_pos / SLOWING_DIVISOR } else { delta_pos }; + let delta_scaled = delta_viewport / document_to_viewport.y_axis.length(); // Values are local to the viewport but scaled so values are relative to the current scale. + self.transform_operation = TransformOperation::Grabbing(translation.increment_amount(delta_scaled)); + self.transform_operation.apply_transform_operation(&mut selected, &self.state, document); } TransformOperation::Rotating(rotation) => { - let start_offset = pivot - self.mouse_position; - let end_offset = pivot - input.mouse.position; + let start_offset = self.state.pivot_viewport(document) - self.mouse_position; + let end_offset = self.state.pivot_viewport(document) - input.mouse.position; let angle = start_offset.angle_to(end_offset); let change = if self.slow { angle / SLOWING_DIVISOR } else { angle }; self.transform_operation = TransformOperation::Rotating(rotation.increment_amount(change)); - self.transform_operation.apply_transform_operation( - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ); + self.transform_operation.apply_transform_operation(&mut selected, &self.state, document); } TransformOperation::Scaling(mut scale) => { let axis_constraint = scale.constraint; - let to_mouse_final = self.mouse_position - pivot; - let to_mouse_final_old = input.mouse.position - pivot; - let to_mouse_start = self.start_mouse - pivot; + let to_mouse_final = self.mouse_position - self.state.pivot_viewport(document); + let to_mouse_final_old = input.mouse.position - self.state.pivot_viewport(document); + let to_mouse_start = self.start_mouse - self.state.pivot_viewport(document); - let to_mouse_final = project_edge_to_quad(to_mouse_final, &self.layer_bounding_box, self.local, axis_constraint); - let to_mouse_final_old = project_edge_to_quad(to_mouse_final_old, &self.layer_bounding_box, self.local, axis_constraint); - let to_mouse_start = project_edge_to_quad(to_mouse_start, &self.layer_bounding_box, self.local, axis_constraint); + let to_mouse_final = self.state.project_onto_constrained(to_mouse_final, axis_constraint); + let to_mouse_final_old = self.state.project_onto_constrained(to_mouse_final_old, axis_constraint); + let to_mouse_start = self.state.project_onto_constrained(to_mouse_start, axis_constraint); let change = { let previous_frame_dist = to_mouse_final.dot(to_mouse_start); @@ -554,15 +575,7 @@ impl MessageHandler> for scale = scale.increment_amount(change); self.transform_operation = TransformOperation::Scaling(scale); - self.transform_operation.apply_transform_operation( - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ); + self.transform_operation.apply_transform_operation(&mut selected, &self.state, document); } }; } @@ -574,69 +587,27 @@ impl MessageHandler> for shape_editor.set_selected_layers(target_layers); } TransformLayerMessage::TypeBackspace => { - let pivot = document_to_viewport.transform_point2(self.local_pivot); if self.typing.digits.is_empty() && self.typing.negative { - self.transform_operation - .negate(&mut selected, self.increments, self.local, self.layer_bounding_box, document_to_viewport, pivot, self.initial_transform); + self.transform_operation.negate(&mut selected, &self.state, document); self.typing.type_negate(); } - self.transform_operation.grs_typed( - self.typing.type_backspace(), - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ); + self.transform_operation.grs_typed(self.typing.type_backspace(), &mut selected, &self.state, document); } TransformLayerMessage::TypeDecimalPoint => { - let pivot = document_to_viewport.transform_point2(self.local_pivot); if self.transform_operation.can_begin_typing() { - self.transform_operation.grs_typed( - self.typing.type_decimal_point(), - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ) + self.transform_operation.grs_typed(self.typing.type_decimal_point(), &mut selected, &self.state, document) } } TransformLayerMessage::TypeDigit { digit } => { if self.transform_operation.can_begin_typing() { - let pivot = document_to_viewport.transform_point2(self.local_pivot); - self.transform_operation.grs_typed( - self.typing.type_number(digit), - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ) + self.transform_operation.grs_typed(self.typing.type_number(digit), &mut selected, &self.state, document) } } TransformLayerMessage::TypeNegate => { - let pivot = document_to_viewport.transform_point2(self.local_pivot); if self.typing.digits.is_empty() { - self.transform_operation - .negate(&mut selected, self.increments, self.local, self.layer_bounding_box, document_to_viewport, pivot, self.initial_transform); + self.transform_operation.negate(&mut selected, &self.state, document); } - self.transform_operation.grs_typed( - self.typing.type_negate(), - &mut selected, - self.increments, - self.local, - self.layer_bounding_box, - document_to_viewport, - pivot, - self.initial_transform, - ) + self.transform_operation.grs_typed(self.typing.type_negate(), &mut selected, &self.state, document) } TransformLayerMessage::SetPivotGizmo { pivot_gizmo } => { self.pivot_gizmo = pivot_gizmo; @@ -676,7 +647,7 @@ impl TransformLayerMessageHandler { } pub fn hints(&self, responses: &mut VecDeque) { - self.transform_operation.hints(responses, self.local); + self.transform_operation.hints(responses, self.state.is_transforming_in_local_space); } fn set_ghost_outline(ghost_outline: &mut Vec<(Vec, DAffine2)>, shape_editor: &ShapeState, document: &DocumentMessageHandler) { @@ -752,26 +723,6 @@ fn calculate_pivot( } } -fn project_edge_to_quad(edge: DVec2, quad: &Quad, local: bool, axis_constraint: Axis) -> DVec2 { - match axis_constraint { - Axis::X => { - if local { - edge.project_onto(quad.top_right() - quad.top_left()) - } else { - edge.with_y(0.) - } - } - Axis::Y => { - if local { - edge.project_onto(quad.bottom_left() - quad.top_left()) - } else { - edge.with_x(0.) - } - } - _ => edge, - } -} - fn update_colinear_handles(selected_layers: &[LayerNodeIdentifier], document: &DocumentMessageHandler, responses: &mut VecDeque) { for &layer in selected_layers { let Some(vector) = document.network_interface.compute_modified_vector(layer) else { continue }; @@ -849,7 +800,7 @@ mod test_transform_layer { let final_transform = get_layer_transform(&mut editor, layer).await.unwrap(); let translation_diff = (final_transform.translation - original_transform.translation).length(); - assert!(translation_diff > 10., "Transform should have changed after applying transformation. Diff: {}", translation_diff); + assert!(translation_diff > 10., "Transform should have changed after applying transformation. Diff: {translation_diff}"); } #[tokio::test] @@ -884,9 +835,7 @@ mod test_transform_layer { // Verify transform is either restored to original OR reset to identity assert!( (final_translation - original_translation).length() < 5. || final_translation.length() < 0.001, - "Transform neither restored to original nor reset to identity. Original: {:?}, Final: {:?}", - original_translation, - final_translation + "Transform neither restored to original nor reset to identity. Original: {original_translation:?}, Final: {final_translation:?}" ); } @@ -915,11 +864,11 @@ mod test_transform_layer { editor.handle_message(TransformLayerMessage::ApplyTransformOperation { final_transform: true }).await; let final_transform = get_layer_transform(&mut editor, layer).await.unwrap(); - println!("Final transform: {:?}", final_transform); + println!("Final transform: {final_transform:?}"); // Check matrix components have changed (rotation affects matrix2) let matrix_diff = (final_transform.matrix2.x_axis - original_transform.matrix2.x_axis).length(); - assert!(matrix_diff > 0.1, "Rotation should have changed the transform matrix. Diff: {}", matrix_diff); + assert!(matrix_diff > 0.1, "Rotation should have changed the transform matrix. Diff: {matrix_diff}"); } #[tokio::test] @@ -941,7 +890,7 @@ mod test_transform_layer { assert!(!after_cancel.translation.y.is_nan(), "Transform is NaN after cancel"); let translation_diff = (after_cancel.translation - original_transform.translation).length(); - assert!(translation_diff < 1., "Translation component changed too much: {}", translation_diff); + assert!(translation_diff < 1., "Translation component changed too much: {translation_diff}"); } #[tokio::test] @@ -976,9 +925,7 @@ mod test_transform_layer { assert!( scale_diff_x > 0.1 || scale_diff_y > 0.1, - "Scaling should have changed the transform matrix. Diffs: x={}, y={}", - scale_diff_x, - scale_diff_y + "Scaling should have changed the transform matrix. Diffs: x={scale_diff_x}, y={scale_diff_y}" ); } @@ -1007,7 +954,7 @@ mod test_transform_layer { // Also check translation component is similar let translation_diff = (after_cancel.translation - original_transform.translation).length(); - assert!(translation_diff < 1., "Translation component changed too much: {}", translation_diff); + assert!(translation_diff < 1., "Translation component changed too much: {translation_diff}"); } #[tokio::test] @@ -1034,9 +981,7 @@ mod test_transform_layer { let actual_translation = after_grab_transform.translation - original_transform.translation; assert!( (actual_translation - expected_translation).length() < 1e-5, - "Expected translation of {:?}, got {:?}", - expected_translation, - actual_translation + "Expected translation of {expected_translation:?}, got {actual_translation:?}" ); // 2. Chain to rotation - from current position to create ~45 degree rotation @@ -1072,9 +1017,7 @@ mod test_transform_layer { let after_scale_det = after_scale_transform.matrix2.determinant(); assert!( after_scale_det >= 2. * before_scale_det, - "Scale should increase the determinant of the matrix (before: {}, after: {})", - before_scale_det, - after_scale_det + "Scale should increase the determinant of the matrix (before: {before_scale_det}, after: {after_scale_det})" ); editor.handle_message(TransformLayerMessage::ApplyTransformOperation { final_transform: true }).await; @@ -1106,8 +1049,8 @@ mod test_transform_layer { let scale_x = final_transform.matrix2.x_axis.length() / original_transform.matrix2.x_axis.length(); let scale_y = final_transform.matrix2.y_axis.length() / original_transform.matrix2.y_axis.length(); - assert!((scale_x - 2.).abs() < 0.1, "Expected scale factor X of 2, got: {}", scale_x); - assert!((scale_y - 2.).abs() < 0.1, "Expected scale factor Y of 2, got: {}", scale_y); + assert!((scale_x - 2.).abs() < 0.1, "Expected scale factor X of 2, got: {scale_x}"); + assert!((scale_y - 2.).abs() < 0.1, "Expected scale factor Y of 2, got: {scale_y}"); } #[tokio::test] @@ -1132,8 +1075,8 @@ mod test_transform_layer { let scale_x = final_transform.matrix2.x_axis.length() / original_transform.matrix2.x_axis.length(); let scale_y = final_transform.matrix2.y_axis.length() / original_transform.matrix2.y_axis.length(); - assert!((scale_x - 2.).abs() < 0.1, "Expected scale factor X of 2, got: {}", scale_x); - assert!((scale_y - 2.).abs() < 0.1, "Expected scale factor Y of 2, got: {}", scale_y); + assert!((scale_x - 2.).abs() < 0.1, "Expected scale factor X of 2, got: {scale_x}"); + assert!((scale_y - 2.).abs() < 0.1, "Expected scale factor Y of 2, got: {scale_y}"); } #[tokio::test] @@ -1148,11 +1091,7 @@ mod test_transform_layer { // Rotate the document view (45 degrees) editor.handle_message(NavigationMessage::BeginCanvasTilt { was_dispatched_from_menu: false }).await; - editor - .handle_message(NavigationMessage::CanvasTiltSet { - angle_radians: (45. as f64).to_radians(), - }) - .await; + editor.handle_message(NavigationMessage::CanvasTiltSet { angle_radians: 45_f64.to_radians() }).await; editor.handle_message(TransformLayerMessage::BeginRotate).await; editor.handle_message(TransformLayerMessage::TypeDigit { digit: 9 }).await; @@ -1167,7 +1106,7 @@ mod test_transform_layer { // Normalize angle between 0 and 360 let angle_change = ((angle_change % 360.) + 360.) % 360.; - assert!((angle_change - 90.).abs() < 0.1, "Expected rotation of 90 degrees, got: {}", angle_change); + assert!((angle_change - 90.).abs() < 0.1, "Expected rotation of 90 degrees, got: {angle_change}"); } #[tokio::test] @@ -1222,8 +1161,8 @@ mod test_transform_layer { // Verify scale is near zero. let scale_x = near_zero_transform.matrix2.x_axis.length(); let scale_y = near_zero_transform.matrix2.y_axis.length(); - assert!(scale_x < 0.001, "Scale factor X should be near zero, got: {}", scale_x); - assert!(scale_y < 0.001, "Scale factor Y should be near zero, got: {}", scale_y); + assert!(scale_x < 0.001, "Scale factor X should be near zero, got: {scale_x}"); + assert!(scale_y < 0.001, "Scale factor Y should be near zero, got: {scale_y}"); assert!(scale_x > 0., "Scale factor X should not be exactly zero"); assert!(scale_y > 0., "Scale factor Y should not be exactly zero"); diff --git a/editor/src/messages/tool/utility_types.rs b/editor/src/messages/tool/utility_types.rs index 740b09c97..052926cfe 100644 --- a/editor/src/messages/tool/utility_types.rs +++ b/editor/src/messages/tool/utility_types.rs @@ -3,18 +3,18 @@ use super::common_functionality::shape_editor::ShapeState; use super::tool_messages::*; use crate::messages::broadcast::BroadcastMessage; -use crate::messages::broadcast::broadcast_event::BroadcastEvent; -use crate::messages::input_mapper::utility_types::input_keyboard::{Key, KeysGroup, LayoutKeysGroup, MouseMotion}; -use crate::messages::input_mapper::utility_types::macros::action_keys; -use crate::messages::input_mapper::utility_types::misc::ActionKeys; +use crate::messages::broadcast::event::EventMessage; +use crate::messages::input_mapper::utility_types::input_keyboard::{Key, KeysGroup, LabeledKeyOrMouseMotion, LabeledShortcut, MouseMotion}; +use crate::messages::input_mapper::utility_types::macros::action_shortcut; +use crate::messages::input_mapper::utility_types::misc::ActionShortcut; use crate::messages::layout::utility_types::widget_prelude::*; use crate::messages::portfolio::document::overlays::utility_types::OverlayProvider; +use crate::messages::portfolio::utility_types::PersistentData; use crate::messages::preferences::PreferencesMessageHandler; use crate::messages::prelude::*; use crate::messages::tool::common_functionality::shapes::shape_utility::ShapeType; use crate::node_graph_executor::NodeGraphExecutor; use graphene_std::raster::color::Color; -use graphene_std::text::FontCache; use std::borrow::Cow; use std::fmt::{self, Debug}; @@ -24,17 +24,28 @@ pub struct ToolActionMessageContext<'a> { pub document_id: DocumentId, pub global_tool_data: &'a DocumentToolData, pub input: &'a InputPreprocessorMessageHandler, - pub font_cache: &'a FontCache, + pub persistent_data: &'a PersistentData, pub shape_editor: &'a mut ShapeState, pub node_graph: &'a NodeGraphExecutor, pub preferences: &'a PreferencesMessageHandler, + pub viewport: &'a ViewportMessageHandler, } -pub trait ToolCommon: for<'a, 'b> MessageHandler> + LayoutHolder + ToolTransition + ToolMetadata {} -impl ToolCommon for T where T: for<'a, 'b> MessageHandler> + LayoutHolder + ToolTransition + ToolMetadata {} +pub trait ToolCommon: for<'a, 'b> MessageHandler> + ToolRefreshOptions + ToolTransition + ToolMetadata {} +impl ToolCommon for T where T: for<'a, 'b> MessageHandler> + ToolRefreshOptions + ToolTransition + ToolMetadata {} type Tool = dyn ToolCommon + Send + Sync; +pub trait ToolRefreshOptions { + fn refresh_options(&self, responses: &mut VecDeque, _persistent_data: &PersistentData); +} + +impl ToolRefreshOptions for T { + fn refresh_options(&self, responses: &mut VecDeque, _persistent_data: &PersistentData) { + self.send_layout(responses, LayoutTarget::ToolOptions); + } +} + /// The FSM (finite state machine) is a flowchart between different operating states that a specific tool might be in. /// It is the central "core" logic area of each tool which is in charge of maintaining the state of the tool and responding to events coming from outside (like user input). /// For example, a tool might be `Ready` or `Drawing` depending on if the user is idle or actively drawing with the mouse held down. @@ -116,32 +127,32 @@ pub struct DocumentToolData { impl DocumentToolData { pub fn update_working_colors(&self, responses: &mut VecDeque) { - let layout = WidgetLayout::new(vec![ + let layout = Layout(vec![ LayoutGroup::Row { - widgets: vec![WorkingColorsInput::new(self.primary_color.to_gamma_srgb(), self.secondary_color.to_gamma_srgb()).widget_holder()], + widgets: vec![WorkingColorsInput::new(self.primary_color.to_gamma_srgb(), self.secondary_color.to_gamma_srgb()).widget_instance()], }, LayoutGroup::Row { widgets: vec![ IconButton::new("SwapVertical", 16) - .tooltip("Swap") - .tooltip_shortcut(action_keys!(ToolMessageDiscriminant::SwapColors)) + .tooltip_label("Swap") + .tooltip_shortcut(action_shortcut!(ToolMessageDiscriminant::SwapColors)) .on_update(|_| ToolMessage::SwapColors.into()) - .widget_holder(), + .widget_instance(), IconButton::new("WorkingColors", 16) - .tooltip("Reset") - .tooltip_shortcut(action_keys!(ToolMessageDiscriminant::ResetColors)) + .tooltip_label("Reset") + .tooltip_shortcut(action_shortcut!(ToolMessageDiscriminant::ResetColors)) .on_update(|_| ToolMessage::ResetColors.into()) - .widget_holder(), + .widget_instance(), ], }, ]); responses.add(LayoutMessage::SendLayout { - layout: Layout::WidgetLayout(layout), + layout, layout_target: LayoutTarget::WorkingColors, }); - responses.add(BroadcastMessage::TriggerEvent(BroadcastEvent::WorkingColorChanged)); + responses.add(BroadcastMessage::TriggerEvent(EventMessage::WorkingColorChanged)); } } @@ -158,7 +169,7 @@ pub trait ToolTransition { fn event_to_message_map(&self) -> EventToMessageMap; fn activate(&self, responses: &mut VecDeque) { - let mut subscribe_message = |broadcast_to_tool_mapping: Option, event: BroadcastEvent| { + let mut subscribe_message = |broadcast_to_tool_mapping: Option, event: EventMessage| { if let Some(mapping) = broadcast_to_tool_mapping { responses.add(BroadcastMessage::SubscribeEvent { on: event, @@ -168,39 +179,43 @@ pub trait ToolTransition { }; let event_to_tool_map = self.event_to_message_map(); - subscribe_message(event_to_tool_map.canvas_transformed, BroadcastEvent::CanvasTransformed); - subscribe_message(event_to_tool_map.tool_abort, BroadcastEvent::ToolAbort); - subscribe_message(event_to_tool_map.selection_changed, BroadcastEvent::SelectionChanged); - subscribe_message(event_to_tool_map.working_color_changed, BroadcastEvent::WorkingColorChanged); + subscribe_message(event_to_tool_map.canvas_transformed, EventMessage::CanvasTransformed); + subscribe_message(event_to_tool_map.tool_abort, EventMessage::ToolAbort); + subscribe_message(event_to_tool_map.selection_changed, EventMessage::SelectionChanged); + subscribe_message(event_to_tool_map.working_color_changed, EventMessage::WorkingColorChanged); if let Some(overlay_provider) = event_to_tool_map.overlay_provider { - responses.add(OverlaysMessage::AddProvider(overlay_provider)); + responses.add(OverlaysMessage::AddProvider { provider: overlay_provider }); } } fn deactivate(&self, responses: &mut VecDeque) { - let mut unsubscribe_message = |broadcast_to_tool_mapping: Option, event: BroadcastEvent| { + let mut unsubscribe_message = |broadcast_to_tool_mapping: Option, event: EventMessage| { if let Some(mapping) = broadcast_to_tool_mapping { responses.add(BroadcastMessage::UnsubscribeEvent { on: event, - message: Box::new(mapping.into()), + send: Box::new(mapping.into()), }); } }; let event_to_tool_map = self.event_to_message_map(); - unsubscribe_message(event_to_tool_map.canvas_transformed, BroadcastEvent::CanvasTransformed); - unsubscribe_message(event_to_tool_map.tool_abort, BroadcastEvent::ToolAbort); - unsubscribe_message(event_to_tool_map.selection_changed, BroadcastEvent::SelectionChanged); - unsubscribe_message(event_to_tool_map.working_color_changed, BroadcastEvent::WorkingColorChanged); + unsubscribe_message(event_to_tool_map.canvas_transformed, EventMessage::CanvasTransformed); + unsubscribe_message(event_to_tool_map.tool_abort, EventMessage::ToolAbort); + unsubscribe_message(event_to_tool_map.selection_changed, EventMessage::SelectionChanged); + unsubscribe_message(event_to_tool_map.working_color_changed, EventMessage::WorkingColorChanged); if let Some(overlay_provider) = event_to_tool_map.overlay_provider { - responses.add(OverlaysMessage::RemoveProvider(overlay_provider)); + responses.add(OverlaysMessage::RemoveProvider { provider: overlay_provider }); } } } pub trait ToolMetadata { fn icon_name(&self) -> String; - fn tooltip(&self) -> String; + fn tooltip_label(&self) -> String; + fn tooltip_description(&self) -> String { + // TODO: Remove this to make tool descriptions mandatory once we've written them all + String::new() + } fn tool_type(&self) -> ToolType; } @@ -226,8 +241,15 @@ impl ToolData { } } -impl LayoutHolder for ToolData { - fn layout(&self) -> Layout { +impl ToolData { + pub fn send_layout(&self, responses: &mut VecDeque, layout_target: LayoutTarget, brush_tool: bool) { + responses.add(LayoutMessage::SendLayout { + layout: self.layout(brush_tool), + layout_target, + }); + } + + fn layout(&self, brush_tool: bool) -> Layout { let active_tool = self.active_shape_type.unwrap_or(self.active_tool_type); let tool_groups_layout = list_tools_in_groups() @@ -235,31 +257,37 @@ impl LayoutHolder for ToolData { .map(|tool_group| tool_group .iter() - .map(|tool_availability| { - match tool_availability { - ToolAvailability::Available(tool) => - ToolEntry::new(tool.tool_type(), tool.icon_name()) - .tooltip(tool.tooltip()) - .tooltip_shortcut(action_keys!(tool_type_to_activate_tool_message(tool.tool_type()))), - ToolAvailability::AvailableAsShape(shape) => - ToolEntry::new(shape.tool_type(), shape.icon_name()) - .tooltip(shape.tooltip()) - .tooltip_shortcut(action_keys!(tool_type_to_activate_tool_message(shape.tool_type()))), - ToolAvailability::ComingSoon(tool) => tool.clone(), + .filter_map(|tool_availability| { + if !brush_tool && let ToolRole::Normal(tool) = tool_availability && tool.tool_type() == ToolType::Brush { + return None; } + + Some(match tool_availability { + ToolRole::Normal(tool) => + ToolEntry::new(tool.tool_type(), tool.icon_name()) + .tooltip_label(tool.tooltip_label()) + .tooltip_shortcut(action_shortcut!(tool_type_to_activate_tool_message(tool.tool_type()))), + ToolRole::Shape(shape) => + ToolEntry::new(shape.tool_type(), shape.icon_name()) + .tooltip_label(shape.tooltip_label()) + .tooltip_description(shape.tooltip_description()) + .tooltip_shortcut(action_shortcut!(tool_type_to_activate_tool_message(shape.tool_type()))), + }) }) .collect::>() ) + .filter(|group| !group.is_empty()) .flat_map(|group| { - let separator = std::iter::once(Separator::new(SeparatorType::Section).direction(SeparatorDirection::Vertical).widget_holder()); - let buttons = group.into_iter().map(|ToolEntry { tooltip, tooltip_shortcut, tool_type, icon_name }| { + let separator = std::iter::once(Separator::new(SeparatorType::Section).direction(SeparatorDirection::Vertical).widget_instance()); + let buttons = group.into_iter().map(|ToolEntry { tooltip_label, tooltip_description, tooltip_shortcut, tool_type, icon_name }| { IconButton::new(icon_name, 32) .disabled(false) .active(match tool_type { ToolType::Line | ToolType::Ellipse | ToolType::Rectangle => { self.active_shape_type.is_some() && active_tool == tool_type } _ => active_tool == tool_type, }) - .tooltip(tooltip.clone()) + .tooltip_label(tooltip_label.clone()) + .tooltip_description(tooltip_description) .tooltip_shortcut(tooltip_shortcut) .on_update(move |_| { match tool_type { @@ -267,12 +295,11 @@ impl LayoutHolder for ToolData { ToolType::Rectangle => ToolMessage::ActivateToolShapeRectangle.into(), ToolType::Ellipse => ToolMessage::ActivateToolShapeEllipse.into(), ToolType::Shape => ToolMessage::ActivateToolShape.into(), - _ => { - if !tooltip.contains("Coming Soon") { (ToolMessage::ActivateTool { tool_type }).into() } else { (DialogMessage::RequestComingSoonDialog { issue: None }).into() } - } + _ => ToolMessage::ActivateTool { tool_type }.into(), + // _ => if !tooltip_description.contains("Coming soon.") { ToolMessage::ActivateTool { tool_type }.into() } else { Message::NoOp }, } }) - .widget_holder() + .widget_instance() }); separator.chain(buttons) @@ -281,21 +308,20 @@ impl LayoutHolder for ToolData { .skip(1) .collect(); - Layout::WidgetLayout(WidgetLayout { - layout: vec![LayoutGroup::Row { widgets: tool_groups_layout }], - }) + Layout(vec![LayoutGroup::Row { widgets: tool_groups_layout }]) } } #[derive(Debug, Clone, Default, WidgetBuilder)] -#[widget_builder(not_widget_holder)] +#[widget_builder(not_widget_instance)] pub struct ToolEntry { #[widget_builder(constructor)] pub tool_type: ToolType, #[widget_builder(constructor)] pub icon_name: String, - pub tooltip: String, - pub tooltip_shortcut: Option, + pub tooltip_label: String, + pub tooltip_description: String, + pub tooltip_shortcut: Option, } #[derive(Debug)] @@ -314,9 +340,8 @@ impl Default for ToolFsmState { .into_iter() .flatten() .filter_map(|tool| match tool { - ToolAvailability::Available(tool) => Some((tool.tool_type(), tool)), - ToolAvailability::AvailableAsShape(_) => None, - ToolAvailability::ComingSoon(_) => None, + ToolRole::Normal(tool) => Some((tool.tool_type(), tool)), + ToolRole::Shape(_) => None, }) .collect(), }, @@ -364,7 +389,6 @@ pub enum ToolType { Patch, Detail, Relight, - Frame, } impl ToolType { @@ -380,44 +404,61 @@ impl ToolType { } } -enum ToolAvailability { - Available(Box), - AvailableAsShape(ShapeType), - ComingSoon(ToolEntry), +enum ToolRole { + Normal(Box), + Shape(ShapeType), } /// List of all the tools in their conventional ordering and grouping. -fn list_tools_in_groups() -> Vec> { +fn list_tools_in_groups() -> Vec> { vec![ vec![ // General tool group - ToolAvailability::Available(Box::::default()), - ToolAvailability::Available(Box::::default()), - ToolAvailability::Available(Box::::default()), - ToolAvailability::Available(Box::::default()), - ToolAvailability::Available(Box::::default()), - ToolAvailability::Available(Box::::default()), + ToolRole::Normal(Box::::default()), + ToolRole::Normal(Box::::default()), + ToolRole::Normal(Box::::default()), + ToolRole::Normal(Box::::default()), + ToolRole::Normal(Box::::default()), + ToolRole::Normal(Box::::default()), ], vec![ // Vector tool group - ToolAvailability::Available(Box::::default()), - ToolAvailability::Available(Box::::default()), - ToolAvailability::Available(Box::::default()), - ToolAvailability::Available(Box::::default()), - ToolAvailability::AvailableAsShape(ShapeType::Line), - ToolAvailability::AvailableAsShape(ShapeType::Rectangle), - ToolAvailability::AvailableAsShape(ShapeType::Ellipse), - ToolAvailability::Available(Box::::default()), - ToolAvailability::Available(Box::::default()), + ToolRole::Normal(Box::::default()), + ToolRole::Normal(Box::::default()), + ToolRole::Normal(Box::::default()), + ToolRole::Normal(Box::::default()), + ToolRole::Shape(ShapeType::Line), + ToolRole::Shape(ShapeType::Rectangle), + ToolRole::Shape(ShapeType::Ellipse), + ToolRole::Normal(Box::::default()), + ToolRole::Normal(Box::::default()), ], vec![ // Raster tool group - ToolAvailability::Available(Box::::default()), - ToolAvailability::ComingSoon(ToolEntry::new(ToolType::Heal, "RasterHealTool").tooltip("Coming Soon: Heal Tool (J)")), - ToolAvailability::ComingSoon(ToolEntry::new(ToolType::Clone, "RasterCloneTool").tooltip("Coming Soon: Clone Tool (C)")), - ToolAvailability::ComingSoon(ToolEntry::new(ToolType::Patch, "RasterPatchTool").tooltip("Coming Soon: Patch Tool")), - ToolAvailability::ComingSoon(ToolEntry::new(ToolType::Detail, "RasterDetailTool").tooltip("Coming Soon: Detail Tool (D)")), - ToolAvailability::ComingSoon(ToolEntry::new(ToolType::Relight, "RasterRelightTool").tooltip("Coming Soon: Relight Tool (O)")), + ToolRole::Normal(Box::::default()), + // ToolRole::Normal( + // ToolEntry::new(ToolType::Heal, "RasterHealTool") + // .tooltip_label("Heal Tool") + // .tooltip_shortcut(action_shortcut_manual!(Key::KeyJ)), + // ), + // ToolRole::Normal( + // ToolEntry::new(ToolType::Clone, "RasterCloneTool") + // .tooltip_label("Clone Tool") + // .tooltip_shortcut(action_shortcut_manual!(Key::KeyC)), + // ), + // ToolRole::Normal(ToolEntry::new(ToolType::Patch, "RasterPatchTool") + // .tooltip_label("Patch Tool"), + // ), + // ToolRole::Normal( + // ToolEntry::new(ToolType::Detail, "RasterDetailTool") + // .tooltip_label("Detail Tool") + // .tooltip_shortcut(action_shortcut_manual!(Key::KeyD)), + // ), + // ToolRole::Normal( + // ToolEntry::new(ToolType::Relight, "RasterRelightTool") + // .tooltip_label("Relight Tool") + // .tooltip_shortcut(action_shortcut_manual!(Key::KeyO)), + // ), ], ] } @@ -486,6 +527,55 @@ pub fn tool_type_to_activate_tool_message(tool_type: ToolType) -> ToolMessageDis #[derive(Debug, Default, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize, specta::Type)] pub struct HintData(pub Vec); +impl HintData { + pub fn to_layout(&self) -> Layout { + let mut widgets = Vec::new(); + + for (index, hint_group) in self.0.iter().enumerate() { + if index > 0 { + widgets.push(Separator::new(SeparatorType::Section).widget_instance()); + } + for hint in &hint_group.0 { + if hint.plus { + widgets.push(TextLabel::new("+").bold(true).widget_instance()); + } + if hint.slash { + widgets.push(TextLabel::new("/").bold(true).widget_instance()); + } + + for shortcut in &hint.key_groups { + widgets.push(ShortcutLabel::new(Some(ActionShortcut::Shortcut(shortcut.clone()))).widget_instance()); + } + if let Some(mouse_movement) = hint.mouse { + let mouse_movement = LabeledShortcut(vec![LabeledKeyOrMouseMotion::MouseMotion(mouse_movement)]); + let shortcut = ActionShortcut::Shortcut(mouse_movement); + widgets.push(ShortcutLabel::new(Some(shortcut)).widget_instance()); + } + + if !hint.label.is_empty() { + widgets.push(TextLabel::new(hint.label.clone()).widget_instance()); + } + } + } + + Layout(vec![LayoutGroup::Row { widgets }]) + } + + pub fn send_layout(&self, responses: &mut VecDeque) { + responses.add(LayoutMessage::SendLayout { + layout: self.to_layout(), + layout_target: LayoutTarget::StatusBarHints, + }); + } + + pub fn clear_layout(responses: &mut VecDeque) { + responses.add(LayoutMessage::SendLayout { + layout: Layout::default(), + layout_target: LayoutTarget::StatusBarHints, + }); + } +} + #[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize, specta::Type)] pub struct HintGroup(pub Vec); @@ -494,10 +584,10 @@ pub struct HintInfo { /// A `KeysGroup` specifies all the keys pressed simultaneously to perform an action (like "Ctrl C" to copy). /// Usually at most one is given, but less commonly, multiple can be used to describe additional hotkeys not used simultaneously (like the four different arrow keys to nudge a layer). #[serde(rename = "keyGroups")] - pub key_groups: Vec, + pub key_groups: Vec, /// `None` means that the regular `key_groups` should be used for all platforms, `Some` is an override for a Mac-only input hint. #[serde(rename = "keyGroupsMac")] - pub key_groups_mac: Option>, + pub key_groups_mac: Option>, /// An optional `MouseMotion` that can indicate the mouse action, like which mouse button is used and whether a drag occurs. /// No such icon is shown if `None` is given, and it can be combined with `key_groups` if desired. pub mouse: Option, diff --git a/editor/src/messages/viewport/mod.rs b/editor/src/messages/viewport/mod.rs new file mode 100644 index 000000000..394d4aea1 --- /dev/null +++ b/editor/src/messages/viewport/mod.rs @@ -0,0 +1,7 @@ +mod viewport_message; +mod viewport_message_handler; + +#[doc(inline)] +pub use viewport_message::{ViewportMessage, ViewportMessageDiscriminant}; +#[doc(inline)] +pub use viewport_message_handler::*; diff --git a/editor/src/messages/viewport/viewport_message.rs b/editor/src/messages/viewport/viewport_message.rs new file mode 100644 index 000000000..06c5af74c --- /dev/null +++ b/editor/src/messages/viewport/viewport_message.rs @@ -0,0 +1,8 @@ +use crate::messages::prelude::*; + +#[impl_message(Message, Viewport)] +#[derive(PartialEq, Clone, Debug, serde::Serialize, serde::Deserialize)] +pub enum ViewportMessage { + Update { x: f64, y: f64, width: f64, height: f64, scale: f64 }, + RepropagateUpdate, +} diff --git a/editor/src/messages/viewport/viewport_message_handler.rs b/editor/src/messages/viewport/viewport_message_handler.rs new file mode 100644 index 000000000..628343bd0 --- /dev/null +++ b/editor/src/messages/viewport/viewport_message_handler.rs @@ -0,0 +1,605 @@ +use std::ops::{Add, Div, Mul, Sub}; + +use crate::messages::prelude::*; +use crate::messages::tool::tool_messages::tool_prelude::DVec2; + +#[derive(Debug, PartialEq, Clone, Copy, serde::Serialize, serde::Deserialize, specta::Type, ExtractField)] +pub struct ViewportMessageHandler { + bounds: Bounds, + // Ratio of logical pixels to physical pixels + scale: f64, +} +impl Default for ViewportMessageHandler { + fn default() -> Self { + Self { + bounds: Bounds { + offset: Point { x: 0.0, y: 0.0 }, + size: Point { x: 0.0, y: 0.0 }, + }, + scale: 1.0, + } + } +} + +#[message_handler_data] +impl MessageHandler for ViewportMessageHandler { + fn process_message(&mut self, message: ViewportMessage, responses: &mut VecDeque, _: ()) { + match message { + ViewportMessage::Update { x, y, width, height, scale } => { + assert_ne!(scale, 0.0, "Viewport scale cannot be zero"); + self.scale = scale; + + self.bounds = Bounds { + offset: Point { x, y }, + size: Point { x: width, y: height }, + }; + responses.add(NodeGraphMessage::UpdateNodeGraphWidth); + } + ViewportMessage::RepropagateUpdate => {} + } + + #[cfg(not(target_family = "wasm"))] + { + let physical_bounds = self.bounds().to_physical(); + responses.add(FrontendMessage::UpdateViewportPhysicalBounds { + x: physical_bounds.x(), + y: physical_bounds.y(), + width: physical_bounds.width(), + height: physical_bounds.height(), + }); + } + + responses.add(NavigationMessage::CanvasPan { delta: DVec2::ZERO }); + + responses.add(DeferMessage::AfterGraphRun { + messages: vec![ + DeferMessage::AfterGraphRun { + messages: vec![DeferMessage::TriggerNavigationReady.into()], + } + .into(), + ], + }); + } + + advertise_actions!(ViewportMessageDiscriminant;); +} + +impl ViewportMessageHandler { + pub fn scale(&self) -> f64 { + self.scale + } + + pub fn bounds(&self) -> LogicalBounds { + self.bounds.into_scaled(self.scale) + } + + pub fn offset(&self) -> LogicalPoint { + self.bounds.offset.into_scaled(self.scale) + } + + pub fn size(&self) -> LogicalPoint { + self.bounds.size().into_scaled(self.scale) + } + + #[expect(private_bounds)] + pub fn logical>(&self, point: T) -> LogicalPoint { + point.into().convert_to_logical(self.scale) + } + + #[expect(private_bounds)] + pub fn physical>(&self, point: T) -> PhysicalPoint { + point.into().convert_to_physical(self.scale) + } + + pub fn center_in_viewport_space(&self) -> LogicalPoint { + let size = self.size(); + LogicalPoint { + inner: Point { x: size.x() / 2.0, y: size.y() / 2.0 }, + scale: size.scale, + } + } + + pub fn center_in_window_space(&self) -> LogicalPoint { + let size = self.size(); + let offset = self.offset(); + LogicalPoint { + inner: Point { + x: (size.x() / 2.0) + offset.x(), + y: (size.y() / 2.0) + offset.y(), + }, + scale: size.scale, + } + } + + pub(crate) fn is_in_bounds(&self, point: LogicalPoint) -> bool { + point.x() >= self.bounds.x() && point.y() >= self.bounds.y() && point.x() <= self.bounds.x() + self.bounds.width() && point.y() <= self.bounds.y() + self.bounds.height() + } +} + +pub trait ToLogical + ?Sized> { + fn to_logical(self) -> L; +} +pub trait ToPhysical + ?Sized> { + fn to_physical(self) -> P; +} + +trait IntoScaled: Sized { + fn into_scaled(self, scale: f64) -> T; +} +trait FromWithScale: Sized { + fn from_with_scale(value: T, scale: f64) -> Self; +} +impl IntoScaled for T +where + U: FromWithScale, +{ + fn into_scaled(self, scale: f64) -> U { + U::from_with_scale(self, scale) + } +} + +trait AsPoint { + fn as_point(&self) -> Point; +} + +trait Scaled { + fn scale(&self) -> f64; +} + +pub trait Position { + fn x(&self) -> f64; + fn y(&self) -> f64; +} + +#[derive(Debug, PartialEq, Clone, Copy, serde::Serialize, serde::Deserialize, specta::Type)] +struct Point { + x: f64, + y: f64, +} +impl Point { + fn convert_to_logical(&self, scale: f64) -> LogicalPoint { + Point { x: self.x(), y: self.y() }.into_scaled(scale) + } + fn convert_to_physical(&self, scale: f64) -> PhysicalPoint { + Point { + x: self.x() / scale, + y: self.y() / scale, + } + .into_scaled(scale) + } +} +impl Position for Point { + fn x(&self) -> f64 { + self.x + } + fn y(&self) -> f64 { + self.y + } +} + +#[derive(Debug, PartialEq, Clone, Copy, serde::Serialize, serde::Deserialize, specta::Type)] +pub struct LogicalPoint { + inner: Point, + scale: f64, +} +impl AsPoint for LogicalPoint { + fn as_point(&self) -> Point { + self.inner + } +} +impl Scaled for LogicalPoint { + fn scale(&self) -> f64 { + self.scale + } +} +impl Position for LogicalPoint { + fn x(&self) -> f64 { + self.inner.x() + } + fn y(&self) -> f64 { + self.inner.y() + } +} +impl ToPhysical for LogicalPoint { + fn to_physical(self) -> PhysicalPoint { + PhysicalPoint { inner: self.inner, scale: self.scale } + } +} +impl FromWithScale for LogicalPoint { + fn from_with_scale(value: Point, scale: f64) -> Self { + Self { inner: value, scale } + } +} + +#[derive(Debug, PartialEq, Clone, Copy, serde::Serialize, serde::Deserialize, specta::Type)] +pub struct PhysicalPoint { + inner: Point, + scale: f64, +} +impl AsPoint for PhysicalPoint { + fn as_point(&self) -> Point { + self.inner + } +} +impl Scaled for PhysicalPoint { + fn scale(&self) -> f64 { + self.scale + } +} +impl Position for PhysicalPoint { + fn x(&self) -> f64 { + self.inner.x() * self.scale + } + fn y(&self) -> f64 { + self.inner.y() * self.scale + } +} +impl ToLogical for PhysicalPoint { + fn to_logical(self) -> LogicalPoint { + LogicalPoint { inner: self.inner, scale: self.scale } + } +} +impl FromWithScale for PhysicalPoint { + fn from_with_scale(value: Point, scale: f64) -> Self { + Self { inner: value, scale } + } +} + +pub trait Rect: Position { + fn offset(&self) -> P; + fn size(&self) -> P; + fn width(&self) -> f64; + fn height(&self) -> f64; +} + +#[derive(Debug, PartialEq, Clone, Copy, serde::Serialize, serde::Deserialize, specta::Type, ExtractField)] +struct Bounds { + offset: Point, + size: Point, +} +impl Position for Bounds { + fn x(&self) -> f64 { + self.offset.x() + } + fn y(&self) -> f64 { + self.offset.y() + } +} +impl Rect for Bounds { + fn offset(&self) -> Point { + self.offset + } + fn size(&self) -> Point { + self.size + } + fn width(&self) -> f64 { + self.size.x() + } + fn height(&self) -> f64 { + self.size.y() + } +} + +#[derive(Debug, PartialEq, Clone, Copy, serde::Serialize, serde::Deserialize, specta::Type)] +pub struct LogicalBounds { + offset: Point, + size: Point, + scale: f64, +} +impl Scaled for LogicalBounds { + fn scale(&self) -> f64 { + self.scale + } +} +impl Position for LogicalBounds { + fn x(&self) -> f64 { + self.offset.x() + } + fn y(&self) -> f64 { + self.offset.y() + } +} +impl Rect for LogicalBounds { + fn offset(&self) -> LogicalPoint { + self.offset.into_scaled(self.scale) + } + fn size(&self) -> LogicalPoint { + self.size.into_scaled(self.scale) + } + fn width(&self) -> f64 { + self.size.x() + } + fn height(&self) -> f64 { + self.size.y() + } +} +impl ToPhysical for LogicalBounds { + fn to_physical(self) -> PhysicalBounds { + PhysicalBounds { + offset: self.offset, + size: self.size, + scale: self.scale, + } + } +} +impl FromWithScale for LogicalBounds { + fn from_with_scale(value: Bounds, scale: f64) -> Self { + Self { + offset: value.offset(), + size: value.size(), + scale, + } + } +} + +#[derive(Debug, PartialEq, Clone, Copy, serde::Serialize, serde::Deserialize, specta::Type)] +pub struct PhysicalBounds { + offset: Point, + size: Point, + scale: f64, +} +impl Scaled for PhysicalBounds { + fn scale(&self) -> f64 { + self.scale + } +} +impl Position for PhysicalBounds { + fn x(&self) -> f64 { + self.offset.x() * self.scale + } + fn y(&self) -> f64 { + self.offset.y() * self.scale + } +} +impl Rect for PhysicalBounds { + fn offset(&self) -> PhysicalPoint { + self.offset.into_scaled(self.scale) + } + fn size(&self) -> PhysicalPoint { + self.size.into_scaled(self.scale) + } + fn width(&self) -> f64 { + self.size.x() * self.scale + } + fn height(&self) -> f64 { + self.size.y() * self.scale + } +} +impl ToLogical for PhysicalBounds { + fn to_logical(self) -> LogicalBounds { + LogicalBounds { + offset: self.offset, + size: self.size, + scale: self.scale, + } + } +} +impl FromWithScale for PhysicalBounds { + fn from_with_scale(value: Bounds, scale: f64) -> Self { + Self { + offset: value.offset(), + size: value.size(), + scale, + } + } +} + +impl Mul for Point { + type Output = Point; + fn mul(self, rhs: f64) -> Self::Output { + assert_ne!(rhs, 0.0, "Cannot multiply point by zero"); + Point { x: self.x * rhs, y: self.y * rhs } + } +} +impl Div for Point { + type Output = Point; + fn div(self, rhs: f64) -> Self::Output { + assert_ne!(rhs, 0.0, "Cannot divide point by zero"); + Point { x: self.x / rhs, y: self.y / rhs } + } +} +impl Add for Point { + type Output = Point; + fn add(self, rhs: f64) -> Self::Output { + Point { x: self.x + rhs, y: self.y + rhs } + } +} +impl Sub for Point { + type Output = Point; + fn sub(self, rhs: f64) -> Self::Output { + Point { x: self.x - rhs, y: self.y - rhs } + } +} +impl Mul for Point { + type Output = Point; + fn mul(self, rhs: Point) -> Self::Output { + assert_ne!(rhs.x, 0.0, "Cannot multiply point by zero"); + assert_ne!(rhs.y, 0.0, "Cannot multiply point by zero"); + Point { x: self.x * rhs.x, y: self.y * rhs.y } + } +} +impl Div for Point { + type Output = Point; + fn div(self, rhs: Point) -> Self::Output { + assert_ne!(rhs.x, 0.0, "Cannot multiply point by zero"); + assert_ne!(rhs.y, 0.0, "Cannot multiply point by zero"); + Point { x: self.x / rhs.x, y: self.y / rhs.y } + } +} +impl Add for Point { + type Output = Point; + fn add(self, rhs: Point) -> Self::Output { + Point { x: self.x + rhs.x, y: self.y + rhs.y } + } +} +impl Sub for Point { + type Output = Point; + fn sub(self, rhs: Point) -> Self::Output { + Point { x: self.x - rhs.x, y: self.y - rhs.y } + } +} + +impl Mul for Bounds { + type Output = Bounds; + fn mul(self, rhs: f64) -> Self::Output { + assert_ne!(rhs, 0.0, "Cannot multiply bounds by zero"); + Bounds { + offset: self.offset * rhs, + size: self.size * rhs, + } + } +} +impl Div for Bounds { + type Output = Bounds; + fn div(self, rhs: f64) -> Self::Output { + assert_ne!(rhs, 0.0, "Cannot divide bounds by zero"); + Bounds { + offset: self.offset / rhs, + size: self.size / rhs, + } + } +} + +impl Mul for LogicalPoint { + type Output = LogicalPoint; + fn mul(self, rhs: LogicalPoint) -> Self::Output { + assert_scale(&self, &rhs); + (self.as_point() * rhs.as_point()).into_scaled(self.scale()) + } +} +impl Div for LogicalPoint { + type Output = LogicalPoint; + fn div(self, rhs: LogicalPoint) -> Self::Output { + assert_scale(&self, &rhs); + (self.as_point() / rhs.as_point()).into_scaled(self.scale()) + } +} +impl Add for LogicalPoint { + type Output = LogicalPoint; + fn add(self, rhs: LogicalPoint) -> Self::Output { + assert_scale(&self, &rhs); + (self.as_point() + rhs.as_point()).into_scaled(self.scale()) + } +} +impl Sub for LogicalPoint { + type Output = LogicalPoint; + fn sub(self, rhs: LogicalPoint) -> Self::Output { + assert_scale(&self, &rhs); + (self.as_point() - rhs.as_point()).into_scaled(self.scale()) + } +} +impl Mul for PhysicalPoint { + type Output = PhysicalPoint; + fn mul(self, rhs: PhysicalPoint) -> Self::Output { + assert_scale(&self, &rhs); + (self.as_point() * rhs.as_point()).into_scaled(self.scale()) + } +} +impl Div for PhysicalPoint { + type Output = PhysicalPoint; + fn div(self, rhs: PhysicalPoint) -> Self::Output { + assert_scale(&self, &rhs); + (self.as_point() / rhs.as_point()).into_scaled(self.scale()) + } +} +impl Add for PhysicalPoint { + type Output = PhysicalPoint; + fn add(self, rhs: PhysicalPoint) -> Self::Output { + assert_scale(&self, &rhs); + (self.as_point() + rhs.as_point()).into_scaled(self.scale()) + } +} +impl Sub for PhysicalPoint { + type Output = PhysicalPoint; + fn sub(self, rhs: PhysicalPoint) -> Self::Output { + assert_scale(&self, &rhs); + (self.as_point() - rhs.as_point()).into_scaled(self.scale()) + } +} +fn assert_scale(a: &T, b: &T) { + assert_eq!(a.scale(), b.scale(), "Cannot multiply with diffent scale"); +} + +impl From<(f64, f64)> for Point { + fn from((x, y): (f64, f64)) -> Self { + Self { x, y } + } +} +impl From<(f64, f64, f64, f64)> for Bounds { + fn from((x, y, width, height): (f64, f64, f64, f64)) -> Self { + Self { + offset: Point { x, y }, + size: Point { x: width, y: height }, + } + } +} + +impl From for (f64, f64) { + fn from(point: LogicalPoint) -> Self { + (point.x(), point.y()) + } +} +impl From for (f64, f64) { + fn from(point: PhysicalPoint) -> Self { + (point.x(), point.y()) + } +} +impl From for (f64, f64, f64, f64) { + fn from(bounds: LogicalBounds) -> Self { + (bounds.x(), bounds.y(), bounds.width(), bounds.height()) + } +} +impl From for (f64, f64, f64, f64) { + fn from(bounds: PhysicalBounds) -> Self { + (bounds.x(), bounds.y(), bounds.width(), bounds.height()) + } +} + +impl From for Point { + fn from(vec: glam::DVec2) -> Self { + Self { x: vec.x, y: vec.y } + } +} +impl From for glam::DVec2 { + fn from(val: LogicalPoint) -> Self { + glam::DVec2::new(val.x(), val.y()) + } +} +impl From for glam::DVec2 { + fn from(val: PhysicalPoint) -> Self { + glam::DVec2::new(val.x(), val.y()) + } +} + +impl From<[glam::DVec2; 2]> for Bounds { + fn from(bounds: [glam::DVec2; 2]) -> Self { + Self { + offset: bounds[0].into(), + size: Point { + x: bounds[1].x - bounds[0].x, + y: bounds[1].y - bounds[0].y, + }, + } + } +} +impl From for [glam::DVec2; 2] { + fn from(bounds: LogicalBounds) -> Self { + [glam::DVec2::new(bounds.x(), bounds.y()), glam::DVec2::new(bounds.x() + bounds.width(), bounds.y() + bounds.height())] + } +} +impl From for [glam::DVec2; 2] { + fn from(bounds: PhysicalBounds) -> Self { + [glam::DVec2::new(bounds.x(), bounds.y()), glam::DVec2::new(bounds.x() + bounds.width(), bounds.y() + bounds.height())] + } +} + +impl LogicalPoint { + pub fn into_dvec2(self) -> DVec2 { + DVec2::new(self.x(), self.y()) + } +} +impl PhysicalPoint { + pub fn into_dvec2(self) -> DVec2 { + DVec2::new(self.x(), self.y()) + } +} diff --git a/editor/src/messages/workspace/mod.rs b/editor/src/messages/workspace/mod.rs deleted file mode 100644 index 891ac11f9..000000000 --- a/editor/src/messages/workspace/mod.rs +++ /dev/null @@ -1,7 +0,0 @@ -mod workspace_message; -mod workspace_message_handler; - -#[doc(inline)] -pub use workspace_message::{WorkspaceMessage, WorkspaceMessageDiscriminant}; -#[doc(inline)] -pub use workspace_message_handler::WorkspaceMessageHandler; diff --git a/editor/src/messages/workspace/workspace_message.rs b/editor/src/messages/workspace/workspace_message.rs deleted file mode 100644 index 66eb0858a..000000000 --- a/editor/src/messages/workspace/workspace_message.rs +++ /dev/null @@ -1,8 +0,0 @@ -use crate::messages::prelude::*; - -#[impl_message(Message, Workspace)] -#[derive(PartialEq, Eq, Clone, Debug, serde::Serialize, serde::Deserialize)] -pub enum WorkspaceMessage { - // Messages - NodeGraphToggleVisibility, -} diff --git a/editor/src/messages/workspace/workspace_message_handler.rs b/editor/src/messages/workspace/workspace_message_handler.rs deleted file mode 100644 index d71c7a42c..000000000 --- a/editor/src/messages/workspace/workspace_message_handler.rs +++ /dev/null @@ -1,24 +0,0 @@ -use crate::messages::prelude::*; - -#[derive(Debug, Clone, Default, ExtractField)] -pub struct WorkspaceMessageHandler { - node_graph_visible: bool, -} - -#[message_handler_data] -impl MessageHandler for WorkspaceMessageHandler { - fn process_message(&mut self, message: WorkspaceMessage, _responses: &mut VecDeque, _: ()) { - match message { - // Messages - WorkspaceMessage::NodeGraphToggleVisibility => { - self.node_graph_visible = !self.node_graph_visible; - } - } - } - - fn actions(&self) -> ActionList { - actions!(WorkspaceMessageDiscriminant; - NodeGraphToggleVisibility, - ) - } -} diff --git a/editor/src/node_graph_executor.rs b/editor/src/node_graph_executor.rs index e3aa0c404..fb9b2eb37 100644 --- a/editor/src/node_graph_executor.rs +++ b/editor/src/node_graph_executor.rs @@ -1,20 +1,16 @@ -use crate::consts::FILE_SAVE_SUFFIX; use crate::messages::frontend::utility_types::{ExportBounds, FileType}; use crate::messages::prelude::*; -use glam::{DAffine2, DVec2, UVec2}; +use glam::{DAffine2, UVec2}; use graph_craft::document::value::{RenderOutput, TaggedValue}; use graph_craft::document::{DocumentNode, DocumentNodeImplementation, NodeId, NodeInput}; use graph_craft::proto::GraphErrors; use graph_craft::wasm_application_io::EditorPreferences; -use graphene_std::application_io::TimingInformation; use graphene_std::application_io::{NodeGraphUpdateMessage, RenderConfig}; -use graphene_std::renderer::RenderSvgSegmentList; -use graphene_std::renderer::{Render, RenderParams, SvgRender}; +use graphene_std::application_io::{SurfaceFrame, TimingInformation}; use graphene_std::renderer::{RenderMetadata, format_transform_matrix}; use graphene_std::text::FontCache; use graphene_std::transform::Footprint; use graphene_std::vector::Vector; -use graphene_std::vector::style::ViewMode; use graphene_std::wasm_application_io::RenderOutputType; use interpreted_executor::dynamic_executor::ResolvedDocumentNodeTypesDelta; @@ -34,7 +30,6 @@ pub struct ExecutionResponse { execution_id: u64, result: Result, responses: VecDeque, - footprint: Footprint, vector_modify: HashMap, /// The resulting value from the temporary inspected during execution inspect_result: Option, @@ -42,7 +37,7 @@ pub struct ExecutionResponse { #[derive(serde::Serialize, serde::Deserialize)] pub struct CompilationResponse { - result: Result, + result: Result, node_graph_errors: GraphErrors, } @@ -56,9 +51,10 @@ pub enum NodeGraphUpdate { pub struct NodeGraphExecutor { runtime_io: NodeRuntimeIO, current_execution_id: u64, - futures: HashMap, + futures: VecDeque<(u64, ExecutionContext)>, node_graph_hash: u64, - old_inspect_node: Option, + previous_node_to_inspect: Option, + last_svg_canvas: Option, } #[derive(Debug, Clone)] @@ -80,7 +76,8 @@ impl NodeGraphExecutor { runtime_io: NodeRuntimeIO::with_channels(request_sender, response_receiver), node_graph_hash: 0, current_execution_id: 0, - old_inspect_node: None, + previous_node_to_inspect: None, + last_svg_canvas: None, }; (node_runtime, node_executor) } @@ -113,24 +110,25 @@ impl NodeGraphExecutor { let instrumented = Instrumented::new(&mut network); self.runtime_io - .send(GraphRuntimeRequest::GraphUpdate(GraphUpdate { network, inspect_node: None })) + .send(GraphRuntimeRequest::GraphUpdate(GraphUpdate { network, node_to_inspect: None })) .map_err(|e| e.to_string())?; Ok(instrumented) } /// Update the cached network if necessary. - fn update_node_graph(&mut self, document: &mut DocumentMessageHandler, inspect_node: Option, ignore_hash: bool) -> Result<(), String> { - let network_hash = document.network_interface.document_network().current_hash(); + fn update_node_graph(&mut self, document: &mut DocumentMessageHandler, node_to_inspect: Option, ignore_hash: bool) -> Result<(), String> { + let network_hash = document.network_interface.network_hash(); // Refresh the graph when it changes or the inspect node changes - if network_hash != self.node_graph_hash || self.old_inspect_node != inspect_node || ignore_hash { + if network_hash != self.node_graph_hash || self.previous_node_to_inspect != node_to_inspect || ignore_hash { let network = document.network_interface.document_network().clone(); - self.old_inspect_node = inspect_node; + self.previous_node_to_inspect = node_to_inspect; self.node_graph_hash = network_hash; self.runtime_io - .send(GraphRuntimeRequest::GraphUpdate(GraphUpdate { network, inspect_node })) + .send(GraphRuntimeRequest::GraphUpdate(GraphUpdate { network, node_to_inspect })) .map_err(|e| e.to_string())?; } + Ok(()) } @@ -140,20 +138,20 @@ impl NodeGraphExecutor { document: &mut DocumentMessageHandler, document_id: DocumentId, viewport_resolution: UVec2, + viewport_scale: f64, time: TimingInformation, ) -> Result { + let viewport = Footprint { + transform: document.metadata().document_to_viewport, + resolution: viewport_resolution, + ..Default::default() + }; let render_config = RenderConfig { - viewport: Footprint { - transform: document.metadata().document_to_viewport, - resolution: viewport_resolution, - ..Default::default() - }, + viewport, + scale: viewport_scale, time, - #[cfg(any(feature = "resvg", feature = "vello"))] - export_format: graphene_std::application_io::ExportFormat::Canvas, - #[cfg(not(any(feature = "resvg", feature = "vello")))] - export_format: graphene_std::application_io::ExportFormat::Svg, - view_mode: document.view_mode, + export_format: graphene_std::application_io::ExportFormat::Raster, + render_mode: document.render_mode, hide_artboards: false, for_export: false, }; @@ -161,29 +159,37 @@ impl NodeGraphExecutor { // Execute the node graph let execution_id = self.queue_execution(render_config); - self.futures.insert(execution_id, ExecutionContext { export_config: None, document_id }); + self.futures.push_back((execution_id, ExecutionContext { export_config: None, document_id })); - Ok(DeferMessage::SetGraphSubmissionIndex(execution_id).into()) + Ok(DeferMessage::SetGraphSubmissionIndex { execution_id }.into()) } /// Evaluates a node graph, computing the entire graph + #[allow(clippy::too_many_arguments)] pub fn submit_node_graph_evaluation( &mut self, document: &mut DocumentMessageHandler, document_id: DocumentId, viewport_resolution: UVec2, + viewport_scale: f64, time: TimingInformation, - inspect_node: Option, + node_to_inspect: Option, ignore_hash: bool, ) -> Result { - self.update_node_graph(document, inspect_node, ignore_hash)?; - self.submit_current_node_graph_evaluation(document, document_id, viewport_resolution, time) + self.update_node_graph(document, node_to_inspect, ignore_hash)?; + self.submit_current_node_graph_evaluation(document, document_id, viewport_resolution, viewport_scale, time) } /// Evaluates a node graph for export pub fn submit_document_export(&mut self, document: &mut DocumentMessageHandler, document_id: DocumentId, mut export_config: ExportConfig) -> Result<(), String> { let network = document.network_interface.document_network().clone(); + let export_format = if export_config.file_type == FileType::Svg { + graphene_std::application_io::ExportFormat::Svg + } else { + graphene_std::application_io::ExportFormat::Raster + }; + // Calculate the bounding box of the region to be exported let bounds = match export_config.bounds { ExportBounds::AllArtwork => document.network_interface.document_bounds_document_space(!export_config.transparent_background), @@ -191,67 +197,115 @@ impl NodeGraphExecutor { ExportBounds::Artboard(id) => document.metadata().bounding_box_document(id), } .ok_or_else(|| "No bounding box".to_string())?; - let size = bounds[1] - bounds[0]; + let resolution = (bounds[1] - bounds[0]).as_uvec2(); let transform = DAffine2::from_translation(bounds[0]).inverse(); let render_config = RenderConfig { viewport: Footprint { - transform: DAffine2::from_scale(DVec2::splat(export_config.scale_factor)) * transform, - resolution: (size * export_config.scale_factor).as_uvec2(), + resolution, + transform, ..Default::default() }, + scale: export_config.scale_factor, time: Default::default(), - export_format: graphene_std::application_io::ExportFormat::Svg, - view_mode: document.view_mode, + export_format, + render_mode: document.render_mode, hide_artboards: export_config.transparent_background, for_export: true, }; - export_config.size = size; + export_config.size = resolution.as_dvec2(); // Execute the node graph self.runtime_io - .send(GraphRuntimeRequest::GraphUpdate(GraphUpdate { network, inspect_node: None })) + .send(GraphRuntimeRequest::GraphUpdate(GraphUpdate { network, node_to_inspect: None })) .map_err(|e| e.to_string())?; let execution_id = self.queue_execution(render_config); let execution_context = ExecutionContext { export_config: Some(export_config), document_id, }; - self.futures.insert(execution_id, execution_context); + self.futures.push_back((execution_id, execution_context)); Ok(()) } fn export(&self, node_graph_output: TaggedValue, export_config: ExportConfig, responses: &mut VecDeque) -> Result<(), String> { - let TaggedValue::RenderOutput(RenderOutput { - data: RenderOutputType::Svg { svg, .. }, - .. - }) = node_graph_output - else { - return Err("Incorrect render type for exporting (expected RenderOutput::Svg)".to_string()); - }; - let ExportConfig { file_type, - file_name, + name, size, scale_factor, + #[cfg(feature = "gpu")] + transparent_background, .. } = export_config; - let file_suffix = &format!(".{file_type:?}").to_lowercase(); - let name = match file_name.ends_with(FILE_SAVE_SUFFIX) { - true => file_name.replace(FILE_SAVE_SUFFIX, file_suffix), - false => file_name + file_suffix, + let file_extension = match file_type { + FileType::Svg => "svg", + FileType::Png => "png", + FileType::Jpg => "jpg", + }; + let name = format!("{name}.{file_extension}"); + + match node_graph_output { + TaggedValue::RenderOutput(RenderOutput { + data: RenderOutputType::Svg { svg, .. }, + .. + }) => { + if file_type == FileType::Svg { + responses.add(FrontendMessage::TriggerSaveFile { name, content: svg.into_bytes() }); + } else { + let mime = file_type.to_mime().to_string(); + let size = (size * scale_factor).into(); + responses.add(FrontendMessage::TriggerExportImage { svg, name, mime, size }); + } + } + #[cfg(feature = "gpu")] + TaggedValue::RenderOutput(RenderOutput { + data: RenderOutputType::Buffer { data, width, height }, + .. + }) if file_type != FileType::Svg => { + use image::buffer::ConvertBuffer; + use image::{ImageFormat, RgbImage, RgbaImage}; + + let Some(image) = RgbaImage::from_raw(width, height, data) else { + return Err("Failed to create image buffer for export".to_string()); + }; + + let mut encoded = Vec::new(); + let mut cursor = std::io::Cursor::new(&mut encoded); + + match file_type { + FileType::Png => { + let result = if transparent_background { + image.write_to(&mut cursor, ImageFormat::Png) + } else { + let image: RgbImage = image.convert(); + image.write_to(&mut cursor, ImageFormat::Png) + }; + if let Err(err) = result { + return Err(format!("Failed to encode PNG: {err}")); + } + } + FileType::Jpg => { + let image: RgbImage = image.convert(); + let result = image.write_to(&mut cursor, ImageFormat::Jpeg); + if let Err(err) = result { + return Err(format!("Failed to encode JPG: {err}")); + } + } + FileType::Svg => { + return Err("SVG cannot be exported from an image buffer".to_string()); + } + } + + responses.add(FrontendMessage::TriggerSaveFile { name, content: encoded }); + } + _ => { + return Err(format!("Incorrect render type for exporting to an SVG ({file_type:?}, {node_graph_output})")); + } }; - if file_type == FileType::Svg { - responses.add(FrontendMessage::TriggerSaveFile { name, content: svg.into_bytes() }); - } else { - let mime = file_type.to_mime().to_string(); - let size = (size * scale_factor).into(); - responses.add(FrontendMessage::TriggerExportImage { svg, name, mime, size }); - } Ok(()) } @@ -264,7 +318,6 @@ impl NodeGraphExecutor { execution_id, result, responses: existing_responses, - footprint, vector_modify, inspect_result, } = execution_response; @@ -284,26 +337,41 @@ impl NodeGraphExecutor { responses.extend(existing_responses.into_iter().map(Into::into)); document.network_interface.update_vector_modify(vector_modify); - let execution_context = self.futures.remove(&execution_id).ok_or_else(|| "Invalid generation ID".to_string())?; + while let Some(&(fid, _)) = self.futures.front() { + if fid < execution_id { + self.futures.pop_front(); + } else { + break; + } + } + + let Some((fid, execution_context)) = self.futures.pop_front() else { + panic!("InvalidGenerationId") + }; + assert_eq!(fid, execution_id, "Missmatch in execution id"); + if let Some(export_config) = execution_context.export_config { // Special handling for exporting the artwork self.export(node_graph_output, export_config, responses)?; } else { - self.process_node_graph_output(node_graph_output, footprint, responses)?; + self.process_node_graph_output(node_graph_output, responses)?; } - responses.add_front(DeferMessage::TriggerGraphRun(execution_id, execution_context.document_id)); + responses.add(DeferMessage::TriggerGraphRun { + execution_id, + document_id: execution_context.document_id, + }); - // Update the spreadsheet on the frontend using the value of the inspect result. - if self.old_inspect_node.is_some() { - if let Some(inspect_result) = inspect_result { - responses.add(SpreadsheetMessage::UpdateLayout { inspect_result }); - } + // Update the Data panel on the frontend using the value of the inspect result. + if let Some(inspect_result) = (self.previous_node_to_inspect.is_some()).then_some(inspect_result).flatten() { + responses.add(DataPanelMessage::UpdateLayout { inspect_result }); + } else { + responses.add(DataPanelMessage::ClearLayout); } } NodeGraphUpdate::CompilationResponse(execution_response) => { let CompilationResponse { node_graph_errors, result } = execution_response; let type_delta = match result { - Err(e) => { + Err((incomplete_delta, e)) => { // Clear the click targets while the graph is in an un-renderable state document.network_interface.update_click_targets(HashMap::new()); @@ -312,7 +380,7 @@ impl NodeGraphExecutor { log::trace!("{e}"); responses.add(NodeGraphMessage::UpdateTypes { - resolved_types: Default::default(), + resolved_types: incomplete_delta, node_graph_errors, }); responses.add(NodeGraphMessage::SendGraph); @@ -330,75 +398,46 @@ impl NodeGraphExecutor { } } } + Ok(()) } - fn debug_render(render_object: impl Render, footprint: Footprint, responses: &mut VecDeque) { - // Setup rendering - let mut render = SvgRender::new(); - let render_params = RenderParams { - view_mode: ViewMode::Normal, - footprint, - thumbnail: false, - hide_artboards: false, - for_export: false, - for_mask: false, - alignment_parent_transform: None, + fn process_node_graph_output(&mut self, node_graph_output: TaggedValue, responses: &mut VecDeque) -> Result<(), String> { + let TaggedValue::RenderOutput(render_output) = node_graph_output else { + return Err(format!("Invalid node graph output type: {node_graph_output:#?}")); }; - // Render SVG - render_object.render_svg(&mut render, &render_params); - - // Concatenate the defs and the SVG into one string - render.wrap_with_transform(footprint.transform, None); - let svg = render.svg.to_svg_string(); - - // Send to frontend - responses.add(FrontendMessage::UpdateDocumentArtwork { svg }); - } - - fn process_node_graph_output(&mut self, node_graph_output: TaggedValue, footprint: Footprint, responses: &mut VecDeque) -> Result<(), String> { - let mut render_output_metadata = RenderMetadata::default(); - - match node_graph_output { - TaggedValue::RenderOutput(render_output) => { - match render_output.data { - RenderOutputType::Svg { svg, image_data } => { - // Send to frontend - responses.add(FrontendMessage::UpdateImageData { image_data }); - responses.add(FrontendMessage::UpdateDocumentArtwork { svg }); - } - RenderOutputType::CanvasFrame(frame) => { - let matrix = format_transform_matrix(frame.transform); - let transform = if matrix.is_empty() { String::new() } else { format!(" transform=\"{matrix}\"") }; - let svg = format!( - r#"
"#, - frame.resolution.x, frame.resolution.y, frame.surface_id.0 - ); - responses.add(FrontendMessage::UpdateDocumentArtwork { svg }); - } - RenderOutputType::Texture { .. } => {} - _ => return Err(format!("Invalid node graph output type: {:#?}", render_output.data)), - } - - render_output_metadata = render_output.metadata; + match render_output.data { + RenderOutputType::Svg { svg, image_data } => { + // Send to frontend + responses.add(FrontendMessage::UpdateImageData { image_data }); + responses.add(FrontendMessage::UpdateDocumentArtwork { svg }); + self.last_svg_canvas = None; } - TaggedValue::Bool(render_object) => Self::debug_render(render_object, footprint, responses), - TaggedValue::F64(render_object) => Self::debug_render(render_object, footprint, responses), - TaggedValue::DVec2(render_object) => Self::debug_render(render_object, footprint, responses), - TaggedValue::String(render_object) => Self::debug_render(render_object, footprint, responses), - TaggedValue::OptionalColor(render_object) => Self::debug_render(render_object, footprint, responses), - TaggedValue::Palette(render_object) => Self::debug_render(render_object, footprint, responses), - _ => return Err(format!("Invalid node graph output type: {node_graph_output:#?}")), - }; + RenderOutputType::CanvasFrame(frame) => 'block: { + if self.last_svg_canvas == Some(frame) { + break 'block; + } + let matrix = format_transform_matrix(frame.transform); + let transform = if matrix.is_empty() { String::new() } else { format!(" transform=\"{matrix}\"") }; + let svg = format!( + r#"
"#, + frame.resolution.x, frame.resolution.y, frame.surface_id.0, + ); + self.last_svg_canvas = Some(frame); + responses.add(FrontendMessage::UpdateDocumentArtwork { svg }); + } + RenderOutputType::Texture { .. } => {} + _ => return Err(format!("Invalid node graph output type: {:#?}", render_output.data)), + } - let graphene_std::renderer::RenderMetadata { + let RenderMetadata { upstream_footprints, local_transforms, first_element_source_id, click_targets, clip_targets, - } = render_output_metadata; + } = render_output.metadata; // Run these update state messages immediately responses.add(DocumentMessage::UpdateUpstreamTransforms { @@ -411,6 +450,7 @@ impl NodeGraphExecutor { responses.add(DocumentMessage::RenderScrollbars); responses.add(DocumentMessage::RenderRulers); responses.add(OverlaysMessage::Draw); + Ok(()) } } @@ -472,7 +512,7 @@ mod test { let monitor_node = DocumentNode { inputs: vec![input], implementation: DocumentNodeImplementation::ProtoNode(graphene_std::memo::monitor::IDENTIFIER), - manual_composition: Some(graph_craft::generic!(T)), + call_argument: graph_craft::generic!(T), skip_deduplication: true, ..Default::default() }; @@ -499,7 +539,8 @@ mod test { } else if let Some(x) = dynamic.downcast_ref::>() { Some(x.output.clone()) } else { - panic!("cannot downcast type for introspection"); + warn!("cannot downcast type for introspection"); + None } } @@ -514,7 +555,7 @@ mod test { .iter() .filter_map(|inputs| inputs.get(Input::INDEX)) .filter_map(|input_monitor_node| runtime.executor.introspect(input_monitor_node).ok()) - .filter_map(Instrumented::downcast::) + .filter_map(Instrumented::downcast::) // Some might not resolve (e.g. generics that don't work properly) } pub fn grab_protonode_input(&self, path: &Vec, runtime: &NodeRuntime) -> Option diff --git a/editor/src/node_graph_executor/runtime.rs b/editor/src/node_graph_executor/runtime.rs index f5c6ba043..66022cc04 100644 --- a/editor/src/node_graph_executor/runtime.rs +++ b/editor/src/node_graph_executor/runtime.rs @@ -7,16 +7,17 @@ use graph_craft::graphene_compiler::Compiler; use graph_craft::proto::GraphErrors; use graph_craft::wasm_application_io::EditorPreferences; use graph_craft::{ProtoNodeIdentifier, concrete}; -use graphene_std::application_io::{ImageTexture, NodeGraphUpdateMessage, NodeGraphUpdateSender, RenderConfig}; +use graphene_std::application_io::{ApplicationIo, ExportFormat, ImageTexture, NodeGraphUpdateMessage, NodeGraphUpdateSender, RenderConfig}; use graphene_std::bounds::RenderBoundingBox; use graphene_std::memo::IORecord; +use graphene_std::ops::Convert; +use graphene_std::raster_types::Raster; use graphene_std::renderer::{Render, RenderParams, SvgRender}; use graphene_std::renderer::{RenderSvgSegmentList, SvgSegment}; use graphene_std::table::{Table, TableRow}; use graphene_std::text::FontCache; use graphene_std::transform::RenderQuality; use graphene_std::vector::Vector; -use graphene_std::vector::style::ViewMode; use graphene_std::wasm_application_io::{RenderOutputType, WasmApplicationIo, WasmEditorApi}; use graphene_std::{Artboard, Context, Graphic}; use interpreted_executor::dynamic_executor::{DynamicExecutor, IntrospectError, ResolvedDocumentNodeTypesDelta}; @@ -44,7 +45,7 @@ pub struct NodeRuntime { node_graph_errors: GraphErrors, monitor_nodes: Vec>, - /// Which node is inspected and which monitor node is used (if any) for the current execution + /// Which node is inspected and which monitor node is used (if any) for the current execution. inspect_state: Option, /// Mapping of the fully-qualified node paths to their preprocessor substitutions. @@ -54,6 +55,10 @@ pub struct NodeRuntime { /// The current renders of the thumbnails for layer nodes. thumbnail_renders: HashMap>, vector_modify: HashMap, + + /// Cached surface for WASM viewport rendering (reused across frames) + #[cfg(all(target_family = "wasm", feature = "gpu"))] + wasm_viewport_surface: Option, } /// Messages passed from the editor thread to the node runtime thread. @@ -69,12 +74,12 @@ pub enum GraphRuntimeRequest { pub struct GraphUpdate { pub(super) network: NodeNetwork, /// The node that should be temporary inspected during execution - pub(super) inspect_node: Option, + pub(super) node_to_inspect: Option, } #[derive(Default, Debug, Clone, serde::Serialize, serde::Deserialize)] pub struct ExportConfig { - pub file_name: String, + pub name: String, pub file_type: FileType, pub scale_factor: f64, pub bounds: ExportBounds, @@ -130,6 +135,8 @@ impl NodeRuntime { thumbnail_renders: Default::default(), vector_modify: Default::default(), inspect_state: None, + #[cfg(all(target_family = "wasm", feature = "gpu"))] + wasm_viewport_surface: None, } } @@ -154,7 +161,14 @@ impl NodeRuntime { for request in self.receiver.try_iter() { match request { GraphRuntimeRequest::GraphUpdate(_) => graph = Some(request), - GraphRuntimeRequest::ExecutionRequest(_) => execution = Some(request), + GraphRuntimeRequest::ExecutionRequest(ref execution_request) => { + let for_export = execution_request.render_config.for_export; + execution = Some(request); + // If we get an export request we always execute it immedeatly otherwise it could get deduplicated + if for_export { + break; + } + } GraphRuntimeRequest::FontCacheUpdate(_) => font = Some(request), GraphRuntimeRequest::EditorPreferencesUpdate(_) => preferences = Some(request), } @@ -190,20 +204,33 @@ impl NodeRuntime { let _ = self.update_network(graph).await; } } - GraphRuntimeRequest::GraphUpdate(GraphUpdate { mut network, inspect_node }) => { + GraphRuntimeRequest::GraphUpdate(GraphUpdate { mut network, node_to_inspect }) => { // Insert the monitor node to manage the inspection - self.inspect_state = inspect_node.map(|inspect| InspectState::monitor_inspect_node(&mut network, inspect)); + self.inspect_state = node_to_inspect.map(|inspect| InspectState::monitor_inspect_node(&mut network, inspect)); self.old_graph = Some(network.clone()); + self.node_graph_errors.clear(); let result = self.update_network(network).await; + let node_graph_errors = self.node_graph_errors.clone(); + self.update_thumbnails = true; - self.sender.send_generation_response(CompilationResponse { - result, - node_graph_errors: self.node_graph_errors.clone(), - }); + + self.sender.send_generation_response(CompilationResponse { result, node_graph_errors }); } - GraphRuntimeRequest::ExecutionRequest(ExecutionRequest { execution_id, render_config, .. }) => { + GraphRuntimeRequest::ExecutionRequest(ExecutionRequest { execution_id, mut render_config, .. }) => { + // There are cases where we want to export via the svg pipeline eventhough raster was requested. + if matches!(render_config.export_format, ExportFormat::Raster) { + let vello_available = self.editor_api.application_io.as_ref().unwrap().gpu_executor().is_some(); + let use_vello = vello_available && self.editor_api.editor_preferences.use_vello(); + + // On web when the user has disabled vello rendering in the preferences or we are exporting. + // And on all platforms when vello is not supposed to be used. + if !use_vello || cfg!(target_family = "wasm") && render_config.for_export { + render_config.export_format = ExportFormat::Svg; + } + } + let result = self.execute_network(render_config).await; let mut responses = VecDeque::new(); // TODO: Only process monitor nodes if the graph has changed, not when only the Footprint changes @@ -213,21 +240,124 @@ impl NodeRuntime { // Resolve the result from the inspection by accessing the monitor node let inspect_result = self.inspect_state.and_then(|state| state.access(&self.executor)); - let texture = if let Ok(TaggedValue::RenderOutput(RenderOutput { - data: RenderOutputType::Texture(texture), - .. - })) = &result - { - // We can early return becaus we know that there is at most one execution request and it will always be handled last - Some(texture.clone()) - } else { - None + let (result, texture) = match result { + Ok(TaggedValue::RenderOutput(RenderOutput { + data: RenderOutputType::Texture(image_texture), + metadata, + })) if render_config.for_export => { + let executor = self + .editor_api + .application_io + .as_ref() + .unwrap() + .gpu_executor() + .expect("GPU executor should be available when we receive a texture"); + + let raster_cpu = Raster::new_gpu(image_texture.texture).convert(Footprint::BOUNDLESS, executor).await; + + let (data, width, height) = raster_cpu.to_flat_u8(); + + ( + Ok(TaggedValue::RenderOutput(RenderOutput { + data: RenderOutputType::Buffer { data, width, height }, + metadata, + })), + None, + ) + } + #[cfg(all(target_family = "wasm", feature = "gpu"))] + Ok(TaggedValue::RenderOutput(RenderOutput { + data: RenderOutputType::Texture(image_texture), + metadata, + })) if !render_config.for_export => { + // On WASM, for viewport rendering, blit the texture to a surface and return a CanvasFrame + let app_io = self.editor_api.application_io.as_ref().unwrap(); + let executor = app_io.gpu_executor().expect("GPU executor should be available when we receive a texture"); + + // Get or create the cached surface + if self.wasm_viewport_surface.is_none() { + let surface_handle = app_io.create_window(); + let wasm_surface = executor + .create_surface(graphene_std::wasm_application_io::WasmSurfaceHandle { + surface: surface_handle.surface.clone(), + window_id: surface_handle.window_id, + }) + .expect("Failed to create surface"); + self.wasm_viewport_surface = Some(Arc::new(wasm_surface)); + } + + let surface = self.wasm_viewport_surface.as_ref().unwrap(); + + // Use logical resolution for CSS sizing, physical resolution for the actual surface/texture + let physical_resolution = render_config.viewport.resolution; + let logical_resolution = physical_resolution.as_dvec2() / render_config.scale; + + // Blit the texture to the surface + let mut encoder = executor.context.device.create_command_encoder(&vello::wgpu::CommandEncoderDescriptor { + label: Some("Texture to Surface Blit"), + }); + + // Configure the surface at physical resolution (for HiDPI displays) + let surface_inner = &surface.surface.inner; + let surface_caps = surface_inner.get_capabilities(&executor.context.adapter); + surface_inner.configure( + &executor.context.device, + &vello::wgpu::SurfaceConfiguration { + usage: vello::wgpu::TextureUsages::RENDER_ATTACHMENT | vello::wgpu::TextureUsages::COPY_DST, + format: vello::wgpu::TextureFormat::Rgba8Unorm, + width: physical_resolution.x, + height: physical_resolution.y, + present_mode: surface_caps.present_modes[0], + alpha_mode: vello::wgpu::CompositeAlphaMode::Opaque, + view_formats: vec![], + desired_maximum_frame_latency: 2, + }, + ); + + let surface_texture = surface_inner.get_current_texture().expect("Failed to get surface texture"); + + // Blit the rendered texture to the surface + surface.surface.blitter.copy( + &executor.context.device, + &mut encoder, + &image_texture.texture.create_view(&vello::wgpu::TextureViewDescriptor::default()), + &surface_texture.texture.create_view(&vello::wgpu::TextureViewDescriptor::default()), + ); + + executor.context.queue.submit([encoder.finish()]); + surface_texture.present(); + + let frame = graphene_std::application_io::SurfaceFrame { + surface_id: surface.window_id, + resolution: logical_resolution, + transform: glam::DAffine2::IDENTITY, + }; + + ( + Ok(TaggedValue::RenderOutput(RenderOutput { + data: RenderOutputType::CanvasFrame(frame), + metadata, + })), + None, + ) + } + Ok(TaggedValue::RenderOutput(RenderOutput { + data: RenderOutputType::Texture(texture), + metadata, + })) => ( + Ok(TaggedValue::RenderOutput(RenderOutput { + data: RenderOutputType::Texture(texture.clone()), + metadata, + })), + Some(texture), + ), + r => (r, None), }; + self.sender.send_execution_response(ExecutionResponse { execution_id, result, responses, - footprint: render_config.viewport, vector_modify: self.vector_modify.clone(), inspect_result, }); @@ -238,7 +368,7 @@ impl NodeRuntime { None } - async fn update_network(&mut self, mut graph: NodeNetwork) -> Result { + async fn update_network(&mut self, mut graph: NodeNetwork) -> Result { preprocessor::expand_network(&mut graph, &self.substitutions); let scoped_network = wrap_network_in_scope(graph, self.editor_api.clone()); @@ -249,37 +379,31 @@ impl NodeRuntime { let c = Compiler {}; let proto_network = match c.compile_single(scoped_network) { Ok(network) => network, - Err(e) => return Err(e), + Err(e) => return Err((ResolvedDocumentNodeTypesDelta::default(), e)), }; self.monitor_nodes = proto_network .nodes .iter() - .filter(|(_, node)| node.identifier == "graphene_core::memo::MonitorNode".into()) + .filter(|(_, node)| node.identifier == graphene_std::memo::monitor::IDENTIFIER) .map(|(_, node)| node.original_location.path.clone().unwrap_or_default()) .collect::>(); assert_ne!(proto_network.nodes.len(), 0, "No proto nodes exist?"); - self.executor.update(proto_network).await.map_err(|e| { + self.executor.update(proto_network).await.map_err(|(types, e)| { self.node_graph_errors.clone_from(&e); - format!("{e:?}") + (types, format!("{e:?}")) }) } async fn execute_network(&mut self, render_config: RenderConfig) -> Result { use graph_craft::graphene_compiler::Executor; - let result = match self.executor.input_type() { + match self.executor.input_type() { Some(t) if t == concrete!(RenderConfig) => (&self.executor).execute(render_config).await.map_err(|e| e.to_string()), Some(t) if t == concrete!(()) => (&self.executor).execute(()).await.map_err(|e| e.to_string()), Some(t) => Err(format!("Invalid input type {t:?}")), _ => Err(format!("No input type:\n{:?}", self.node_graph_errors)), - }; - let result = match result { - Ok(value) => value, - Err(e) => return Err(e), - }; - - Ok(result) + } } /// Updates state data @@ -341,7 +465,8 @@ impl NodeRuntime { if old.is_none_or(|v| !v.is_empty()) { responses.push_back(FrontendMessage::UpdateNodeThumbnail { id: parent_network_node_id, - value: "Dense thumbnail omitted for performance".to_string(), + value: "" + .to_string(), }); } return; @@ -360,13 +485,9 @@ impl NodeRuntime { // Render the thumbnail from a `Graphic` into an SVG string let render_params = RenderParams { - view_mode: ViewMode::Normal, footprint, thumbnail: true, - hide_artboards: false, - for_export: false, - for_mask: false, - alignment_parent_transform: None, + ..Default::default() }; let mut render = SvgRender::new(); graphic.render_svg(&mut render, &render_params); @@ -437,7 +558,7 @@ pub struct InspectResult { impl InspectResult { pub fn take_data(&mut self) -> Option> { - return self.introspected_data.clone(); + self.introspected_data.clone() } } @@ -467,7 +588,7 @@ impl InspectState { let monitor_node = DocumentNode { inputs: vec![NodeInput::node(inspect_node, 0)], // Connect to the primary output of the inspect node implementation: DocumentNodeImplementation::ProtoNode(graphene_std::memo::monitor::IDENTIFIER), - manual_composition: Some(graph_craft::generic!(T)), + call_argument: graph_craft::generic!(T), skip_deduplication: true, ..Default::default() }; diff --git a/editor/src/test_utils.rs b/editor/src/test_utils.rs index addadae0c..d7a69d302 100644 --- a/editor/src/test_utils.rs +++ b/editor/src/test_utils.rs @@ -9,10 +9,11 @@ use crate::messages::tool::utility_types::ToolType; use crate::node_graph_executor::Instrumented; use crate::node_graph_executor::NodeRuntime; use crate::test_utils::test_prelude::LayerNodeIdentifier; -use glam::DVec2; +use glam::{DVec2, UVec2}; use graph_craft::document::DocumentNode; use graphene_std::InputAccessor; use graphene_std::raster::color::Color; +use graphene_std::uuid::NodeId; /// A set of utility functions to make the writing of editor test more declarative pub struct EditorTestUtils { @@ -32,7 +33,6 @@ impl EditorTestUtils { let _ = GLOBAL_PLATFORM.set(Platform::Windows).is_ok(); editor.handle_message(PortfolioMessage::Init); - Self { editor, runtime } } @@ -48,8 +48,7 @@ impl EditorTestUtils { Err(e) => return Err(format!("update_node_graph_instrumented failed\n\n{e}")), }; - let viewport_resolution = glam::UVec2::ONE; - if let Err(e) = exector.submit_current_node_graph_evaluation(document, DocumentId(0), viewport_resolution, Default::default()) { + if let Err(e) = exector.submit_current_node_graph_evaluation(document, DocumentId(0), UVec2::ONE, 1., Default::default()) { return Err(format!("submit_current_node_graph_evaluation failed\n\n{e}")); } runtime.run().await; @@ -70,13 +69,15 @@ impl EditorTestUtils { run(&mut self.editor, &mut self.runtime) } - pub async fn handle_message(&mut self, message: impl Into) { - self.editor.handle_message(message); + pub async fn handle_message(&mut self, message: impl Into) -> Vec { + let frontend_messages_from_msg = self.editor.handle_message(message); // Required to process any buffered messages if let Err(e) = self.eval_graph().await { panic!("Failed to evaluate graph: {e}"); } + + frontend_messages_from_msg } pub async fn new_document(&mut self) { @@ -224,7 +225,7 @@ impl EditorTestUtils { ToolType::Rectangle => self.handle_message(Message::Tool(ToolMessage::ActivateToolShapeRectangle)).await, ToolType::Ellipse => self.handle_message(Message::Tool(ToolMessage::ActivateToolShapeEllipse)).await, _ => self.handle_message(Message::Tool(ToolMessage::ActivateTool { tool_type })).await, - } + }; } pub async fn select_primary_color(&mut self, color: Color) { @@ -293,6 +294,30 @@ impl EditorTestUtils { ) .await; } + + /// Necessary for doing snapping since snaps outside of the viewport are discarded + pub async fn set_viewport_size(&mut self, top_left: DVec2, bottom_right: DVec2) { + self.handle_message(ViewportMessage::Update { + x: top_left.x, + y: top_left.y, + width: bottom_right.x - top_left.x, + height: bottom_right.y - top_left.y, + scale: 1., + }) + .await; + } + + pub async fn create_node_by_name(&mut self, name: impl Into) -> NodeId { + let node_id = NodeId::new(); + self.handle_message(NodeGraphMessage::CreateNodeFromContextMenu { + node_id: Some(node_id), + node_type: name.into(), + xy: None, + add_transaction: true, + }) + .await; + node_id + } } pub trait FrontendMessageTestUtils { @@ -301,12 +326,9 @@ pub trait FrontendMessageTestUtils { impl FrontendMessageTestUtils for FrontendMessage { fn check_node_graph_error(&self) { - let FrontendMessage::UpdateNodeGraphNodes { nodes, .. } = self else { return }; - - for node in nodes { - if let Some(error) = &node.errors { - panic!("error on {}: {}", node.display_name, error); - } + let FrontendMessage::UpdateNodeGraphErrorDiagnostic { error } = self else { return }; + if let Some(error) = error { + panic!("error: {:?}", error); } } } diff --git a/editor/src/utility_traits.rs b/editor/src/utility_traits.rs index aaf977d1d..386d6fda6 100644 --- a/editor/src/utility_traits.rs +++ b/editor/src/utility_traits.rs @@ -60,3 +60,9 @@ pub trait HierarchicalTree { "" } } + +pub trait ExtractField { + fn field_types() -> Vec<(String, usize)>; + fn path() -> &'static str; + fn print_field_types(); +} diff --git a/editor/src/utility_types.rs b/editor/src/utility_types.rs index 6b5dc6de6..c27ce5c12 100644 --- a/editor/src/utility_types.rs +++ b/editor/src/utility_types.rs @@ -26,6 +26,7 @@ impl MessageData { #[derive(Debug)] pub struct DebugMessageTree { name: String, + fields: Option>, variants: Option>, message_handler: Option, message_handler_data: Option, @@ -36,6 +37,7 @@ impl DebugMessageTree { pub fn new(name: &str) -> DebugMessageTree { DebugMessageTree { name: name.to_string(), + fields: None, variants: None, message_handler: None, message_handler_data: None, @@ -43,6 +45,10 @@ impl DebugMessageTree { } } + pub fn add_fields(&mut self, fields: Vec) { + self.fields = Some(fields); + } + pub fn set_path(&mut self, path: &'static str) { self.path = path; } @@ -67,6 +73,10 @@ impl DebugMessageTree { &self.name } + pub fn fields(&self) -> Option<&Vec> { + self.fields.as_ref() + } + pub fn path(&self) -> &'static str { self.path } @@ -82,18 +92,4 @@ impl DebugMessageTree { pub fn message_handler_fields(&self) -> Option<&MessageData> { self.message_handler.as_ref() } - - pub fn has_message_handler_data_fields(&self) -> bool { - match self.message_handler_data_fields() { - Some(_) => true, - None => false, - } - } - - pub fn has_message_handler_fields(&self) -> bool { - match self.message_handler_fields() { - Some(_) => true, - None => false, - } - } } diff --git a/frontend/.eslintrc.cjs b/frontend/.eslintrc.cjs deleted file mode 100644 index c71b3ff33..000000000 --- a/frontend/.eslintrc.cjs +++ /dev/null @@ -1,109 +0,0 @@ -module.exports = { - root: true, - env: { browser: true, node: true }, - extends: [ - "eslint:recommended", - "plugin:import/recommended", - "plugin:@typescript-eslint/recommended", - "plugin:import/typescript", - "plugin:svelte/recommended", - "plugin:svelte/prettier", - "prettier", - ], - plugins: ["import", "@typescript-eslint", "prettier"], - settings: { - "import/parsers": { "@typescript-eslint/parser": [".ts"] }, - "import/resolver": { typescript: true, node: true }, - }, - parser: "@typescript-eslint/parser", - parserOptions: { - ecmaVersion: "latest", - project: "./tsconfig.json", - extraFileExtensions: [".svelte"], - }, - ignorePatterns: [ - // Ignore generated directories - "node_modules/", - "dist/", - "pkg/", - "wasm/pkg/", - // Don't ignore JS and TS dotfiles in this folder - "!.*.js", - "!.*.ts", - ], - overrides: [ - { - files: ["*.svelte"], - parser: "svelte-eslint-parser", - // Parse the ` - + diff --git a/frontend/src/components/floating-menus/ColorPicker.svelte b/frontend/src/components/floating-menus/ColorPicker.svelte index 53a20010f..07abea96f 100644 --- a/frontend/src/components/floating-menus/ColorPicker.svelte +++ b/frontend/src/components/floating-menus/ColorPicker.svelte @@ -1,10 +1,9 @@ - + + {@const hueDescription = "The shade along the spectrum of the rainbow."} + {@const saturationDescription = "The vividness from grayscale to full color."} + {@const valueDescription = "The brightness from black to full color."} - + {#if !isNone}
{/if} @@ -432,12 +451,24 @@ /> {/if} - + {#if !isNone}
{/if} - + {#if !isNone}
{/if} @@ -447,8 +478,8 @@ { - gradient = gradient; if (gradient) dispatch("colorOrGradient", gradient); }} on:activeMarkerIndexChange={gradientActiveMarkerIndexChange} @@ -459,6 +490,7 @@ {#if gradientSpectrumInputWidget && activeIndex !== undefined} { if (gradientSpectrumInputWidget && activeIndex !== undefined && detail !== undefined) gradientSpectrumInputWidget.setPosition(activeIndex, detail / 100); }} @@ -476,11 +508,11 @@ class="choice-preview" classes={{ outlined, transparency }} styles={{ "--outline-amount": outlineFactor }} - tooltip={!newColor.equals(oldColor) ? "Comparison between the present color choice (left) and the color before any change was made (right)" : "The present color choice"} + tooltipDescription={!newColor.equals(oldColor) ? "Comparison between the present color choice (left) and the color before it was changed (right)." : "The present color choice."} > - {#if !newColor.equals(oldColor)} + {#if !newColor.equals(oldColor) && !disabled}
- + {/if} {#if !newColor.equals(oldColor)} @@ -493,25 +525,28 @@ {/if}
- + - Hex + {@const hexDescription = "Color code in hexadecimal format. 6 digits if opaque, 8 with alpha. Accepts input of CSS color values including named colors."} + Hex { dispatch("startHistoryTransaction"); setColorCode(detail); }} centered={true} - tooltip={"Color code in hexadecimal format. 6 digits if opaque, 8 with alpha.\nAccepts input of CSS color values including named colors."} + tooltipLabel="Hex Color Code" + tooltipDescription={hexDescription} bind:this={hexCodeInputWidget} /> - RGB + RGB {#each rgbChannels as [channel, strength], index} @@ -520,6 +555,7 @@ {/if} { strength = detail; setColorRGB(channel, detail); @@ -530,15 +566,17 @@ min={0} max={255} minWidth={1} - tooltip={`${{ r: "Red", g: "Green", b: "Blue" }[channel]} channel, integers 0โ€“255`} + tooltipLabel={{ r: "Red Channel", g: "Green Channel", b: "Blue Channel" }[channel]} + tooltipDescription="Integers 0โ€“255." /> {/each} - - HSV - + HSV {#each hsvChannels as [channel, strength], index} @@ -547,6 +585,7 @@ {/if} { strength = detail; setColorHSV(channel, detail); @@ -559,20 +598,27 @@ unit={channel === "h" ? "ยฐ" : "%"} minWidth={1} displayDecimalPlaces={1} - tooltip={{ - h: `Hue component, the shade along the spectrum of the rainbow`, - s: `Saturation component, the vividness from grayscale to full color`, - v: "Value component, the brightness from black to full color", + tooltipLabel={{ + h: "Hue Component", + s: "Saturation Component", + v: "Value Component", + }[channel]} + tooltipDescription={{ + h: hueDescription, + s: saturationDescription, + v: valueDescription, }[channel]} /> {/each} - Alpha + {@const alphaDescription = "The level of translucency, from transparent (0%) to opaque (100%)."} + Alpha { if (detail !== undefined) alpha = detail / 100; setColorAlphaPercent(detail); @@ -587,29 +633,56 @@ unit="%" mode="Range" displayDecimalPlaces={1} - tooltip={`Scale of translucency, from transparent (0%) to opaque (100%), for the color's alpha channel`} + tooltipLabel="Alpha" + tooltipDescription={alphaDescription} /> {#if allowNone && !gradient} - + {/if} - + - + - - - + {#if eyedropperSupported()} + + + {/if} @@ -954,7 +1027,7 @@ // For the least jarring luminance conversion, these colors are derived by placing a black layer with the "desaturate" blend mode over the colors. // We don't use the CSS `filter: grayscale(1);` property because it produces overly dark tones for bright colors with a noticeable jump on hover. background: var(--pure-color-gray); - transition: background-color 0.2s ease; + transition: background-color 0.1s; } &:hover div { @@ -963,5 +1036,21 @@ } } } + + &.disabled .pickers-and-gradient .pickers :is(.saturation-value-picker, .hue-picker, .alpha-picker), + &.disabled .details .preset-color, + &.disabled .details .choice-preview { + transition: opacity 0.1s; + + &:hover { + opacity: 0.5; + } + } + + &.disabled .details .preset-color.pure:hover div { + background: var(--pure-color-gray); + } } + + // paddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpaddingpadding diff --git a/frontend/src/components/floating-menus/Dialog.svelte b/frontend/src/components/floating-menus/Dialog.svelte index e9d0ba5fa..ce06b2262 100644 --- a/frontend/src/components/floating-menus/Dialog.svelte +++ b/frontend/src/components/floating-menus/Dialog.svelte @@ -34,8 +34,8 @@ - {#if $dialog.column1.layout.length > 0} - + {#if $dialog.column1.length > 0} + {/if} {#if $dialog.panicDetails}
@@ -57,15 +57,15 @@
{/if}
- {#if $dialog.column2.layout.length > 0} + {#if $dialog.column2.length > 0} - + {/if}
- {#if $dialog.buttons.layout.length > 0} - + {#if $dialog.buttons.length > 0} + {/if} {#if $dialog.panicDetails} navigator.clipboard.writeText($dialog.panicDetails)} /> @@ -89,6 +89,7 @@ .header-area, .footer-area { background: var(--color-1-nearblack); + flex: 0 0 auto; } .header-area, @@ -113,6 +114,8 @@ .content { margin: -4px 0; + padding-right: calc(24px + 1px * var(--even-integer-subpixel-expansion-x)); + padding-bottom: calc(16px + 1px * var(--even-integer-subpixel-expansion-y)); &.center .row { justify-content: center; @@ -126,18 +129,22 @@ } } - .details.text-label { - -webkit-user-select: text; // Required as of Safari 15.0 (Graphite's minimum version) through the latest release - user-select: text; - white-space: pre-wrap; - max-width: 400px; - height: auto; - } - .radio-input button { flex-grow: 1; } + .text-label.multiline { + -webkit-user-select: text; // Still required by Safari as of 2025 + user-select: text; + } + + // Used by the "Third-Party Software License Notices" dialog + .details:has(.text-label.multiline.monospace) { + max-height: 60vh; + max-width: 80vw; + overflow: auto; + } + // Used by the "Open Demo Artwork" dialog .image-label { border-radius: 2px; diff --git a/frontend/src/components/floating-menus/MenuList.svelte b/frontend/src/components/floating-menus/MenuList.svelte index 0695d3830..116d21d16 100644 --- a/frontend/src/components/floating-menus/MenuList.svelte +++ b/frontend/src/components/floating-menus/MenuList.svelte @@ -12,16 +12,25 @@ import TextInput from "@graphite/components/widgets/inputs/TextInput.svelte"; import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte"; import Separator from "@graphite/components/widgets/labels/Separator.svelte"; + import ShortcutLabel from "@graphite/components/widgets/labels/ShortcutLabel.svelte"; import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte"; - import UserInputLabel from "@graphite/components/widgets/labels/UserInputLabel.svelte"; let self: FloatingMenu | undefined; let scroller: LayoutCol | undefined; let searchTextInput: TextInput | undefined; - const dispatch = createEventDispatcher<{ open: boolean; activeEntry: MenuListEntry; hoverInEntry: MenuListEntry; hoverOutEntry: undefined; naturalWidth: number }>(); + const dispatch = createEventDispatcher<{ + open: boolean; + activeEntry: MenuListEntry; + selectedEntryValuePath: string[]; + hoverInEntry: MenuListEntry; + hoverOutEntry: undefined; + naturalWidth: number; + }>(); + export let parentsValuePath: string[] = []; export let entries: MenuListEntry[][]; + export let entriesHash: bigint; export let activeEntry: MenuListEntry | undefined = undefined; export let open: boolean; export let direction: MenuDirection = "Bottom"; @@ -29,27 +38,29 @@ export let drawIcon = false; export let interactive = false; export let scrollableY = false; - export let virtualScrollingEntryHeight = 0; - export let tooltip: string | undefined = undefined; + export let virtualScrolling = false; // Keep the child references outside of the entries array so as to avoid infinite recursion. let childReferences: MenuList[][] = []; let search = ""; - + let reactiveEntries = entries; let highlighted = activeEntry as MenuListEntry | undefined; let virtualScrollingEntriesStart = 0; - // Called only when `open` is changed from outside this component + // `watchOpen` is called only when `open` is changed from outside this component $: watchOpen(open); $: watchEntries(entries); + $: watchEntriesHash(entriesHash); $: watchRemeasureWidth(filteredEntries, drawIcon); $: watchHighlightedWithSearch(filteredEntries, open); - $: filteredEntries = entries.map((section) => section.filter((entry) => inSearch(search, entry))); - $: virtualScrollingTotalHeight = filteredEntries.length === 0 ? 0 : filteredEntries[0].length * virtualScrollingEntryHeight; - $: virtualScrollingStartIndex = Math.floor(virtualScrollingEntriesStart / virtualScrollingEntryHeight) || 0; - $: virtualScrollingEndIndex = filteredEntries.length === 0 ? 0 : Math.min(filteredEntries[0].length, virtualScrollingStartIndex + 1 + 400 / virtualScrollingEntryHeight); + $: virtualScrollingEntryHeight = virtualScrolling ? 20 : 0; + $: filteredEntries = reactiveEntries.map((section) => section.filter((entry) => inSearch(search, entry))); $: startIndex = virtualScrollingEntryHeight ? virtualScrollingStartIndex : 0; + // Virtual scrolling calculations + $: virtualScrollingTotalHeight = filteredEntries.length === 0 ? 0 : filteredEntries[0].length * virtualScrollingEntryHeight; + $: virtualScrollingStartIndex = filteredEntries.length === 0 ? 0 : Math.floor(virtualScrollingEntriesStart / virtualScrollingEntryHeight) || 0; + $: virtualScrollingEndIndex = filteredEntries.length === 0 ? 0 : Math.min(filteredEntries[0].length, virtualScrollingStartIndex + 1 + 400 / virtualScrollingEntryHeight); // TODO: Move keyboard input handling entirely to the unified system in `input.ts`. // TODO: The current approach is hacky and blocks the allowances for shortcuts like the key to open the browser's dev tools. @@ -132,6 +143,10 @@ }); } + function watchEntriesHash(_entriesHash: bigint) { + reactiveEntries = entries; + } + function watchRemeasureWidth(_: MenuListEntry[][], __: boolean) { self?.measureAndEmitNaturalWidth(); } @@ -142,25 +157,31 @@ } function getChildReference(menuListEntry: MenuListEntry): MenuList | undefined { - const index = filteredEntries.flat().indexOf(menuListEntry); - return childReferences.flat().filter((x) => x)[index]; + const index = filteredEntries.flat().findIndex((entry) => entry.value === menuListEntry.value); + + if (index !== -1) { + return childReferences.flat().filter((x) => x)[index]; + } else { + // eslint-disable-next-line no-console + console.error("MenuListEntry not found in filteredEntries:", menuListEntry); + return undefined; + } } function onEntryClick(menuListEntry: MenuListEntry) { - // Call the action if available - if (menuListEntry.action) menuListEntry.action(); - - // Notify the parent about the clicked entry as the new active entry - dispatch("activeEntry", menuListEntry); - // Close the containing menu let childReference = getChildReference(menuListEntry); if (childReference) { childReference.open = false; - entries = entries; + reactiveEntries = reactiveEntries; } dispatch("open", false); open = false; + reactiveEntries = reactiveEntries; + + // Notify the parent about the clicked entry as the new active entry + dispatch("activeEntry", menuListEntry); + dispatch("selectedEntryValuePath", [...parentsValuePath, menuListEntry.value]); } function onEntryPointerEnter(menuListEntry: MenuListEntry) { @@ -172,8 +193,10 @@ let childReference = getChildReference(menuListEntry); if (childReference) { childReference.open = true; - entries = entries; - } else dispatch("open", true); + reactiveEntries = reactiveEntries; + } else { + dispatch("open", true); + } } function onEntryPointerLeave(menuListEntry: MenuListEntry) { @@ -185,8 +208,10 @@ let childReference = getChildReference(menuListEntry); if (childReference) { childReference.open = false; - entries = entries; - } else dispatch("open", false); + reactiveEntries = reactiveEntries; + } else { + dispatch("open", false); + } } function isEntryOpen(menuListEntry: MenuListEntry): boolean { @@ -360,7 +385,7 @@ let container = scroller?.div?.(); if (!container || !highlighted) return; let containerBoundingRect = container.getBoundingClientRect(); - let highlightedIndex = filteredEntries.flat().findIndex((entry) => entry === highlighted); + let highlightedIndex = filteredEntries.flat().findIndex((entry) => entry.value === highlighted?.value); let selectedBoundingRect = new DOMRect(); if (virtualScrollingEntryHeight) { @@ -381,10 +406,6 @@ container.scrollBy(0, selectedBoundingRect.y - (containerBoundingRect.y + containerBoundingRect.height) + selectedBoundingRect.height); } } - - export function scrollViewTo(distanceDown: number) { - scroller?.div?.()?.scrollTo(0, distanceDown); - } {/if} - {#each entries as section, sectionIndex (sectionIndex)} - {#if includeSeparator(entries, section, sectionIndex, search)} + {#each reactiveEntries as section, sectionIndex (sectionIndex)} + {#if includeSeparator(reactiveEntries, section, sectionIndex, search)} {/if} {#each currentEntries(section, virtualScrollingEntryHeight, virtualScrollingStartIndex, virtualScrollingEndIndex, search) as entry, entryIndex (entryIndex + startIndex)} @@ -423,7 +444,9 @@ class="row" classes={{ open: isEntryOpen(entry), active: entry.label === highlighted?.label, disabled: Boolean(entry.disabled) }} styles={{ height: virtualScrollingEntryHeight || "20px" }} - {tooltip} + tooltipLabel={entry.tooltipLabel} + tooltipDescription={entry.tooltipDescription} + tooltipShortcut={entry.tooltipShortcut} on:click={() => !entry.disabled && onEntryClick(entry)} on:pointerenter={() => !entry.disabled && onEntryPointerEnter(entry)} on:pointerleave={() => !entry.disabled && onEntryPointerLeave(entry)} @@ -435,13 +458,13 @@ {/if} {#if entry.font} - + {/if} - + - {#if entry.shortcut?.keys.length} - + {#if entry.tooltipShortcut?.shortcut.length} + {/if} {#if entry.children?.length} @@ -458,9 +481,12 @@ // See explanation at . dispatch("naturalWidth", detail); }} + on:selectedEntryValuePath={({ detail }) => dispatch("selectedEntryValuePath", detail)} + parentsValuePath={[...parentsValuePath, entry.value]} open={getChildReference(entry)?.open || false} direction="TopRight" entries={entry.children} + entriesHash={entry.childrenHash || 0n} {minWidth} {drawIcon} {scrollableY} @@ -490,7 +516,7 @@ margin: 4px 0; div { - background: var(--color-4-dimgray); + background: var(--color-3-darkgray); } } @@ -526,7 +552,7 @@ margin: 0 4px; } - .user-input-label { + .shortcut-label { margin-left: 12px; } diff --git a/frontend/src/components/floating-menus/NodeCatalog.svelte b/frontend/src/components/floating-menus/NodeCatalog.svelte index 58856e2ac..fae48136c 100644 --- a/frontend/src/components/floating-menus/NodeCatalog.svelte +++ b/frontend/src/components/floating-menus/NodeCatalog.svelte @@ -4,6 +4,7 @@ import type { FrontendNodeType } from "@graphite/messages"; import type { NodeGraphState } from "@graphite/state-providers/node-graph"; + import LayoutCol from "@graphite/components/layout/LayoutCol.svelte"; import TextButton from "@graphite/components/widgets/buttons/TextButton.svelte"; import TextInput from "@graphite/components/widgets/inputs/TextInput.svelte"; import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte"; @@ -109,8 +110,8 @@ }); -
- (searchTerm = detail)} bind:this={nodeSearchInput} /> + + (searchTerm = detail)} bind:this={nodeSearchInput} />
{#each nodeCategories as nodeCategory}
@@ -118,22 +119,25 @@ {nodeCategory[0]} {#each nodeCategory[1].nodes as nodeType} - dispatch("selectNodeType", nodeType.name)} /> + dispatch("selectNodeType", nodeType.name)} + /> {/each}
{:else} No search results {/each}
-
+ diff --git a/frontend/src/components/layout/FloatingMenu.svelte b/frontend/src/components/layout/FloatingMenu.svelte index e4070cb15..b26d6977b 100644 --- a/frontend/src/components/layout/FloatingMenu.svelte +++ b/frontend/src/components/layout/FloatingMenu.svelte @@ -1,5 +1,5 @@ + + + + + + + + diff --git a/frontend/src/components/panels/Document.svelte b/frontend/src/components/panels/Document.svelte index 4ab7afd6f..0653aecf2 100644 --- a/frontend/src/components/panels/Document.svelte +++ b/frontend/src/components/panels/Document.svelte @@ -1,11 +1,12 @@ e.preventDefault()} on:drop={dropFile}> {#if !$document.graphViewOverlayOpen} - - + - + {:else} - + {/if} {#if !$document.graphViewOverlayOpen} - + {:else} {/if} - + @@ -586,7 +619,6 @@ thumbPosition={scrollbarPos.x} on:trackShift={({ detail }) => editor.handle.panCanvasByFraction(detail, 0)} on:thumbPosition={({ detail }) => panCanvasX(detail)} - on:thumbDragEnd={() => editor.handle.setGridAlignedEdges()} on:thumbDragStart={() => editor.handle.panCanvasAbortPrepare(true)} on:thumbDragAbort={() => editor.handle.panCanvasAbort(true)} /> @@ -673,14 +705,14 @@ .icon-button { margin: 0; - &[title^="Coming Soon"] { - opacity: 0.25; - transition: opacity 0.2s; + // &[data-tooltip-description^="Coming soon."] { + // opacity: 0.25; + // transition: opacity 0.1s; - &:hover { - opacity: 1; - } - } + // &:hover { + // opacity: 1; + // } + // } &:not(.active) { .color-general { @@ -751,7 +783,7 @@ margin-right: 16px; } - .right-scrollbar .scrollbar-input { + &:has(.top-ruler) .right-scrollbar .scrollbar-input { margin-top: -16px; } @@ -825,7 +857,7 @@ .graph-view { pointer-events: none; - transition: opacity 0.2s ease-in-out; + transition: opacity 0.2s; opacity: 0; &.open { diff --git a/frontend/src/components/panels/Layers.svelte b/frontend/src/components/panels/Layers.svelte index 092a83fba..9115a9ea6 100644 --- a/frontend/src/components/panels/Layers.svelte +++ b/frontend/src/components/panels/Layers.svelte @@ -2,19 +2,18 @@ import { getContext, onMount, onDestroy, tick } from "svelte"; import type { Editor } from "@graphite/editor"; - import { beginDraggingElement } from "@graphite/io-managers/drag"; import { - defaultWidgetLayout, - patchWidgetLayout, + patchLayout, UpdateDocumentLayerDetails, UpdateDocumentLayerStructureJs, UpdateLayersPanelControlBarLeftLayout, UpdateLayersPanelControlBarRightLayout, UpdateLayersPanelBottomBarLayout, } from "@graphite/messages"; - import type { DataBuffer, LayerPanelEntry } from "@graphite/messages"; + import type { DataBuffer, LayerPanelEntry, Layout } from "@graphite/messages"; import type { NodeGraphState } from "@graphite/state-providers/node-graph"; - import { platformIsMac } from "@graphite/utility-functions/platform"; + import type { TooltipState } from "@graphite/state-providers/tooltip"; + import { operatingSystem } from "@graphite/utility-functions/platform"; import { extractPixelData } from "@graphite/utility-functions/rasterization"; import LayoutCol from "@graphite/components/layout/LayoutCol.svelte"; @@ -40,8 +39,17 @@ markerHeight: number; }; + type InternalDragState = { + active: boolean; + layerId: bigint; + listing: LayerListingInfo; + startX: number; + startY: number; + }; + const editor = getContext("editor"); const nodeGraph = getContext("nodeGraph"); + const tooltip = getContext("tooltip"); let list: LayoutCol | undefined; @@ -52,7 +60,9 @@ // Interactive dragging let draggable = true; let draggingData: undefined | DraggingData = undefined; + let internalDragState: InternalDragState | undefined = undefined; let fakeHighlightOfNotYetSelectedLayerBeingDragged: undefined | bigint = undefined; + let justFinishedDrag = false; // Used to prevent click events after a drag let dragInPanel = false; // Interactive clipping @@ -60,44 +70,60 @@ let layerToClipAltKeyPressed = false; // Layouts - let layersPanelControlBarLeftLayout = defaultWidgetLayout(); - let layersPanelControlBarRightLayout = defaultWidgetLayout(); - let layersPanelBottomBarLayout = defaultWidgetLayout(); + let layersPanelControlBarLeftLayout: Layout = []; + let layersPanelControlBarRightLayout: Layout = []; + let layersPanelBottomBarLayout: Layout = []; onMount(() => { - editor.subscriptions.subscribeJsMessage(UpdateLayersPanelControlBarLeftLayout, (updateLayersPanelControlBarLeftLayout) => { - patchWidgetLayout(layersPanelControlBarLeftLayout, updateLayersPanelControlBarLeftLayout); + editor.subscriptions.subscribeJsMessage(UpdateLayersPanelControlBarLeftLayout, (data) => { + patchLayout(layersPanelControlBarLeftLayout, data); layersPanelControlBarLeftLayout = layersPanelControlBarLeftLayout; }); - editor.subscriptions.subscribeJsMessage(UpdateLayersPanelControlBarRightLayout, (updateLayersPanelControlBarRightLayout) => { - patchWidgetLayout(layersPanelControlBarRightLayout, updateLayersPanelControlBarRightLayout); + editor.subscriptions.subscribeJsMessage(UpdateLayersPanelControlBarRightLayout, (data) => { + patchLayout(layersPanelControlBarRightLayout, data); layersPanelControlBarRightLayout = layersPanelControlBarRightLayout; }); - editor.subscriptions.subscribeJsMessage(UpdateLayersPanelBottomBarLayout, (updateLayersPanelBottomBarLayout) => { - patchWidgetLayout(layersPanelBottomBarLayout, updateLayersPanelBottomBarLayout); + editor.subscriptions.subscribeJsMessage(UpdateLayersPanelBottomBarLayout, (data) => { + patchLayout(layersPanelBottomBarLayout, data); layersPanelBottomBarLayout = layersPanelBottomBarLayout; }); - editor.subscriptions.subscribeJsMessage(UpdateDocumentLayerStructureJs, (updateDocumentLayerStructure) => { - const structure = newUpdateDocumentLayerStructure(updateDocumentLayerStructure.dataBuffer); + editor.subscriptions.subscribeJsMessage(UpdateDocumentLayerStructureJs, (data) => { + const structure = newUpdateDocumentLayerStructure(data.dataBuffer); rebuildLayerHierarchy(structure); }); - editor.subscriptions.subscribeJsMessage(UpdateDocumentLayerDetails, (updateDocumentLayerDetails) => { - const targetLayer = updateDocumentLayerDetails.data; + editor.subscriptions.subscribeJsMessage(UpdateDocumentLayerDetails, (data) => { + const targetLayer = data.data; const targetId = targetLayer.id; updateLayerInTree(targetId, targetLayer); }); + addEventListener("pointerup", draggingPointerUp); + addEventListener("pointermove", draggingPointerMove); + addEventListener("mousedown", draggingMouseDown); + addEventListener("keydown", draggingKeyDown); + addEventListener("pointermove", clippingHover); addEventListener("keydown", clippingKeyPress); addEventListener("keyup", clippingKeyPress); }); onDestroy(() => { + editor.subscriptions.unsubscribeJsMessage(UpdateLayersPanelControlBarLeftLayout); + editor.subscriptions.unsubscribeJsMessage(UpdateLayersPanelControlBarRightLayout); + editor.subscriptions.unsubscribeJsMessage(UpdateLayersPanelBottomBarLayout); + editor.subscriptions.unsubscribeJsMessage(UpdateDocumentLayerStructureJs); + editor.subscriptions.unsubscribeJsMessage(UpdateDocumentLayerDetails); + + removeEventListener("pointerup", draggingPointerUp); + removeEventListener("pointermove", draggingPointerMove); + removeEventListener("mousedown", draggingMouseDown); + removeEventListener("keydown", draggingKeyDown); + removeEventListener("pointermove", clippingHover); removeEventListener("keydown", clippingKeyPress); removeEventListener("keyup", clippingKeyPress); @@ -171,7 +197,7 @@ } function handleExpandArrowClickWithModifiers(e: MouseEvent, id: bigint) { - const accel = platformIsMac() ? e.metaKey : e.ctrlKey; + const accel = operatingSystem() === "Mac" ? e.metaKey : e.ctrlKey; const collapseRecursive = e.altKey || accel; editor.handle.toggleLayerExpansion(id, collapseRecursive); e.stopPropagation(); @@ -217,10 +243,17 @@ } function selectLayerWithModifiers(e: MouseEvent, listing: LayerListingInfo) { + if (justFinishedDrag) { + justFinishedDrag = false; + // Prevent bubbling to deselectAllLayers + e.stopPropagation(); + return; + } + // Get the pressed state of the modifier keys const [ctrl, meta, shift, alt] = [e.ctrlKey, e.metaKey, e.shiftKey, e.altKey]; // Get the state of the platform's accel key and its opposite platform's accel key - const [accel, oppositeAccel] = platformIsMac() ? [meta, ctrl] : [ctrl, meta]; + const [accel, oppositeAccel] = operatingSystem() === "Mac" ? [meta, ctrl] : [ctrl, meta]; // Alt-clicking to make a clipping mask if (layerToClipAltKeyPressed && layerToClipUponClick && layerToClipUponClick.entry.clippable) clipLayer(layerToClipUponClick); @@ -249,7 +282,7 @@ return; } - // Check if the cursor is near the border btween two layers + // Check if the cursor is near the border between two layers const DISTANCE = 6; const distanceFromTop = e.clientY - target.getBoundingClientRect().top; const distanceFromBottom = target.getBoundingClientRect().bottom - e.clientY; @@ -282,6 +315,11 @@ } async function deselectAllLayers() { + if (justFinishedDrag) { + justFinishedDrag = false; + return; + } + editor.handle.deselectAllLayers(); } @@ -365,81 +403,135 @@ }; } - async function dragStart(event: DragEvent, listing: LayerListingInfo) { - const layer = listing.entry; - dragInPanel = true; - if (!$nodeGraph.selected.includes(layer.id)) { - fakeHighlightOfNotYetSelectedLayerBeingDragged = layer.id; - } - const select = () => { - if (!$nodeGraph.selected.includes(layer.id)) selectLayer(listing, false, false); + function layerPointerDown(e: PointerEvent, listing: LayerListingInfo) { + // Only left click drags + if (e.button !== 0 || !draggable) return; + + internalDragState = { + active: false, + layerId: listing.entry.id, + listing: listing, + startX: e.clientX, + startY: e.clientY, }; - - const target = (event.target instanceof HTMLElement && event.target) || undefined; - const closest = target?.closest("[data-layer]") || undefined; - const draggingELement = (closest instanceof HTMLElement && closest) || undefined; - if (draggingELement) beginDraggingElement(draggingELement); - - // Set style of cursor for drag - if (event.dataTransfer) { - event.dataTransfer.dropEffect = "move"; - event.dataTransfer.effectAllowed = "move"; - } - - if (list) draggingData = calculateDragIndex(list, event.clientY, select); } - function updateInsertLine(event: DragEvent) { - if (!draggable) return; + function draggingPointerMove(e: PointerEvent) { + if (!internalDragState || !list) return; + + // Calculate distance moved + if (!internalDragState.active) { + const distance = Math.hypot(e.clientX - internalDragState.startX, e.clientY - internalDragState.startY); + const DRAG_THRESHOLD = 5; + + if (distance > DRAG_THRESHOLD) { + internalDragState.active = true; + dragInPanel = true; + + const layer = internalDragState.listing.entry; + if (!$nodeGraph.selected.includes(layer.id)) { + fakeHighlightOfNotYetSelectedLayerBeingDragged = layer.id; + } + } + } + + // Perform drag calculations if a drag is occurring + if (internalDragState.active) { + const select = () => { + if (internalDragState && !$nodeGraph.selected.includes(internalDragState.layerId)) { + selectLayer(internalDragState.listing, false, false); + } + }; + + draggingData = calculateDragIndex(list, e.clientY, select); + } + } + + function draggingPointerUp() { + if (internalDragState?.active && draggingData) { + const { select, insertParentId, insertIndex } = draggingData; + + // Commit the move + select?.(); + editor.handle.moveLayerInTree(insertParentId, insertIndex); + + // Prevent the subsequent click event from processing + justFinishedDrag = true; + } else if (justFinishedDrag) { + // Avoid right-click abort getting stuck with `justFinishedDrag` set and blocking the first subsequent click to select a layer + setTimeout(() => { + justFinishedDrag = false; + }, 0); + } + + // Reset state + abortDrag(); + } + + function abortDrag() { + internalDragState = undefined; + draggingData = undefined; + fakeHighlightOfNotYetSelectedLayerBeingDragged = undefined; + dragInPanel = false; + } + + function draggingMouseDown(e: MouseEvent) { + // Abort if a drag is active and the user presses the right mouse button (button 2) + if (e.button === 2 && internalDragState?.active) { + justFinishedDrag = true; + abortDrag(); + } + } + + function draggingKeyDown(e: KeyboardEvent) { + if (e.key === "Escape" && internalDragState?.active) { + justFinishedDrag = true; + abortDrag(); + } + } + + function fileDragOver(e: DragEvent) { + if (!draggable || !e.dataTransfer || !e.dataTransfer.types.includes("Files")) return; // Stop the drag from being shown as cancelled - event.preventDefault(); + e.preventDefault(); dragInPanel = true; - if (list) draggingData = calculateDragIndex(list, event.clientY, draggingData?.select); + if (list) draggingData = calculateDragIndex(list, e.clientY); } - function drop(e: DragEvent) { - if (!draggingData) return; - const { select, insertParentId, insertIndex } = draggingData; + function fileDrop(e: DragEvent) { + if (!draggingData || !e.dataTransfer || !e.dataTransfer.types.includes("Files")) return; + + const { insertParentId, insertIndex } = draggingData; e.preventDefault(); - if (e.dataTransfer) { - // Moving layers - if (e.dataTransfer.items.length === 0) { - if (draggable && dragInPanel) { - select?.(); - editor.handle.moveLayerInTree(insertParentId, insertIndex); - } + Array.from(e.dataTransfer.items).forEach(async (item) => { + const file = item.getAsFile(); + if (!file) return; + + if (file.type.includes("svg")) { + const svgData = await file.text(); + editor.handle.pasteSvg(file.name, svgData, undefined, undefined, insertParentId, insertIndex); + return; } - // Importing files - else { - Array.from(e.dataTransfer.items).forEach(async (item) => { - const file = item.getAsFile(); - if (!file) return; - if (file.type.includes("svg")) { - const svgData = await file.text(); - editor.handle.pasteSvg(file.name, svgData, undefined, undefined, insertParentId, insertIndex); - return; - } - - if (file.type.startsWith("image")) { - const imageData = await extractPixelData(file); - editor.handle.pasteImage(file.name, new Uint8Array(imageData.data), imageData.width, imageData.height, undefined, undefined, insertParentId, insertIndex); - return; - } - - // When we eventually have sub-documents, this should be changed to import the document instead of opening it in a separate tab - if (file.name.endsWith(".graphite")) { - const content = await file.text(); - editor.handle.openDocumentFile(file.name, content); - return; - } - }); + if (file.type.startsWith("image")) { + const imageData = await extractPixelData(file); + editor.handle.pasteImage(file.name, new Uint8Array(imageData.data), imageData.width, imageData.height, undefined, undefined, insertParentId, insertIndex); + return; } - } + + // When we eventually have sub-documents, this should be changed to import the document instead of opening it in a separate tab + const graphiteFileSuffix = "." + editor.handle.fileExtension(); + if (file.name.endsWith(graphiteFileSuffix)) { + const content = await file.text(); + const documentName = file.name.slice(0, -graphiteFileSuffix.length); + editor.handle.openDocumentFile(documentName, content); + return; + } + }); draggingData = undefined; fakeHighlightOfNotYetSelectedLayerBeingDragged = undefined; @@ -488,20 +580,21 @@ (dragInPanel = false)}> - - - + + {#if layersPanelControlBarLeftLayout?.length > 0 && layersPanelControlBarRightLayout?.length > 0} + + {/if} + - + deselectAllLayers()} - on:dragover={updateInsertLine} - on:dragend={drop} - on:drop={drop} + on:dragover={fileDragOver} + on:drop={fileDrop} > {#each layers as listing, index} {@const selected = fakeHighlightOfNotYetSelectedLayerBeingDragged !== undefined ? fakeHighlightOfNotYetSelectedLayerBeingDragged === listing.entry.id : listing.entry.selected} @@ -517,9 +610,7 @@ styles={{ "--layer-indent-levels": `${listing.entry.depth - 1}` }} data-layer data-index={index} - tooltip={listing.entry.tooltip} - {draggable} - on:dragstart={(e) => draggable && dragStart(e, listing)} + on:pointerdown={(e) => layerPointerDown(e, listing)} on:click={(e) => selectLayerWithModifiers(e, listing)} > {#if listing.entry.childrenAllowed} @@ -527,9 +618,12 @@ class="expand-arrow" class:expanded={listing.entry.expanded} disabled={!listing.entry.childrenPresent} - title={listing.entry.expanded - ? "Collapse (Click) / Collapse All (Alt Click)" - : `Expand (Click) / Expand All (Alt Click)${listing.entry.ancestorOfSelected ? "\n(A selected layer is contained within)" : ""}`} + data-tooltip-label={listing.entry.expanded ? "Collapse (All)" : "Expand (All)"} + data-tooltip-description={(listing.entry.expanded + ? "Hide the layers nested within. (To affect all open descendants, perform the shortcut shown.)" + : "Show the layers nested within. (To affect all closed descendants, perform the shortcut shown.)") + + (listing.entry.ancestorOfSelected && !listing.entry.expanded ? "\n\nA selected layer is currently contained within.\n" : "")} + data-tooltip-shortcut={$tooltip.altClickShortcut?.shortcut ? JSON.stringify($tooltip.altClickShortcut.shortcut) : undefined} on:click={(e) => handleExpandArrowClickWithModifiers(e, listing.entry.id)} tabindex="0" > @@ -537,7 +631,13 @@
{/if} {#if listing.entry.clipped} - + {/if}
{#if $nodeGraph.thumbnails.has(listing.entry.id)} @@ -545,7 +645,7 @@ {/if}
{#if listing.entry.name === "Artboard"} - + {/if} onEditLayerName(listing)}> {#if !listing.entry.unlocked || !listing.entry.parentsUnlocked} (toggleLayerLock(listing.entry.id), e?.stopPropagation())} size={24} icon={listing.entry.unlocked ? "PadlockUnlocked" : "PadlockLocked"} hoverIcon={listing.entry.unlocked ? "PadlockLocked" : "PadlockUnlocked"} - tooltip={(listing.entry.unlocked ? "Lock" : "Unlock") + (!listing.entry.parentsUnlocked ? "\n(A parent of this layer is locked and that status is being inherited)" : "")} + tooltipLabel={listing.entry.unlocked ? "Lock" : "Unlock"} + tooltipDescription={!listing.entry.parentsUnlocked ? "A parent of this layer is locked and that status is being inherited." : ""} /> {/if} (toggleNodeVisibilityLayerPanel(listing.entry.id), e?.stopPropagation())} size={24} icon={listing.entry.visible ? "EyeVisible" : "EyeHidden"} hoverIcon={listing.entry.visible ? "EyeHide" : "EyeShow"} - tooltip={(listing.entry.visible ? "Hide" : "Show") + (!listing.entry.parentsVisible ? "\n(A parent of this layer is hidden and that status is being inherited)" : "")} + tooltipLabel={listing.entry.visible ? "Hide" : "Show"} + tooltipDescription={!listing.entry.parentsVisible ? "A parent of this layer is hidden and that status is being inherited." : ""} /> {/each} @@ -588,7 +690,7 @@ {/if}
- +
@@ -605,6 +707,10 @@ .widget-span:first-child { flex: 1 1 auto; } + + &:not(:has(*)) { + display: none; + } } // Bottom bar @@ -619,15 +725,23 @@ .widget-span > * { margin: 0; } + + &:not(:has(*)) { + display: none; + } } // Layer hierarchy .list-area { position: relative; - margin-top: 4px; + padding-top: 4px; // Combine with the bottom bar to avoid a double border margin-bottom: -1px; + &.drag-ongoing .layer { + pointer-events: none; + } + .layer { flex: 0 0 auto; align-items: center; @@ -714,6 +828,7 @@ width: 36px; height: 24px; border-radius: 2px; + overflow: hidden; flex: 0 0 auto; background-image: var(--color-transparent-checkered-background); background-size: var(--color-transparent-checkered-background-size-mini); @@ -721,9 +836,8 @@ background-repeat: var(--color-transparent-checkered-background-repeat); svg { - width: calc(100% - 4px); - height: calc(100% - 4px); - margin: 2px; + width: 100%; + height: 100%; } } @@ -752,7 +866,7 @@ width: 100%; &:disabled { - -webkit-user-select: none; // Required as of Safari 15.0 (Graphite's minimum version) through the latest release + -webkit-user-select: none; // Still required by Safari as of 2025 user-select: none; // Workaround for `user-select: none` not working on elements pointer-events: none; @@ -795,7 +909,7 @@ left: 4px; right: 4px; background: var(--color-e-nearwhite); - margin-top: -3px; + margin-top: 1px; height: 5px; z-index: 1; pointer-events: none; diff --git a/frontend/src/components/panels/Properties.svelte b/frontend/src/components/panels/Properties.svelte index 72607849a..01cdcd033 100644 --- a/frontend/src/components/panels/Properties.svelte +++ b/frontend/src/components/panels/Properties.svelte @@ -1,27 +1,31 @@ - + diff --git a/frontend/src/components/panels/Spreadsheet.svelte b/frontend/src/components/panels/Spreadsheet.svelte deleted file mode 100644 index 6dd49c605..000000000 --- a/frontend/src/components/panels/Spreadsheet.svelte +++ /dev/null @@ -1,50 +0,0 @@ - - - - - Spreadsheet Data for Node ID {$portfolio.spreadsheetNode}: - - - - - - - diff --git a/frontend/src/components/panels/Welcome.svelte b/frontend/src/components/panels/Welcome.svelte new file mode 100644 index 000000000..dc69cdec9 --- /dev/null +++ b/frontend/src/components/panels/Welcome.svelte @@ -0,0 +1,140 @@ + + + e.preventDefault()} on:drop={dropFile}> + + + + + + + + + + + + + {#if new Date().getFullYear() === 2025} + + September 2025 release โ€”
What's new? (video) + โ€” Note: some older documents may render differently and require manual fixes. + Need the old version? + + {/if} + + + + diff --git a/frontend/src/components/views/Graph.svelte b/frontend/src/components/views/Graph.svelte index eaedc3a6d..90de83406 100644 --- a/frontend/src/components/views/Graph.svelte +++ b/frontend/src/components/views/Graph.svelte @@ -4,19 +4,16 @@ import { fade } from "svelte/transition"; import type { Editor } from "@graphite/editor"; - import type { Node } from "@graphite/messages"; - import type { FrontendNode, FrontendGraphInput, FrontendGraphOutput } from "@graphite/messages"; + import type { IconName } from "@graphite/icons"; + import type { FrontendGraphInput, FrontendGraphOutput } from "@graphite/messages"; import type { NodeGraphState } from "@graphite/state-providers/node-graph"; - import type { IconName } from "@graphite/utility-functions/icons"; import NodeCatalog from "@graphite/components/floating-menus/NodeCatalog.svelte"; + import FloatingMenu from "@graphite/components/layout/FloatingMenu.svelte"; import LayoutCol from "@graphite/components/layout/LayoutCol.svelte"; - import LayoutRow from "@graphite/components/layout/LayoutRow.svelte"; import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte"; import TextButton from "@graphite/components/widgets/buttons/TextButton.svelte"; - import RadioInput from "@graphite/components/widgets/inputs/RadioInput.svelte"; import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte"; - import Separator from "@graphite/components/widgets/labels/Separator.svelte"; import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte"; const GRID_COLLAPSE_SPACING = 10; @@ -28,11 +25,8 @@ let graph: HTMLDivElement | undefined; - // Key value is node id + input/output index - // Imports/Export are stored at a key value of 0 - $: gridSpacing = calculateGridSpacing($nodeGraph.transform.scale); - $: dotRadius = 1 + Math.floor($nodeGraph.transform.scale - 0.5 + 0.001) / 2; + $: gridDotRadius = 1 + Math.floor($nodeGraph.transform.scale - 0.5 + 0.001) / 2; let inputElement: HTMLInputElement; let hoveringImportIndex: number | undefined = undefined; @@ -116,15 +110,6 @@ return iconMap[icon] || "NodeNodes"; } - function toggleLayerDisplay(displayAsLayer: boolean, toggleId: bigint) { - let node = $nodeGraph.nodes.get(toggleId); - if (node) editor.handle.setToNodeOrLayer(node.id, displayAsLayer); - } - - function canBeToggledBetweenNodeAndLayer(toggleDisplayAsLayerNodeId: bigint) { - return $nodeGraph.nodes.get(toggleDisplayAsLayerNodeId)?.canBeLayer || false; - } - function createNode(nodeType: string) { if ($nodeGraph.contextMenuInformation === undefined) return; @@ -177,8 +162,8 @@ return `M-2,-2 L${nodeWidth + 2},-2 L${nodeWidth + 2},${nodeHeight + 2} L-2,${nodeHeight + 2}z ${rectangles.join(" ")}`; } - function dataTypeTooltip(value: FrontendGraphInput | FrontendGraphOutput): string { - return value.resolvedType ? `Data Type:\n${value.resolvedType}` : `Data Type (Unresolved):\n${value.dataType}`; + function dataTypeTooltipLabel(value: FrontendGraphInput | FrontendGraphOutput): string { + return `Data Type: ${value.resolvedType}`; } function validTypesText(value: FrontendGraphInput): string { @@ -187,39 +172,11 @@ } function outputConnectedToText(output: FrontendGraphOutput): string { - if (output.connectedTo.length === 0) return "Connected to nothing"; - - return output.connectedTo - .map((inputConnector) => { - if ((inputConnector as Node).nodeId === undefined) return `Connected to export index ${inputConnector.index}`; - return `Connected to ${(inputConnector as Node).nodeId}, port index ${inputConnector.index}`; - }) - .join("\n"); + return editor.handle.inDevelopmentMode() ? output.connectedTo.join("\n") : ""; } function inputConnectedToText(input: FrontendGraphInput): string { - if (input.connectedTo === undefined) return "Connected to nothing"; - if ((input.connectedTo as Node).nodeId === undefined) return `Connected to import index ${input.connectedTo.index}`; - return `Connected to ${(input.connectedTo as Node).nodeId}, port index ${input.connectedTo.index}`; - } - - function primaryOutputConnectedToLayer(node: FrontendNode): boolean { - let firstConnectedNode = Array.from($nodeGraph.nodes.values()).find((n) => - node.primaryOutput?.connectedTo.some((connector) => { - if ((connector as Node).nodeId === undefined) return false; - if (connector.index !== 0n) return false; - return n.id === (connector as Node).nodeId || false; - }), - ); - return firstConnectedNode?.isLayer || false; - } - - function primaryInputConnectedToLayer(node: FrontendNode): boolean { - const connectedNode = Array.from($nodeGraph.nodes.values()).find((n) => { - if ((node.primaryInput?.connectedTo as Node) === undefined) return false; - return n.id === (node.primaryInput?.connectedTo as Node).nodeId; - }); - return connectedNode?.isLayer || false; + return editor.handle.inDevelopmentMode() ? input.connectedTo : ""; } function zipWithUndefined(arr1: FrontendGraphInput[], arr2: FrontendGraphOutput[]) { @@ -238,59 +195,65 @@ style:--grid-spacing={`${gridSpacing}px`} style:--grid-offset-x={`${$nodeGraph.transform.x}px`} style:--grid-offset-y={`${$nodeGraph.transform.y}px`} - style:--dot-radius={`${dotRadius}px`} + style:--grid-dot-radius={`${gridDotRadius}px`} data-node-graph > {#if $nodeGraph.contextMenuInformation} - - {#if typeof $nodeGraph.contextMenuInformation.contextMenuData === "string" && $nodeGraph.contextMenuInformation.contextMenuData === "CreateNode"} - createNode(e.detail)} /> - {:else if $nodeGraph.contextMenuInformation.contextMenuData && "compatibleType" in $nodeGraph.contextMenuInformation.contextMenuData} - createNode(e.detail)} /> - {:else} - {@const contextMenuData = $nodeGraph.contextMenuInformation.contextMenuData} - - Display as - { - toggleLayerDisplay(false, contextMenuData.nodeId); - }, - }, - { - value: "layer", - label: "Layer", - action: () => { - toggleLayerDisplay(true, contextMenuData.nodeId); - }, - }, - ]} - disabled={!canBeToggledBetweenNodeAndLayer(contextMenuData.nodeId)} + {#if $nodeGraph.contextMenuInformation.contextMenuData.type === "CreateNode"} + createNode(e.detail)} /> + {:else if $nodeGraph.contextMenuInformation.contextMenuData.type === "ModifyNode"} + + { + editor.handle.mergeSelectedNodes(); + nodeGraph.closeContextMenu(); + }} + flush={true} /> - - - - editor.handle.mergeSelectedNodes()} /> - + {@const currentlyIsNode = $nodeGraph.contextMenuInformation.contextMenuData.data.currentlyIsNode} + { + if ($nodeGraph.contextMenuInformation?.contextMenuData.type === "ModifyNode") { + editor.handle.setToNodeOrLayer($nodeGraph.contextMenuInformation.contextMenuData.data.nodeId, currentlyIsNode); + } + nodeGraph.closeContextMenu(); + }} + disabled={!$nodeGraph.contextMenuInformation.contextMenuData.data.canBeLayer} + flush={true} + /> + {/if} - + + {/if} + + {#if $nodeGraph.error} +
+ + {$nodeGraph.error.error} + + + {$nodeGraph.error.error} + +
{/if} {#if $nodeGraph.clickTargets} -
+
{#each $nodeGraph.clickTargets.nodeClickTargets as pathString} @@ -298,14 +261,13 @@ {#each $nodeGraph.clickTargets.layerClickTargets as pathString} {/each} - {#each $nodeGraph.clickTargets.portClickTargets as pathString} - + {#each $nodeGraph.clickTargets.connectorClickTargets as pathString} + {/each} {#each $nodeGraph.clickTargets.iconClickTargets as pathString} {/each} - {#each $nodeGraph.clickTargets.modifyImportExport as pathString} {/each} @@ -314,14 +276,14 @@ {/if} -
+
{#each $nodeGraph.wires.values() as map} {#each map.values() as { pathString, dataType, thick, dashed }} {#if thick}
- -
- {#each $nodeGraph.imports as { outputMetadata, position }, index} - - {`${dataTypeTooltip(outputMetadata)}\n\n${outputConnectedToText(outputMetadata)}`} - {#if outputMetadata.connectedTo !== undefined} - - {:else} - - {/if} - + +
+ {#if $nodeGraph.updateImportsExports} + {#each $nodeGraph.updateImportsExports.imports as frontendOutput, index} + {#if frontendOutput} + + {#if frontendOutput.connectedTo.length > 0} + + {:else} + + {/if} + -
(hoveringImportIndex = index)} - on:pointerleave={() => (hoveringImportIndex = undefined)} - style:--offset-left={position.x / 24} - style:--offset-top={position.y / 24} - > - {#if editingNameImportIndex == index} - e.key === "Enter" && setEditingImportName(e)} - /> +
(hoveringImportIndex = index)} + on:pointerleave={() => (hoveringImportIndex = undefined)} + class="edit-import-export import" + class:separator-bottom={index === 0 && $nodeGraph.updateImportsExports.addImportExport} + class:separator-top={index === 1 && $nodeGraph.updateImportsExports.addImportExport} + style:--offset-left={($nodeGraph.updateImportsExports.importPosition.x - 8) / 24} + style:--offset-top={($nodeGraph.updateImportsExports.importPosition.y - 8) / 24 + index} + > + {#if editingNameImportIndex === index} + e.key === "Enter" && setEditingImportName(e)} + /> + {:else} +

setEditingImportNameIndex(index, frontendOutput.name)}> + {frontendOutput.name} +

+ {/if} + {#if (hoveringImportIndex === index || editingNameImportIndex === index) && $nodeGraph.updateImportsExports.addImportExport} + { + /* Button is purely visual, clicking is handled in NodeGraphMessage::PointerDown */ + }} + /> + {#if index > 0} +
+ {/if} + {/if} +
{:else} -

setEditingImportNameIndex(index, outputMetadata.name)}>{outputMetadata.name}

+
+ editor.handle.addPrimaryImport()} /> +
{/if} - {#if hoveringImportIndex === index || editingNameImportIndex === index} - { - /* Button is purely visual, clicking is handled in NodeGraphMessage::PointerDown */ - }} - /> -
- {/if} -
- {/each} - {#if $nodeGraph.reorderImportIndex !== undefined} - {@const position = { - x: Number($nodeGraph.imports[0].position.x), - y: Number($nodeGraph.imports[0].position.y) + Number($nodeGraph.reorderImportIndex) * 24, - }} -
- {/if} - {#if $nodeGraph.addImport !== undefined} -
- { - /* Button is purely visual, clicking is handled in NodeGraphMessage::PointerDown */ - }} - /> -
- {/if} - {#each $nodeGraph.exports as { inputMetadata, position }, index} - - {`${dataTypeTooltip(inputMetadata)}\n\n${inputConnectedToText(inputMetadata)}`} - {#if inputMetadata.connectedTo !== undefined} - + {/each} + + {#each $nodeGraph.updateImportsExports.exports as frontendInput, index} + {#if frontendInput} + + {#if frontendInput.connectedTo !== "Connected to nothing."} + + {:else} + + {/if} + +
(hoveringExportIndex = index)} + on:pointerleave={() => (hoveringExportIndex = undefined)} + class="edit-import-export export" + class:separator-bottom={index === 0 && $nodeGraph.updateImportsExports.addImportExport} + class:separator-top={index === 1 && $nodeGraph.updateImportsExports.addImportExport} + style:--offset-left={($nodeGraph.updateImportsExports.exportPosition.x - 8) / 24} + style:--offset-top={($nodeGraph.updateImportsExports.exportPosition.y - 8) / 24 + index} + > + {#if (hoveringExportIndex === index || editingNameExportIndex === index) && $nodeGraph.updateImportsExports.addImportExport} + {#if index > 0} +
+ {/if} + { + /* Button is purely visual, clicking is handled in NodeGraphMessage::PointerDown */ + }} + /> + {/if} + {#if editingNameExportIndex === index} + e.key === "Enter" && setEditingExportName(e)} + /> + {:else} +

setEditingExportNameIndex(index, frontendInput.name)}> + {frontendInput.name} +

+ {/if} +
{:else} - +
+ editor.handle.addPrimaryExport()} /> +
{/if} - -
(hoveringExportIndex = index)} - on:pointerleave={() => (hoveringExportIndex = undefined)} - style:--offset-left={position.x / 24} - style:--offset-top={position.y / 24} - > - {#if hoveringExportIndex === index || editingNameExportIndex === index} -
- { - /* Button is purely visual, clicking is handled in NodeGraphMessage::PointerDown */ - }} - /> - {/if} - {#if editingNameExportIndex === index} - e.key === "Enter" && setEditingExportName(e)} - /> - {:else} -

setEditingExportNameIndex(index, inputMetadata.name)}>{inputMetadata.name}

- {/if} -
- {/each} - {#if $nodeGraph.reorderExportIndex !== undefined} - {@const position = { - x: Number($nodeGraph.exports[0].position.x), - y: Number($nodeGraph.exports[0].position.y) + Number($nodeGraph.reorderExportIndex) * 24, - }} -
- {/if} - {#if $nodeGraph.addExport !== undefined} -
- { - /* Button is purely visual, clicking is handled in NodeGraphMessage::PointerDown */ - }} - /> -
+ {/each} + + {#if $nodeGraph.updateImportsExports.addImportExport} +
+ editor.handle.addSecondaryImport()} /> +
+
+ editor.handle.addSecondaryExport()} /> +
+ {/if} + + {#if $nodeGraph.reorderImportIndex !== undefined} + {@const position = { + x: Number($nodeGraph.updateImportsExports.importPosition.x), + y: Number($nodeGraph.updateImportsExports.importPosition.y) + Number($nodeGraph.reorderImportIndex) * 24, + }} +
+ {/if} + + {#if $nodeGraph.reorderExportIndex !== undefined} + {@const position = { + x: Number($nodeGraph.updateImportsExports.exportPosition.x), + y: Number($nodeGraph.updateImportsExports.exportPosition.y) + Number($nodeGraph.reorderExportIndex) * 24, + }} +
+ {/if} {/if}
-
+
{#each Array.from($nodeGraph.nodes) .filter(([nodeId, node]) => node.isLayer && $nodeGraph.visibleNodes.has(nodeId)) @@ -505,13 +501,12 @@ style:--data-color-dim={`var(--color-data-${(node.primaryOutput?.dataType || "General").toLowerCase()}-dim)`} style:--layer-area-width={layerAreaWidth} style:--node-chain-area-left-extension={layerChainWidth !== 0 ? layerChainWidth + 0.5 : 0} - title={`${node.displayName}\n\n${description || ""}`.trim() + (editor.handle.inDevelopmentMode() ? `\n\nNode ID: ${node.id}` : "")} + data-tooltip-label={node.displayName === node.reference || !node.reference ? node.displayName : `${node.displayName} (${node.reference})`} + data-tooltip-description={` + ${(description || "").trim()}${editor.handle.inDevelopmentMode() ? `\n\nID: ${node.id}. Position: (${node.position.x}, ${node.position.y}).` : ""} + `.trim()} data-node={node.id} > - {#if node.errors} - {node.errors} - {node.errors} - {/if}
{#if $nodeGraph.thumbnails.has(node.id)} {@html $nodeGraph.thumbnails.get(node.id)} @@ -521,16 +516,17 @@ - {`${dataTypeTooltip(node.primaryOutput)}\n\n${outputConnectedToText(node.primaryOutput)}`} {#if node.primaryOutput.connectedTo.length > 0} - {#if primaryOutputConnectedToLayer(node)} + {#if node.primaryOutputConnectedToLayer} {/if} {:else} @@ -542,18 +538,17 @@ - {#if node.primaryInput} - {`${dataTypeTooltip(node.primaryInput)}\n\n${validTypesText(node.primaryInput)}\n\n${inputConnectedToText(node.primaryInput)}`} - {/if} - {#if node.primaryInput?.connectedTo !== undefined} + {#if node.primaryInput?.connectedTo !== "Connected to nothing."} - {#if primaryInputConnectedToLayer(node)} + {#if node.primaryInputConnectedToLayer} {/if} {:else} @@ -561,19 +556,20 @@ {/if}
- + {#if node.exposedInputs.length > 0} -
+
- {`${dataTypeTooltip(stackDataInput)}\n\n${validTypesText(stackDataInput)}\n\n${inputConnectedToText(stackDataInput)}`} {#if stackDataInput.connectedTo !== undefined} {:else} @@ -586,16 +582,17 @@ {node.displayName}
-
+
{ /* Button is purely visual, clicking is handled in NodeGraphMessage::PointerDown */ }} - tooltip={node.visible ? "Visible" : "Hidden"} + tooltipLabel={node.visible ? "Hide" : "Show"} /> @@ -617,7 +614,7 @@ {#if !thick} - {#if node.errors} - {node.errors} - {node.errors} - {/if}
@@ -672,26 +668,27 @@
{#each exposedInputsOutputs as [input, output]}
- + {input !== undefined ? input.name : output.name}
{/each}
{/if} - -
+ +
{#if node.primaryInput?.dataType} - {`${dataTypeTooltip(node.primaryInput)}\n\n${validTypesText(node.primaryInput)}\n\n${inputConnectedToText(node.primaryInput)}`} {#if node.primaryInput.connectedTo !== undefined} {:else} @@ -704,13 +701,14 @@ - {`${dataTypeTooltip(secondary)}\n\n${validTypesText(secondary)}\n\n${inputConnectedToText(secondary)}`} {#if secondary.connectedTo !== undefined} {:else} @@ -720,19 +718,20 @@ {/if} {/each}
- -
+ +
{#if node.primaryOutput} - {`${dataTypeTooltip(node.primaryOutput)}\n\n${outputConnectedToText(node.primaryOutput)}`} {#if node.primaryOutput.connectedTo !== undefined} {:else} @@ -744,13 +743,14 @@ - {`${dataTypeTooltip(secondary)}\n\n${outputConnectedToText(secondary)}`} {#if secondary.connectedTo !== undefined} {:else} @@ -775,7 +775,6 @@
- {#if $nodeGraph.box}
*) { + pointer-events: auto; + } + + .connector { position: absolute; width: 8px; height: 8px; @@ -935,6 +1005,24 @@ margin-top: -5px; height: 24px; + &.separator-bottom::after, + &.separator-top::before { + content: ""; + position: absolute; + background: var(--color-8-uppergray); + height: 1px; + left: -4px; + right: -4px; + } + + &.separator-bottom::after { + bottom: -1px; + } + + &.separator-top::before { + top: 0; + } + &.import { right: calc(100% - var(--offset-left) * 24px); } @@ -977,8 +1065,14 @@ .layers-and-nodes { position: absolute; + pointer-events: none; width: 100%; height: 100%; + + // Zero specificity with `:where()` to allow other rules to override `pointer-events` + :where(.graph-view.open & > *) { + pointer-events: auto; + } } .layer, @@ -996,68 +1090,6 @@ // backdrop-filter: blur(4px); background: rgba(var(--color-0-black-rgb), 0.33); - .node-error { - position: absolute; - width: max-content; - white-space: pre-wrap; - max-width: 600px; - line-height: 18px; - color: var(--color-2-mildblack); - background: var(--color-error-red); - padding: 8px; - border-radius: 4px; - bottom: calc(100% + 12px); - z-index: -1; - transition: opacity 0.2s ease-in-out; - opacity: 0.5; - - // Tail - &::after { - content: ""; - position: absolute; - left: 6px; - bottom: -8px; - width: 0; - height: 0; - border-style: solid; - border-width: 8px 6px 0 6px; - border-color: var(--color-error-red) transparent transparent transparent; - } - - &.hover { - opacity: 0; - z-index: 1; - pointer-events: none; - } - - &.faded:hover + .hover { - opacity: 1; - } - - &.faded:hover { - z-index: 2; - opacity: 1; - -webkit-user-select: text; - user-select: text; - transition: - opacity 0.2s ease-in-out, - z-index 0s 0.2s; - - &::selection { - background-color: var(--color-e-nearwhite); - - // Target only Safari - @supports (background: -webkit-named-image(i)) { - & { - // Setting an alpha value opts out of Safari's "fancy" (but not visible on dark backgrounds) selection highlight rendering - // https://stackoverflow.com/a/71753552/775283 - background-color: rgba(var(--color-e-nearwhite-rgb), calc(254 / 255)); - } - } - } - } - } - &::after { content: ""; position: absolute; @@ -1088,8 +1120,10 @@ border: 1px dashed var(--data-color); } - .ports { + .connectors { position: absolute; + // Keeps the connectors above the wires + z-index: 1; &.input { left: -3px; @@ -1100,7 +1134,7 @@ } } - .port { + .connector { // Double the intended value because of margin collapsing, but for the first and last we divide it by two as intended margin: calc(24px - 8px) 0; width: 8px; @@ -1117,7 +1151,7 @@ border-radius: 8px; --extra-width-to-reach-grid-multiple: 8px; --node-chain-area-left-extension: 0; - // Keep this equation in sync with the equivalent one in the Svelte template `` above, as well as the `left` port offset CSS rule above in `.ports.input` above. + // Keep this equation in sync with the equivalent one in the Svelte template `` above, as well as the `left` connector offset CSS rule above in `.connectors.input` above. width: calc((var(--layer-area-width) - 0.5) * 24px); padding-left: calc(var(--node-chain-area-left-extension) * 24px); margin-left: calc((0.5 - var(--node-chain-area-left-extension)) * 24px); @@ -1141,8 +1175,10 @@ border-radius: 2px; position: relative; box-sizing: border-box; - width: 72px; height: 48px; + // We shorten the width by 1px on the left and right so the inner thumbnail graphic maintains a perfect 3:2 aspect ratio + width: calc(72px - 2px); + margin: 0 1px; &::before { content: ""; @@ -1153,7 +1189,7 @@ } &::before, - svg:not(.port) { + svg:not(.connector) { pointer-events: none; position: absolute; margin: auto; @@ -1163,7 +1199,7 @@ height: calc(100% - 2px); } - .port { + .connector { position: absolute; margin: 0 auto; left: 0; @@ -1211,21 +1247,21 @@ right: -12px; } - .input.ports { + .input.connectors { left: calc(-3px + var(--node-chain-area-left-extension) * 24px - 36px); } .solo-drag-grip, .visibility, - .input.ports, - .input.ports .port { + .input.connectors, + .input.connectors .connector { position: absolute; margin: auto 0; top: 0; bottom: 0; } - .input.ports .port { + .input.connectors .connector { left: 24px; } } @@ -1259,11 +1295,11 @@ } } - .port { + .connector { &:first-of-type { margin-top: calc((24px - 8px) / 2); - &:not(.primary-port) { + &:not(.primary-connector) { margin-top: calc((24px - 8px) / 2 + 24px); } } diff --git a/frontend/src/components/widgets/WidgetLayout.svelte b/frontend/src/components/widgets/WidgetLayout.svelte index 63b75e274..936cce20f 100644 --- a/frontend/src/components/widgets/WidgetLayout.svelte +++ b/frontend/src/components/widgets/WidgetLayout.svelte @@ -1,26 +1,24 @@ -{#each layout.layout as layoutGroup} +{#each layout as layoutGroup} {#if isWidgetSpanRow(layoutGroup) || isWidgetSpanColumn(layoutGroup)} - + {:else if isWidgetSection(layoutGroup)} - + {:else if isWidgetTable(layoutGroup)} - - {:else} - Error: The widget layout that belongs here has an invalid layout group type + {/if} {/each} diff --git a/frontend/src/components/widgets/WidgetSection.svelte b/frontend/src/components/widgets/WidgetSection.svelte index 39448166d..c51e72428 100644 --- a/frontend/src/components/widgets/WidgetSection.svelte +++ b/frontend/src/components/widgets/WidgetSection.svelte @@ -2,7 +2,7 @@ import { getContext } from "svelte"; import type { Editor } from "@graphite/editor"; - import { isWidgetSpanRow, isWidgetSpanColumn, isWidgetSection, type WidgetSection as WidgetSectionFromJsMessages } from "@graphite/messages"; + import { isWidgetSpanRow, isWidgetSection, type WidgetSection as WidgetSectionFromJsMessages, type LayoutTarget } from "@graphite/messages"; import LayoutCol from "@graphite/components/layout/LayoutCol.svelte"; import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte"; @@ -10,8 +10,7 @@ import WidgetSpan from "@graphite/components/widgets/WidgetSpan.svelte"; export let widgetData: WidgetSectionFromJsMessages; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - export let layoutTarget: any; // TODO: Give type + export let layoutTarget: LayoutTarget; let className = ""; export { className as class }; @@ -26,31 +25,31 @@ {#if expanded} - + {#each widgetData.layout as layoutGroup} {#if isWidgetSpanRow(layoutGroup)} - {:else if isWidgetSpanColumn(layoutGroup)} - Error: The WidgetSpan used here should be a row not a column {:else if isWidgetSection(layoutGroup)} - {:else} - Error: The widget that belongs here has an invalid layout group type {/if} {/each} diff --git a/frontend/src/components/widgets/WidgetSpan.svelte b/frontend/src/components/widgets/WidgetSpan.svelte index 831e1dbbc..c4e474bc0 100644 --- a/frontend/src/components/widgets/WidgetSpan.svelte +++ b/frontend/src/components/widgets/WidgetSpan.svelte @@ -2,7 +2,7 @@ import { getContext } from "svelte"; import type { Editor } from "@graphite/editor"; - import type { Widget, WidgetSpanColumn, WidgetSpanRow } from "@graphite/messages"; + import type { LayoutTarget, WidgetInstance, WidgetSpanColumn, WidgetSpanRow } from "@graphite/messages"; import { narrowWidgetProps, isWidgetSpanColumn, isWidgetSpanRow } from "@graphite/messages"; import { debouncer } from "@graphite/utility-functions/debounce"; @@ -17,7 +17,6 @@ import ColorInput from "@graphite/components/widgets/inputs/ColorInput.svelte"; import CurveInput from "@graphite/components/widgets/inputs/CurveInput.svelte"; import DropdownInput from "@graphite/components/widgets/inputs/DropdownInput.svelte"; - import FontInput from "@graphite/components/widgets/inputs/FontInput.svelte"; import NumberInput from "@graphite/components/widgets/inputs/NumberInput.svelte"; import RadioInput from "@graphite/components/widgets/inputs/RadioInput.svelte"; import ReferencePointInput from "@graphite/components/widgets/inputs/ReferencePointInput.svelte"; @@ -25,20 +24,23 @@ import TextInput from "@graphite/components/widgets/inputs/TextInput.svelte"; import WorkingColorsInput from "@graphite/components/widgets/inputs/WorkingColorsInput.svelte"; import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte"; + import ImageLabel from "@graphite/components/widgets/labels/ImageLabel.svelte"; import Separator from "@graphite/components/widgets/labels/Separator.svelte"; + import ShortcutLabel from "@graphite/components/widgets/labels/ShortcutLabel.svelte"; import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte"; import WidgetLayout from "@graphite/components/widgets/WidgetLayout.svelte"; const editor = getContext("editor"); export let widgetData: WidgetSpanRow | WidgetSpanColumn; - // eslint-disable-next-line @typescript-eslint/no-explicit-any - export let layoutTarget: any; + export let layoutTarget: LayoutTarget; let className = ""; export { className as class }; export let classes: Record = {}; + export let narrow = false; + $: extraClasses = Object.entries(classes) .flatMap(([className, stateName]) => (stateName ? [className] : [])) .join(" "); @@ -51,23 +53,23 @@ if (isWidgetSpanColumn(widgetData)) return "column"; } - function watchWidgets(widgetData: WidgetSpanRow | WidgetSpanColumn): Widget[] { - let widgets: Widget[] = []; + function watchWidgets(widgetData: WidgetSpanRow | WidgetSpanColumn): WidgetInstance[] { + let widgets: WidgetInstance[] = []; if (isWidgetSpanRow(widgetData)) widgets = widgetData.rowWidgets; else if (isWidgetSpanColumn(widgetData)) widgets = widgetData.columnWidgets; return widgets; } - function widgetValueCommit(index: number, value: unknown) { - editor.handle.widgetValueCommit(layoutTarget, widgets[index].widgetId, value); + function widgetValueCommit(widgetIndex: number, value: unknown) { + editor.handle.widgetValueCommit(layoutTarget, widgets[widgetIndex].widgetId, value); } - function widgetValueUpdate(index: number, value: unknown) { - editor.handle.widgetValueUpdate(layoutTarget, widgets[index].widgetId, value); + function widgetValueUpdate(widgetIndex: number, value: unknown, resendWidget: boolean) { + editor.handle.widgetValueUpdate(layoutTarget, widgets[widgetIndex].widgetId, value, resendWidget); } - function widgetValueCommitAndUpdate(index: number, value: unknown) { - editor.handle.widgetValueCommitAndUpdate(layoutTarget, widgets[index].widgetId, value); + function widgetValueCommitAndUpdate(widgetIndex: number, value: unknown, resendWidget: boolean) { + editor.handle.widgetValueCommitAndUpdate(layoutTarget, widgets[widgetIndex].widgetId, value, resendWidget); } // TODO: This seems to work, but verify the correctness and terseness of this, it's adapted from https://stackoverflow.com/a/67434028/775283 @@ -81,80 +83,93 @@ -
- {#each widgets as component, index} +
+ {#each widgets as component, widgetIndex} {@const checkboxInput = narrowWidgetProps(component.props, "CheckboxInput")} {#if checkboxInput} - widgetValueCommitAndUpdate(index, detail)} /> + widgetValueCommitAndUpdate(widgetIndex, detail, true)} /> {/if} {@const colorInput = narrowWidgetProps(component.props, "ColorInput")} {#if colorInput} - widgetValueUpdate(index, detail)} on:startHistoryTransaction={() => widgetValueCommit(index, colorInput.value)} /> + widgetValueUpdate(widgetIndex, detail, false)} + on:startHistoryTransaction={() => widgetValueCommit(widgetIndex, colorInput.value)} + /> {/if} + {@const curvesInput = narrowWidgetProps(component.props, "CurveInput")} {#if curvesInput} - debouncer((value) => widgetValueCommitAndUpdate(index, value), { debounceTime: 120 }).debounceUpdateValue(detail)} /> + debouncer((value) => widgetValueCommitAndUpdate(widgetIndex, value, false), { debounceTime: 120 }).debounceUpdateValue(detail)} + /> {/if} {@const dropdownInput = narrowWidgetProps(component.props, "DropdownInput")} {#if dropdownInput} { - return widgetValueUpdate(index, detail); + return widgetValueUpdate(widgetIndex, detail, false); }} on:hoverOutEntry={({ detail }) => { - return widgetValueUpdate(index, detail); + return widgetValueUpdate(widgetIndex, detail, false); }} - on:selectedIndex={({ detail }) => widgetValueCommitAndUpdate(index, detail)} + on:selectedIndex={({ detail }) => widgetValueCommitAndUpdate(widgetIndex, detail, true)} /> {/if} - {@const fontInput = narrowWidgetProps(component.props, "FontInput")} - {#if fontInput} - widgetValueCommitAndUpdate(index, detail)} /> - {/if} {@const parameterExposeButton = narrowWidgetProps(component.props, "ParameterExposeButton")} {#if parameterExposeButton} - widgetValueCommitAndUpdate(index, undefined)} /> + widgetValueCommitAndUpdate(widgetIndex, undefined, true)} /> {/if} {@const iconButton = narrowWidgetProps(component.props, "IconButton")} {#if iconButton} - widgetValueCommitAndUpdate(index, undefined)} /> + widgetValueCommitAndUpdate(widgetIndex, undefined, true)} /> {/if} {@const iconLabel = narrowWidgetProps(component.props, "IconLabel")} {#if iconLabel} {/if} + {@const shortcutLabel = narrowWidgetProps(component.props, "ShortcutLabel")} + {@const shortcutLabelShortcut = shortcutLabel?.shortcut ? { ...shortcutLabel, shortcut: shortcutLabel.shortcut } : undefined} + {#if shortcutLabel && shortcutLabelShortcut} + + {/if} + {@const imageLabel = narrowWidgetProps(component.props, "ImageLabel")} + {#if imageLabel} + + {/if} {@const imageButton = narrowWidgetProps(component.props, "ImageButton")} {#if imageButton} - widgetValueCommitAndUpdate(index, undefined)} /> + widgetValueCommitAndUpdate(widgetIndex, undefined, true)} /> {/if} {@const nodeCatalog = narrowWidgetProps(component.props, "NodeCatalog")} {#if nodeCatalog} - widgetValueCommitAndUpdate(index, e.detail)} /> + widgetValueCommitAndUpdate(widgetIndex, e.detail, false)} /> {/if} {@const numberInput = narrowWidgetProps(component.props, "NumberInput")} {#if numberInput} debouncer((value) => widgetValueUpdate(index, value)).debounceUpdateValue(detail)} - on:startHistoryTransaction={() => widgetValueCommit(index, numberInput.value)} - incrementCallbackIncrease={() => widgetValueCommitAndUpdate(index, "Increment")} - incrementCallbackDecrease={() => widgetValueCommitAndUpdate(index, "Decrement")} + on:value={({ detail }) => debouncer((value) => widgetValueUpdate(widgetIndex, value, true)).debounceUpdateValue(detail)} + on:startHistoryTransaction={() => widgetValueCommit(widgetIndex, numberInput.value)} + incrementCallbackIncrease={() => widgetValueCommitAndUpdate(widgetIndex, "Increment", false)} + incrementCallbackDecrease={() => widgetValueCommitAndUpdate(widgetIndex, "Decrement", false)} /> {/if} {@const referencePointInput = narrowWidgetProps(component.props, "ReferencePointInput")} {#if referencePointInput} - widgetValueCommitAndUpdate(index, detail)} /> + widgetValueCommitAndUpdate(widgetIndex, detail, true)} /> {/if} {@const popoverButton = narrowWidgetProps(component.props, "PopoverButton")} {#if popoverButton} - + {/if} {@const radioInput = narrowWidgetProps(component.props, "RadioInput")} {#if radioInput} - widgetValueCommitAndUpdate(index, detail)} /> + widgetValueCommitAndUpdate(widgetIndex, detail, true)} /> {/if} {@const separator = narrowWidgetProps(component.props, "Separator")} {#if separator} @@ -166,19 +181,23 @@ {/if} {@const textAreaInput = narrowWidgetProps(component.props, "TextAreaInput")} {#if textAreaInput} - widgetValueCommitAndUpdate(index, detail)} /> + widgetValueCommitAndUpdate(widgetIndex, detail, false)} /> {/if} {@const textButton = narrowWidgetProps(component.props, "TextButton")} {#if textButton} - widgetValueCommitAndUpdate(index, undefined)} /> + widgetValueCommitAndUpdate(widgetIndex, [], true)} + on:selectedEntryValuePath={({ detail }) => widgetValueCommitAndUpdate(widgetIndex, detail, false)} + /> {/if} {@const breadcrumbTrailButtons = narrowWidgetProps(component.props, "BreadcrumbTrailButtons")} {#if breadcrumbTrailButtons} - widgetValueCommitAndUpdate(index, breadcrumbIndex)} /> + widgetValueCommitAndUpdate(widgetIndex, breadcrumbIndex, true)} /> {/if} {@const textInput = narrowWidgetProps(component.props, "TextInput")} {#if textInput} - widgetValueCommitAndUpdate(index, detail)} /> + widgetValueCommitAndUpdate(widgetIndex, detail, true)} /> {/if} {@const textLabel = narrowWidgetProps(component.props, "TextLabel")} {#if textLabel} @@ -197,11 +216,17 @@ .widget-span.row { flex: 0 0 auto; display: flex; - min-height: 32px; + --row-height: 32px; + min-height: var(--row-height); + + &.narrow { + --row-height: 24px; + } > * { --widget-height: 24px; - margin: calc((24px - var(--widget-height)) / 2 + 4px) 0; + // Vertically center the widget within the row + margin: calc((var(--row-height) - var(--widget-height)) / 2) 0; min-height: var(--widget-height); &:not(.multiline) { diff --git a/frontend/src/components/widgets/WidgetTable.svelte b/frontend/src/components/widgets/WidgetTable.svelte index 6530b4c89..401cf9bf5 100644 --- a/frontend/src/components/widgets/WidgetTable.svelte +++ b/frontend/src/components/widgets/WidgetTable.svelte @@ -1,27 +1,31 @@ - - {#each widgetData.tableWidgets as row} - - {#each row as cell} - - {/each} - - {/each} +
- -
+ + {#each widgetData.tableWidgets as row} + + {#each row as cell} + + {/each} + + {/each} +
+ +
diff --git a/frontend/src/components/widgets/inputs/CurveInput.svelte b/frontend/src/components/widgets/inputs/CurveInput.svelte index 197793efd..406d48e97 100644 --- a/frontend/src/components/widgets/inputs/CurveInput.svelte +++ b/frontend/src/components/widgets/inputs/CurveInput.svelte @@ -1,7 +1,7 @@ - + {#each { length: GRID_SIZE - 1 } as _, i} diff --git a/frontend/src/components/widgets/inputs/DropdownInput.svelte b/frontend/src/components/widgets/inputs/DropdownInput.svelte index 4317a519f..a7c10d63c 100644 --- a/frontend/src/components/widgets/inputs/DropdownInput.svelte +++ b/frontend/src/components/widgets/inputs/DropdownInput.svelte @@ -1,7 +1,7 @@
+
diff --git a/frontend/src/components/widgets/inputs/ScrollbarInput.svelte b/frontend/src/components/widgets/inputs/ScrollbarInput.svelte index ef96d8959..2f57b716a 100644 --- a/frontend/src/components/widgets/inputs/ScrollbarInput.svelte +++ b/frontend/src/components/widgets/inputs/ScrollbarInput.svelte @@ -203,6 +203,7 @@ window.removeEventListener("pointermove", onPointerMove); window.removeEventListener("mousedown", onMouseDown); window.removeEventListener("keydown", onKeyDown); + clearTimeout(repeatTimeout); } diff --git a/frontend/src/components/widgets/inputs/SpectrumInput.svelte b/frontend/src/components/widgets/inputs/SpectrumInput.svelte index cabc70b45..26a3a3881 100644 --- a/frontend/src/components/widgets/inputs/SpectrumInput.svelte +++ b/frontend/src/components/widgets/inputs/SpectrumInput.svelte @@ -13,15 +13,20 @@ const dispatch = createEventDispatcher<{ activeMarkerIndexChange: number | undefined; gradient: Gradient; dragging: boolean }>(); export let gradient: Gradient; + export let disabled = false; export let activeMarkerIndex = 0 as number | undefined; // export let disabled = false; - // export let tooltip: string | undefined = undefined; + // export let tooltipLabel: string | undefined = undefined; + // export let tooltipDescription: string | undefined = undefined; + // export let tooltipShortcut: ActionShortcut | undefined = undefined; let markerTrack: LayoutRow | undefined = undefined; let positionRestore: number | undefined = undefined; let deletionRestore: boolean | undefined = undefined; function markerPointerDown(e: PointerEvent, index: number) { + if (disabled) return; + // Left-click to select and begin potentially dragging if (e.button === BUTTON_LEFT) { activeMarkerIndex = index; @@ -47,6 +52,8 @@ } function insertStop(e: MouseEvent) { + if (disabled) return; + if (e.button !== BUTTON_LEFT) return; let position = markerPosition(e); @@ -79,6 +86,8 @@ } function deleteStop(e: KeyboardEvent) { + if (disabled) return; + if (e.key !== "Delete" && e.key !== "Backspace") return; if (activeMarkerIndex === undefined) return; @@ -88,6 +97,8 @@ } function deleteStopByIndex(index: number) { + if (disabled) return; + if (gradient.stops.length <= 2) return; gradient.stops.splice(index, 1); @@ -103,6 +114,8 @@ } function moveMarker(e: PointerEvent, index: number) { + if (disabled) return; + // Just in case the mouseup event is lost if (e.buttons === 0) stopDrag(); @@ -120,6 +133,8 @@ } export function setPosition(index: number, position: number) { + if (disabled) return; + const active = gradient.stops[index]; active.position = position; gradient.stops.sort((a, b) => a.position - b.position); @@ -131,6 +146,8 @@ } function abortDrag() { + if (disabled) return; + if (activeMarkerIndex === undefined) return; if (deletionRestore) { @@ -143,6 +160,8 @@ } function stopDrag() { + if (disabled) return; + removeEvents(); positionRestore = undefined; @@ -152,19 +171,27 @@ } function onPointerMove(e: PointerEvent) { + if (disabled) return; + if (activeMarkerIndex !== undefined) moveMarker(e, activeMarkerIndex); } function onPointerUp() { + if (disabled) return; + stopDrag(); } function onMouseDown(e: MouseEvent) { + if (disabled) return; + const BUTTONS_RIGHT = 0b0000_0010; if (e.buttons & BUTTONS_RIGHT) abortDrag(); } function onKeyDown(e: KeyboardEvent) { + if (disabled) return; + if (e.key === "Escape") { const element = markerTrack?.div(); if (element) preventEscapeClosingParentFloatingMenu(element); @@ -193,25 +220,28 @@ document.removeEventListener("keydown", deleteStop); }); + // Future design notes: + // // # Backend -> Frontend // Populate(gradient, { position, color }[], active) // The only way indexes get changed. Frontend drops marker if it's being dragged. // UpdateGradient(gradient) // UpdateMarkers({ index, position, color }[]) - + // // # Frontend -> Backend // SendNewActive(index) // SendPositions({ index, position }[]) // AddMarker(position) // RemoveMarkers(index[]) // ResetMarkerToDefault(index) - - // // We need a way to encode constraints on some markers, like locking them in place or preventing reordering - // // We need a way to encode the allowability of adding new markers between certain markers, or preventing the deletion of certain markers - // // We need the ability to multi-select markers and move them all at once + // + // We need a way to encode constraints on some markers, like locking them in place or preventing reordering + // We need a way to encode the allowability of adding new markers between certain markers, or preventing the deletion of certain markers + // We need the ability to multi-select markers and move them all at once + {#if disabled} + + {/if} import { createEventDispatcher } from "svelte"; + import type { ActionShortcut } from "@graphite/messages"; + import FieldInput from "@graphite/components/widgets/inputs/FieldInput.svelte"; const dispatch = createEventDispatcher<{ commitText: string }>(); export let value: string; export let label: string | undefined = undefined; - export let tooltip: string | undefined = undefined; + export let tooltipLabel: string | undefined = undefined; + export let tooltipDescription: string | undefined = undefined; + export let tooltipShortcut: ActionShortcut | undefined = undefined; export let disabled = false; let self: FieldInput | undefined; @@ -55,7 +59,9 @@ spellcheck={true} {label} {disabled} - {tooltip} + {tooltipLabel} + {tooltipDescription} + {tooltipShortcut} bind:this={self} /> diff --git a/frontend/src/components/widgets/inputs/TextInput.svelte b/frontend/src/components/widgets/inputs/TextInput.svelte index b9a794d14..3e8dccab2 100644 --- a/frontend/src/components/widgets/inputs/TextInput.svelte +++ b/frontend/src/components/widgets/inputs/TextInput.svelte @@ -1,21 +1,28 @@ - + {@html ICON_SVG_STRINGS[icon] || "๏ฟฝ"} diff --git a/frontend/src/components/widgets/labels/ImageLabel.svelte b/frontend/src/components/widgets/labels/ImageLabel.svelte new file mode 100644 index 000000000..65e38c542 --- /dev/null +++ b/frontend/src/components/widgets/labels/ImageLabel.svelte @@ -0,0 +1,45 @@ + + + + + diff --git a/frontend/src/components/widgets/labels/ShortcutLabel.svelte b/frontend/src/components/widgets/labels/ShortcutLabel.svelte new file mode 100644 index 000000000..d634f4df0 --- /dev/null +++ b/frontend/src/components/widgets/labels/ShortcutLabel.svelte @@ -0,0 +1,175 @@ + + + + {#each keyTextOrIconList(shortcut.shortcut) as group} + {#if "label" in group[0] || "icon" in group[0]} +
+ {#each group as item} + {#if "label" in item && item.label} + {item.label} + {:else if "icon" in item && item.icon} + + {/if} + {/each} +
+ {/if} + {#if "mouseMotion" in group[0]} + {#each group as item} + {#if "mouseMotion" in item && item.mouseMotion} +
+ +
+ {/if} + {/each} + {/if} + {/each} +
+ + diff --git a/frontend/src/components/widgets/labels/TextLabel.svelte b/frontend/src/components/widgets/labels/TextLabel.svelte index 4595c6f2a..8465ff871 100644 --- a/frontend/src/components/widgets/labels/TextLabel.svelte +++ b/frontend/src/components/widgets/labels/TextLabel.svelte @@ -1,4 +1,6 @@ - -{#if displayKeyboardLockNotice} - -{:else} - - {#each keysWithLabelsGroups as keysWithLabels, groupIndex} - {#if groupIndex > 0} - - {/if} - {#each keyTextOrIconList(keysWithLabels) as keyInfo} -
- {#if keyInfo.icon} - - {:else if keyInfo.label !== undefined} - {keyInfo.label} - {/if} -
- {/each} - {/each} - {#if mouseMotion} -
- -
- {/if} - {#if $$slots.default} -
- -
- {/if} -
-{/if} - - diff --git a/frontend/src/components/window/MainWindow.svelte b/frontend/src/components/window/MainWindow.svelte index 6e95fdfd7..19be805d9 100644 --- a/frontend/src/components/window/MainWindow.svelte +++ b/frontend/src/components/window/MainWindow.svelte @@ -1,22 +1,34 @@ - - - + + {#if !($appWindow.platform == "Mac" && $appWindow.fullscreen)} + + {/if} - + {#if $dialog.visible} + + {/if} + {#if $tooltip.visible} + + {/if} diff --git a/frontend/src/components/window/title-bar/WindowButtonsLinux.svelte b/frontend/src/components/window/title-bar/WindowButtonsLinux.svelte new file mode 100644 index 000000000..520116d1e --- /dev/null +++ b/frontend/src/components/window/title-bar/WindowButtonsLinux.svelte @@ -0,0 +1,43 @@ + + + editor.handle.appWindowMinimize()}> + + + editor.handle.appWindowMaximize()}> + + + editor.handle.appWindowClose()}> + + + + diff --git a/frontend/src/components/window/title-bar/WindowButtonsMac.svelte b/frontend/src/components/window/title-bar/WindowButtonsMac.svelte deleted file mode 100644 index 574c1eabd..000000000 --- a/frontend/src/components/window/title-bar/WindowButtonsMac.svelte +++ /dev/null @@ -1,47 +0,0 @@ - - - -
editor.handle.appWindowClose()} /> -
editor.handle.appWindowMinimize()} /> -
editor.handle.appWindowMaximize()} /> - - - diff --git a/frontend/src/components/window/title-bar/WindowButtonsWeb.svelte b/frontend/src/components/window/title-bar/WindowButtonsWeb.svelte index 5d1a5dfe6..a87b41f62 100644 --- a/frontend/src/components/window/title-bar/WindowButtonsWeb.svelte +++ b/frontend/src/components/window/title-bar/WindowButtonsWeb.svelte @@ -1,35 +1,29 @@ - - {#if requestFullscreenHotkeys} - Go fullscreen to access all hotkeys - {/if} + @@ -43,13 +37,8 @@ fill: var(--color-e-nearwhite); } - .text-label { - margin-right: 8px; - } - &:hover { background: var(--color-6-lowergray); - color: var(--color-f-white); svg { fill: var(--color-f-white); diff --git a/frontend/src/components/window/title-bar/WindowButtonsWindows.svelte b/frontend/src/components/window/title-bar/WindowButtonsWindows.svelte index 478a955e3..38e40661b 100644 --- a/frontend/src/components/window/title-bar/WindowButtonsWindows.svelte +++ b/frontend/src/components/window/title-bar/WindowButtonsWindows.svelte @@ -2,23 +2,23 @@ import { getContext } from "svelte"; import type { Editor } from "@graphite/editor"; + import type { AppWindowState } from "@graphite/state-providers/app-window"; import LayoutRow from "@graphite/components/layout/LayoutRow.svelte"; import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte"; - export let maximized; - + const appWindow = getContext("appWindow"); const editor = getContext("editor"); - editor.handle.appWindowMinimize()}> - + editor.handle.appWindowMinimize()}> + - editor.handle.appWindowMaximize()}> - + editor.handle.appWindowMaximize()}> + - editor.handle.appWindowClose()}> - + editor.handle.appWindowClose()}> + diff --git a/frontend/src/components/window/workspace/Panel.svelte b/frontend/src/components/window/workspace/Panel.svelte index d7352583d..5966ce160 100644 --- a/frontend/src/components/window/workspace/Panel.svelte +++ b/frontend/src/components/window/workspace/Panel.svelte @@ -1,14 +1,16 @@ @@ -17,30 +19,26 @@ import { getContext, tick } from "svelte"; import type { Editor } from "@graphite/editor"; - import { type LayoutKeysGroup, type Key } from "@graphite/messages"; - import { platformIsMac, isEventSupported } from "@graphite/utility-functions/platform"; - - import { extractPixelData } from "@graphite/utility-functions/rasterization"; + import { isEventSupported } from "@graphite/utility-functions/platform"; import LayoutCol from "@graphite/components/layout/LayoutCol.svelte"; import LayoutRow from "@graphite/components/layout/LayoutRow.svelte"; import IconButton from "@graphite/components/widgets/buttons/IconButton.svelte"; - import TextButton from "@graphite/components/widgets/buttons/TextButton.svelte"; - import IconLabel from "@graphite/components/widgets/labels/IconLabel.svelte"; import TextLabel from "@graphite/components/widgets/labels/TextLabel.svelte"; - import UserInputLabel from "@graphite/components/widgets/labels/UserInputLabel.svelte"; + const BUTTON_LEFT = 0; const BUTTON_MIDDLE = 1; const editor = getContext("editor"); export let tabMinWidths = false; export let tabCloseButtons = false; - export let tabLabels: { name: string; tooltip?: string }[]; + export let tabLabels: { name: string; unsaved?: boolean; tooltipLabel?: string; tooltipDescription?: string; tooltipShortcut?: string }[]; export let tabActiveIndex: number; export let panelType: PanelType | undefined = undefined; export let clickAction: ((index: number) => void) | undefined = undefined; export let closeAction: ((index: number) => void) | undefined = undefined; + export let emptySpaceAction: (() => void) | undefined = undefined; let className = ""; export { className as class }; @@ -51,44 +49,9 @@ let tabElements: (LayoutRow | undefined)[] = []; - function platformModifiers(reservedKey: boolean): LayoutKeysGroup { - // TODO: Remove this by properly feeding these keys from a layout provided by the backend - - const ALT: Key = { key: "Alt", label: "Alt" }; - const COMMAND: Key = { key: "Command", label: "Command" }; - const CONTROL: Key = { key: "Control", label: "Ctrl" }; - - if (platformIsMac()) return reservedKey ? [ALT, COMMAND] : [COMMAND]; - return reservedKey ? [CONTROL, ALT] : [CONTROL]; - } - - function dropFile(e: DragEvent) { - if (!e.dataTransfer) return; - - e.preventDefault(); - - Array.from(e.dataTransfer.items).forEach(async (item) => { - const file = item.getAsFile(); - if (!file) return; - - if (file.type.includes("svg")) { - const svgData = await file.text(); - editor.handle.pasteSvg(file.name, svgData); - return; - } - - if (file.type.startsWith("image")) { - const imageData = await extractPixelData(file); - editor.handle.pasteImage(file.name, new Uint8Array(imageData.data), imageData.width, imageData.height); - return; - } - - if (file.name.endsWith(".graphite")) { - const content = await file.text(); - editor.handle.openDocumentFile(file.name, content); - return; - } - }); + function onEmptySpaceAction(e: MouseEvent) { + if (e.target !== e.currentTarget) return; + if (e.button === BUTTON_MIDDLE || (e.button === BUTTON_LEFT && e.detail === 2)) emptySpaceAction?.(); } export async function scrollTabIntoView(newIndex: number) { @@ -99,12 +62,13 @@ panelType && editor.handle.setActivePanel(panelType)} class={`panel ${className}`.trim()} {classes} style={styleName} {styles}> - + {#each tabLabels as tabLabel, tabIndex} { e.stopPropagation(); clickAction?.(tabIndex); @@ -128,7 +92,12 @@ }} bind:this={tabElements[tabIndex]} > - {tabLabel.name} + + {tabLabel.name} + {#if tabLabel.unsaved} + * + {/if} + {#if tabCloseButtons} { @@ -142,52 +111,10 @@ {/each} - {#if panelType} - {:else} - e.preventDefault()} on:drop={dropFile}> - - - - - - - - - - - - - - - - - - - - -
- editor.handle.newDocumentDialog()} /> - - -
- editor.handle.openDocument()} /> - - -
- editor.handle.demoArtworkDialog()} /> -
- editor.handle.visitUrl("https://graphite.rs/donate/")} /> -
-
-
-
{/if}
@@ -202,6 +129,7 @@ height: 28px; min-height: auto; background: var(--color-1-nearblack); // Needed for the viewport hole punch on desktop + flex-shrink: 0; &.min-widths .tab-group .tab { min-width: 120px; @@ -256,14 +184,22 @@ } } - .text-label { + .name { flex: 1 1 100%; - overflow-x: hidden; - white-space: nowrap; - text-overflow: ellipsis; - // Height and line-height required because https://stackoverflow.com/a/21611191/775283 - height: 28px; - line-height: 28px; + + .text-label { + // Height and line-height required because https://stackoverflow.com/a/21611191/775283 + height: 28px; + line-height: 28px; + flex: 0 0 auto; + + &.text { + overflow-x: hidden; + white-space: nowrap; + text-overflow: ellipsis; + flex-shrink: 1; + } + } } .icon-button { @@ -280,7 +216,7 @@ left: -1px; width: 1px; height: 16px; - background: var(--color-4-dimgray); + background: var(--color-5-dullgray); } &:last-of-type { @@ -292,15 +228,11 @@ right: -1px; width: 1px; height: 16px; - background: var(--color-4-dimgray); + background: var(--color-5-dullgray); } } } } - - // .popover-button { - // margin: 2px 4px; - // } } .panel-body { @@ -311,43 +243,11 @@ > div { padding-bottom: 4px; } - - .empty-panel { - background: var(--color-2-mildblack); - margin: 4px; - border-radius: 2px; - justify-content: center; - - .content { - flex: 0 0 auto; - align-items: center; - - .logotype { - margin-bottom: 40px; - - svg { - width: auto; - height: 120px; - } - } - - .actions { - table { - border-spacing: 8px; - margin: -8px; - - td { - padding: 0; - } - } - } - } - } } // Needed for the viewport hole punch on desktop .viewport-hole-punch &.document-panel, - .viewport-hole-punch &.document-panel .panel-body:not(:has(.empty-panel)) { + .viewport-hole-punch &.document-panel .panel-body:not(:has(.welcome-panel)) { background: none; } } diff --git a/frontend/src/components/window/workspace/Workspace.svelte b/frontend/src/components/window/workspace/Workspace.svelte index 1f27bd75f..ab7938d5e 100644 --- a/frontend/src/components/window/workspace/Workspace.svelte +++ b/frontend/src/components/window/workspace/Workspace.svelte @@ -2,11 +2,9 @@ import { getContext } from "svelte"; import type { Editor } from "@graphite/editor"; - import type { FrontendDocumentDetails } from "@graphite/messages"; - import type { DialogState } from "@graphite/state-providers/dialog"; + import type { OpenDocument } from "@graphite/messages"; import type { PortfolioState } from "@graphite/state-providers/portfolio"; - import Dialog from "@graphite/components/floating-menus/Dialog.svelte"; import LayoutCol from "@graphite/components/layout/LayoutCol.svelte"; import LayoutRow from "@graphite/components/layout/LayoutRow.svelte"; import Panel from "@graphite/components/window/workspace/Panel.svelte"; @@ -16,7 +14,7 @@ /**/ root: 100, /* โ”œโ”€ */ content: 80, /* โ”‚ โ”œโ”€ */ document: 70, - /* โ”‚ โ””โ”€ */ spreadsheet: 30, + /* โ”‚ โ””โ”€ */ data: 30, /* โ””โ”€ */ details: 20, /* โ”œโ”€ */ properties: 45, /* โ””โ”€ */ layers: 55, @@ -29,18 +27,17 @@ $: documentPanel?.scrollTabIntoView($portfolio.activeDocumentIndex); - $: documentTabLabels = $portfolio.documents.map((doc: FrontendDocumentDetails) => { - const name = doc.displayName; + $: documentTabLabels = $portfolio.documents.map((doc: OpenDocument) => { + const name = doc.details.name; + const unsaved = !doc.details.isSaved; + if (!editor.handle.inDevelopmentMode()) return { name, unsaved }; - if (!editor.handle.inDevelopmentMode()) return { name }; - - const tooltip = `Document ID: ${doc.id}`; - return { name, tooltip }; + const tooltipDescription = `Document ID: ${doc.id}`; + return { name, unsaved, tooltipLabel: name, tooltipDescription }; }); const editor = getContext("editor"); const portfolio = getContext("portfolio"); - const dialog = getContext("dialog"); function resizePanel(e: PointerEvent) { const gutter = (e.target || undefined) as HTMLDivElement | undefined; @@ -138,37 +135,43 @@ 0 ? "Document" : undefined} + panelType={$portfolio.documents.length > 0 ? "Document" : "Welcome"} tabCloseButtons={true} tabMinWidths={true} tabLabels={documentTabLabels} + emptySpaceAction={() => editor.handle.newDocumentDialog()} clickAction={(tabIndex) => editor.handle.selectDocument($portfolio.documents[tabIndex].id)} closeAction={(tabIndex) => editor.handle.closeDocumentWithConfirmation($portfolio.documents[tabIndex].id)} tabActiveIndex={$portfolio.activeDocumentIndex} bind:this={documentPanel} /> - {#if $portfolio.spreadsheetOpen} + {#if $portfolio.dataPanelOpen} resizePanel(e)} /> - - + + {/if} - resizePanel(e)} /> - - - - - resizePanel(e)} /> - - - - + {#if $portfolio.propertiesPanelOpen || $portfolio.layersPanelOpen} + resizePanel(e)} /> + + {#if $portfolio.propertiesPanelOpen} + + + + {/if} + {#if $portfolio.propertiesPanelOpen && $portfolio.layersPanelOpen} + resizePanel(e)} /> + {/if} + {#if $portfolio.layersPanelOpen} + + + + {/if} + + {/if} - {#if $dialog.visible} - - {/if}

-Screenshot of 10,000 stars +Screenshot of 10,000 stars Join me, founder and designer of Graphite, to see where the past year has brought us on this quest. And let me take this moment to thank our growing community for sharing my vision and showing support, both financially and by boosting the GitHub project page over the 10,000 star milestone just in time to celebrate the end of a productive 2024.

## 2024 development progress report -

+

Weekly code commit rate in 2024
-In 2024, Graphite grew from a promising tech demo into a by-and-large useful application for vector artistry and graphic design, equipped with its totally unique secret ingredient: nondestructive, procedural editing via a node graph. This was a year focused on iterating until a prototype became a polished productโ€” at least by the standards of alpha-stage software. If you haven't [tried Graphite](https://editor.graphite.rs) recently, please take another look! +In 2024, Graphite grew from a promising tech demo into a by-and-large useful application for vector artistry and graphic design, equipped with its totally unique secret ingredient: nondestructive, procedural editing via a node graph. This was a year focused on iterating until a prototype became a polished productโ€” at least by the standards of alpha-stage software. If you haven't [tried Graphite](https://editor.graphite.art) recently, please take another look! Improvements made throughout Alpha 3 (2024's release series) brought the formerly abysmal performance up to now-adequate levels and solved the vast bulk of instability with the once-numerous crashes and bugs. Advancements to [Graphene](/volunteer/guide/graphene), our bespoke node graph engine technology, has let us begin to support new rendering possibilities, introduce more helpful nodes, and remove restrictive limitations with common node combinations that previously were points of frustration. We also made big strides improving the tools used by artists for vector drawing with features like boolean path operations, snapping, layer selection history, quick measurement, gradient picking, and extensive usability-focused tweaksโ€”both big and smallโ€”all throughout the editor. @@ -62,7 +62,7 @@ Alpha 3 began back in February 2024 and we plan to declare the start of the Alph ## Google Summer of Code results -

Google Summer of Code program logo

+

Google Summer of Code program logo

Read our short blog post about participating in Google Summer of Code
@@ -78,11 +78,11 @@ I would like to express my gratitude to Google for funding the program and its s Another part of the GSoC program was the Mentor Summit in October where I got to meet and share knowledge with open source maintainers from the other participating organizations. Hosted at Google's Mountain View offices, it was a weekend of talking tech and learning the lessons of open source project management from the seasoned veterans. -

+

Group photo of the GSoC Mentor Summit attendees
-

+

Schedule board highlighting my session on day 2
@@ -98,7 +98,7 @@ In March, accompanied by Oliver Davies, a personal friend/tech artist/contributo We introduced Graphite to open source organizations like Godot and O3DE, caught up with Francesco and Dalai from the Blender Foundation, joined a roundtable panel on open source adoption in the games industry, and came together with the Rust Gamedev community for a physical meetup of game and graphics centric Rust developers. It was a treat seeing several people in-person for the first time whom, before, I'd known only online. -

+

Upper-left: Forest Anderson, host of the Rust Gamedev Meetup live streams where Graphite demoed many monthly development milestones, with me at the Rust devs hangout; @@ -111,7 +111,7 @@ With March now just around the corner, I am definitely looking forward to the ne ### Blender Conference LA -

+

Left-to-right, top-then-bottom: Ton Roosendaal (founder of Blender) and me (founder of Graphite); the venue on Hollywood Boulevard; talks on the main stage; Colin Levy (director of Skywatch and the Blender Studio's Sintel) and Andrew Price (Blender Guru and creator of Poliigon); my talk on the main stage; Alan Melikdjanian (Captain Disillusion) and Ian Hubert (YouTube filmmaker and director of the Blender Studio's Tears of Steel); attendees chatting
@@ -120,20 +120,20 @@ The next month in April, Oliver and I went to our second conference of the year: I also took to the main stage to present a lightning talk introducing Graphite to the community:
- BCON LA 2024 - Lightning Talks + BCON LA 2024 - Lightning Talks
### Graphite booth at Open Sauce The month of June was particularly special because of Open Sauce, a convention and expo in San Francisco for makers and creators, and of course, open source projects! -

+

Adam and Oliver driving a Graphite live demo at our booth
This presented the perfect opportunity to host our own exhibitor booth and talk to hundreds of excited attendees with creative tech backgrounds over the two day show. The event was excellent for networking with fellow makers and a chance to meet an array of the guest YouTube creators including several from the digital content creation realm. -

+

Sides: doodles by attendees on our public art wall; Inner-left: Ian Hubert, Blender filmmaker, visiting again after we met at BCON LA; Inner-right: Daniel Shiffman (The Coding Train), creator of tutorials and explorations into creative coding/generative procedural art
@@ -145,7 +145,7 @@ Joining me again was Oliver to assist with the booth, as well as our new GSoC co And then when October rolled around, we did it again! Now located at a post-industrial waterfront venue across the Bay from San Francisco, the Maker Faire started with a Friday field trip day for local schools followed by a full weekend of general attendance. -

+

Visitors making art and learning about Graphite at our booth
@@ -153,13 +153,13 @@ The Maker Faire is ground zero for the Maker Movement. I grew up going each year Attracting a more family-oriented audience than Open Sauce, it presented the chance to learn how approachable Graphite is even for kids. Doodling on the LED-backlit whiteboards flanking our booth was especially popular with that age range and brought in many passers-by. Of those who tried Graphite, I was blown away to see how some of our youngest visitorsโ€”down to the age of 6โ€”were also the most capable and engaged using the product, diving in deep with barely any instruction. As the UI and product designer, this assured me that I have been on the right track so far. I believe now more than ever that my ambitious goal is achievable: creating the most intuitive and user-friendly professional graphics editor on the market. -

+

All four demo computers occupied with Graphite's newest users
Another exciting part of the Maker Faire experience was bringing together nearly the full Graphite core team in-person. Oliver and Adam came to help again while we were also joined by Dennis visiting all the way from Germany, conveniently coinciding with a vacation he had planned. We put our commute time towards deeply technical code architecture discussions and knowledge transfer. -

+

Left: me (1), Adam (2), and Oliver (3) at the venue; Right: Adam (1), Dennis (2), and me (3) (Oliver and Dennis couldn't make it on the same day)
@@ -179,7 +179,7 @@ Now to get technical, the lazy option exists: chucking the whole web app in an u Next, the feature I am personally most itching to dive into developing is animation. I've been recently iterating on the UI design mockup for the Timeline panel which will support keyframing any desired node parameters. This new panel will seamlessly integrate into the existing graph-based, data-driven workflow and make it easy to create motion graphics paired with procedural generation. -

+

User interface mockup for the latest animation panel plans prior to being implemented
@@ -196,7 +196,7 @@ It is now becoming time to delve into the next phase of making the node graph mo Graphite has included a primitive kind of raster support for a while, mostly used for including reference images when creating vector content. Some raster nodes can adjust the colors of images, but there are no tools yet for selecting and drawing over parts of an image to make localized edits. Furthermore, CPU-centric bottlenecks slow down the editor when big images are in use. The GPU is not used by any nodes operating on pixel-based data. -Consequently, raster editing just isn't viable yet until tool and GPU node support arrives. The innumerable complexities would not fit in this section, but if you have a background in compilers or graphics programming, please hop on our Discord and ask about it if you're curious or potentially interested in helping. After the infrastructure parts are in place, we can begin building nodes that make localized edits (such as a masking node) and start developing tools including a fully rewritten brush engine and a mode for drawing marquee selections. I can't yet predict how far we will get by year's end with these interactive localized editing tools because it will all depend on how quickly the prerequisite technical infrastructure components come together. Part of that will depend on how soon the browser vendors ship universal WebGPU API support so it can be deployed beyond an experimental state in Graphite. +Consequently, raster editing just isn't viable yet until tool and GPU node support arrives. The innumerable complexities would not fit in this section, but if you have a background in compilers or graphics programming, please hop on our Discord and ask about it if you're curious or potentially interested in helping. After the infrastructure parts are in place, we can begin building nodes that make localized edits (such as a masking node) and start developing tools including a fully rewritten brush engine and a mode for drawing marquee selections. I can't yet predict how far we will get by year's end with these interactive localized editing tools because it will all depend on how quickly the prerequisite technical infrastructure components come together. Part of that will depend on how soon the browser vendors ship universal WebGPU API support so it can be deployed beyond an experimental state in Graphite. ### Graphite in education @@ -204,7 +204,7 @@ A valuable discovery came out of exhibiting Graphite at the Maker Faire. I had c I was told that other web-based graphics editors are commonly blocked by the IT admins of school networks due to policies against visiting sites with ads. (Crazy!) Since Graphite is entirely ad-free and runs on Chromebooks, this presents an opportunity to focus on better supporting the education market. In fact, I have recently been watching Chromebooks account for a small but rapidly growing portion of our site's visitors which means some educators are teaching Graphite in their classrooms: -

+

Graphite visitors on Chromebooks have trended up this school year but dropped down to background levels during summer and winter breaks, hinting at usage in classrooms
@@ -232,7 +232,7 @@ If you choose to [become a member](/donate), you are directly helping fund our e If you choose to [volunteer](/volunteer), you lift our greatest bottleneckโ€”timeโ€”and bring your unique skills to the table. There are opportunities from coding to technical writing to art, design, and marketing. It's a team effort, but only if there's a team to delegate the efforts to. -And there are other ways to help out. Sign up as a QA tester in our Discord. Make it your mission to share Graphite by word-of-mouth on the forums and online communities you frequent. Put it on the radar of the creators you follow. Create and post your own tutorials on the web. Use it regularly and share your creations in our Discord community and by tagging #MadeWithGraphite on social media. +And there are other ways to help out. Sign up as a QA tester in our Discord. Make it your mission to share Graphite by word-of-mouth on the forums and online communities you frequent. Put it on the radar of the creators you follow. Create and post your own tutorials on the web. Use it regularly and share your creations in our Discord community and by tagging #MadeWithGraphite on social media. ## Upcoming: FOSDEM '25 diff --git a/website/content/blog/2025-03-31-graphite-progress-report-q4-2024.md b/website/content/blog/2025-03-31-graphite-progress-report-q4-2024.md index 732ff42e6..443c742a2 100644 --- a/website/content/blog/2025-03-31-graphite-progress-report-q4-2024.md +++ b/website/content/blog/2025-03-31-graphite-progress-report-q4-2024.md @@ -2,8 +2,8 @@ title = "Graphite progress report (Q4 2024)" date = 2025-03-31 [extra] -banner = "https://static.graphite.rs/content/blog/2025-03-31-graphite-progress-report-q4-2024.avif" -banner_png = "https://static.graphite.rs/content/blog/2025-03-31-graphite-progress-report-q4-2024.png" +banner = "https://static.graphite.art/content/blog/2025-03-31-graphite-progress-report-q4-2024.avif" +banner_png = "https://static.graphite.art/content/blog/2025-03-31-graphite-progress-report-q4-2024.png" author = "Keavon Chambers & Hypercube" summary = "Graphite's Q4 2024 update introduces quality of life features across drawing tools and procedural editing." css = ["/component/demo-artwork.css"] @@ -18,15 +18,15 @@ bluesky = "https://bsky.app/profile/graphiteeditor.bsky.social/post/3llsxykppjs2 All Q4 2024 commits may be [viewed in this list](https://github.com/GraphiteEditor/Graphite/commits/master/?since=2024-10-01&until=2024-12-31) and all noteworthy changes are detailed below. -This is the fourth in our 2024 series of quarterly progress reports. If you missed [the previous post](../graphite-progress-report-q3-2024), be sure to check it out as well. If you'd like to help speed up future progress, please consider [getting involved](/volunteer) with code, QA/bug testing, or art/marketing projects. [Donations](/donate) are also valued, as are [stars on GitHub](https://github.com/GraphiteEditor/Graphite). Follow along and partake in our [Discord community](https://discord.graphite.rs), too. +This is the fourth in our 2024 series of quarterly progress reports. If you missed [the previous post](../graphite-progress-report-q3-2024), be sure to check it out as well. If you'd like to help speed up future progress, please consider [getting involved](/volunteer) with code, QA/bug testing, or art/marketing projects. [Donations](/donate) are also valued, as are [stars on GitHub](https://github.com/GraphiteEditor/Graphite). Follow along and partake in our [Discord community](https://discord.graphite.art), too. At the time of publication, there is **one week left to apply for a summer 2025 internship with us through Google Summer of Code.** [Learn more here](../internships-for-a-rust-graphics-engine-gsoc-2025) and apply before [April 8 at 18:00 UTC](https://www.wolframalpha.com/input?i=April+8%2C+18%3A00+UTC). To showcase the newly introduced feature of converting selected nodes into conveniently reusable subgraphs, the new *Parametric Dunescape* artwork is presented below. Every dune layer is generated just by its custom parameters for color, height, and random seed.
- - Vector art of Parametric Dunescape + + Vector art of Parametric Dunescape

@@ -34,7 +34,7 @@ To showcase the newly introduced feature of converting selected nodes into conve
- Open this artwork to
explore it yourself. + Open this artwork to
explore it yourself.

@@ -48,8 +48,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -57,24 +57,24 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
- Pinnable node sections in the Properties panel ([commit e6d8c47](https://github.com/GraphiteEditor/Graphite/commit/e6d8c4743d2aff15985c929df2cc7381a61908a0))
-- New demo artwork, [*Changing Seasons*](https://editor.graphite.rs/#demo/changing-seasons), featured in the [previous progress report](../graphite-progress-report-q3-2024) ([commit fa6b5f2](https://github.com/GraphiteEditor/Graphite/commit/fa6b5f298adf395362e1aaa2c07be89fa89eaee2)) +- New demo artwork, [*Changing Seasons*](https://editor.graphite.art/#demo/changing-seasons), featured in the [previous progress report](../graphite-progress-report-q3-2024) ([commit fa6b5f2](https://github.com/GraphiteEditor/Graphite/commit/fa6b5f298adf395362e1aaa2c07be89fa89eaee2))
@@ -82,21 +82,21 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
- *Flatten Vector Elements* node that turns multiple layers of vector paths into a single combined path; and changes to the *Copy to Points*, *Repeat*, and *Circular Repeat* nodes so they output group data instead of a single vector path, allowing each separate layer to be modified by nodes which operate on groups (like *Assign Colors*), or flattened with *Flatten Vector Elements* to have the prior behavior ([#2011](https://github.com/GraphiteEditor/Graphite/pull/2011), [#2045](https://github.com/GraphiteEditor/Graphite/pull/2045)) - Visual description of the change introduced by the Flatten Vector Elements node and its usage with instancing nodes + Visual description of the change introduced by the Flatten Vector Elements node and its usage with instancing nodes - Support for *Fill* and *Stroke* nodes with groups, applying to each vector layer within ([#2046](https://github.com/GraphiteEditor/Graphite/pull/2046))
@@ -104,8 +104,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -113,8 +113,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -122,8 +122,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -131,8 +131,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -140,8 +140,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -149,8 +149,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -158,8 +158,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -167,8 +167,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -176,27 +176,27 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the - *Dot Product* node that calculates the mathematical dot product between two numerical vectors ([#2126](https://github.com/GraphiteEditor/Graphite/pull/2126)) - *Math* node that calculates a custom math expression with variables "A" and "B" ([#2121](https://github.com/GraphiteEditor/Graphite/pull/2121)) - Visualization of the Math node properties showing the example expression: 0.33 * A + (1 - 0.33) * B + Visualization of the Math node properties showing the example expression: 0.33 * A + (1 - 0.33) * B - Degrees/radians option in the trig-related math nodes and "Always Positive" option in the *Modulo* node for more convenient usage of the math nodes ([commit d649052](https://github.com/GraphiteEditor/Graphite/commit/d649052255c10c15754c3a3707f2edf996d2468d))
- Node graph control bar revamp ([#2093](https://github.com/GraphiteEditor/Graphite/pull/2093)) - View of the control bar area of the UI in the node graph featuring new buttons + View of the control bar area of the UI in the node graph featuring new buttons - Freehand tool feature for drawing new subpaths on an existing vector layer by holding Shift ([commit ed119ad](https://github.com/GraphiteEditor/Graphite/commit/ed119ad3d799030dbc488ccfc8ca9ad057eeff2c))
@@ -204,8 +204,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -213,8 +213,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -222,8 +222,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -231,8 +231,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -240,8 +240,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -249,8 +249,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
@@ -258,8 +258,8 @@ EDITOR'S NOTE: The grammatical structure of each bullet point should follow the
diff --git a/website/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.md b/website/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.md index 1c8a54a58..f7ca6427d 100644 --- a/website/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.md +++ b/website/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.md @@ -2,8 +2,8 @@ title = "Internships for a Rust graphics engine: GSoC 2025" date = 2025-04-02 [extra] -banner = "https://static.graphite.rs/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.avif" -banner_png = "https://static.graphite.rs/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.png" +banner = "https://static.graphite.art/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.avif" +banner_png = "https://static.graphite.art/content/blog/2025-04-02-internships-for-a-rust-graphics-engine-gsoc-2025.png" author = "Keavon Chambers" summary = "Join Graphite in Google Summer of Code 2025 for a unique opportunity to contribute to open-source software development in Rust and computer graphics. Get paid while learning, working on self-contained projects under experienced mentors, and help Graphite grow." reddit = "https://www.reddit.com/r/graphite/comments/1jplm6t/internships_for_a_rust_graphics_engine_gsoc_2025/" @@ -25,12 +25,12 @@ Do you love Rust and focus on computer graphics, compiler development, or algori Hear from our mentoring team about Graphite's tech stack and engineering vision by listening to last month's episode of the Developer Voices podcast:
- Graphite: Image Editing as a Syntax Tree (with Keavon Chambers & Dennis Kobert) + Graphite: Image Editing as a Syntax Tree (with Keavon Chambers & Dennis Kobert)
For GSoC 2025, our priority focus is mentoring projects revolving around advanced graphics techniques and compiler development, meeting our goal of extending Graphite into the domain of raster image manipulation. Demonstrated experience in these areas is highly advantageous. -Outstanding applicants tend to be competent, self-directed, productive, and confidence-inspiring. If you're driven to learn and explore cutting-edge engineering challenges, please [get in touch](https://discord.graphite.rs) and we will help you get up to speed and assist in submitting a timely application. +Outstanding applicants tend to be competent, self-directed, productive, and confidence-inspiring. If you're driven to learn and explore cutting-edge engineering challenges, please [get in touch](https://discord.graphite.art) and we will help you get up to speed and assist in submitting a timely application. Out of the [full list of project opportunities](/volunteer/guide/student-projects/#project-idea-list), some interesting high-priority projects include: @@ -43,6 +43,6 @@ Out of the [full list of project opportunities](/volunteer/guide/student-project - Researching an assortment of algorithms for image processing operations - Engineering solutions for combining our web-based editor GUI and native WGPU renderer in the same window across Windows, Mac, and Linux desktop applications -These recently added projects are pending an extended description, but we'll be happy to discuss the details if you pop into our [Discord server](https://discord.graphite.rs) and introduce yourself with links to related experience and projects. +These recently added projects are pending an extended description, but we'll be happy to discuss the details if you pop into our [Discord server](https://discord.graphite.art) and introduce yourself with links to related experience and projects. Outside GSoC, additional year-round opportunities are available for student capstone or independent research projects. These are run similarly, but are also available to multi-person groups. They provide academic credit instead of a stipend. Reach out anytime if interested. diff --git a/website/content/blog/2025-09-19-graphite-community-meetup-in-germany.md b/website/content/blog/2025-09-19-graphite-community-meetup-in-germany.md new file mode 100644 index 000000000..6b58c2f5e --- /dev/null +++ b/website/content/blog/2025-09-19-graphite-community-meetup-in-germany.md @@ -0,0 +1,29 @@ ++++ +title = "Graphite community meetup in Germany" +date = 2025-09-19 +[extra] +banner = "https://static.graphite.art/content/blog/2025-09-19-graphite-community-meetup-in-germany.avif" +banner_png = "https://static.graphite.art/content/blog/2025-09-19-graphite-community-meetup-in-germany.png" +author = "Keavon Chambers" +summary = "Join us for a Graphite community meetup on October 10th, 2025 in Karlsruhe, Germany. Meet the core team and connect with fellow enthusiasts." +reddit = "https://www.reddit.com/r/graphite/comments/1nlt64g/graphite_community_meetup_in_germany_october_10/" +twitter = "https://x.com/GraphiteEditor/status/1969324821205925934" +bluesky = "https://bsky.app/profile/graphiteeditor.bsky.social/post/3lzaz3uizkc2j" ++++ + +To our European community: mark your calendars for the first official Graphite community meetup on **Friday, October 10th, 2025** in **Karlsruhe, Germany**. Meet core members of the project team and make acquaintance with your fellow Graphite enthusiasts plus Rust developers, open source contributors, and FOSS digital content creation software users. + + + +To ensure we are prepared with enough space and food, [**please RSVP as soon as possible**](https://luma.com/d0psfopk) and remember to return to update the registration if your plans change. + +We are planning to host a mix of short workshops, talks, open-ended design discussions, socializing, and show-and-tell demos (including a hands-on sneak peek of the upcoming desktop app) based on the interests of attendees. [Get in touch](/contact) if you would like to present a talk or demo of how you've been using Graphite. Activities will begin at 16:00 and run until 22:00, with scheduling broken into both afternoon and evening sessions to accommodate options for earlier availability and later arrivals. The schedule of events will take a freeform "unconference" style in the afternoon followed by somewhat more structured plans in the evening. You are invited to attend all sessions or drop in for the later parts as your schedule and travel plans allow. Feel free to prepare suggestions for topics that we can jump between every half hour. + +In attendance will be: + +- Keavon Chambers, Graphite founder, designer, and project lead +- Dennis Kobert, technical lead and core maintainer +- Timon Schelling, developer of the Graphite desktop app +- Sebastian Sydow, contributor to Graphite's GPU infrastructure and Rust GPU maintainer + +We look forward to seeing you there. diff --git a/website/content/blog/_index.md b/website/content/blog/_index.md index e37bd1928..392b8096b 100644 --- a/website/content/blog/_index.md +++ b/website/content/blog/_index.md @@ -17,7 +17,7 @@ Latest news and articles from the Graphite team.

- RSS + RSS RSS Feed

diff --git a/website/content/contact.md b/website/content/contact.md index ddbe16fa1..3521a2d9d 100644 --- a/website/content/contact.md +++ b/website/content/contact.md @@ -13,9 +13,9 @@ css = ["/layout/reading-material.css"]
- Members of the press, please see the [press resources](/press) page. -- For general discussions, reach out on [Discord](https://discord.graphite.rs) or [Reddit](https://www.reddit.com/r/graphite/). +- For general discussions, reach out on [Discord](https://discord.graphite.art) or [Reddit](https://www.reddit.com/r/graphite/). - To report a bug or request a feature, please [file an issue](https://github.com/GraphiteEditor/Graphite/issues/new) on GitHub. -- For other inquiries, get in touch by email at [contact@graphite.rs](mailto:contact@graphite.rs). +- For other inquiries, get in touch by email at [contact@graphite.art](mailto:contact@graphite.art).
diff --git a/website/content/donate.md b/website/content/donate.md index c1eef60be..2cd93d639 100644 --- a/website/content/donate.md +++ b/website/content/donate.md @@ -28,15 +28,15 @@ css = ["/page/donate.css", "/component/feature-box.css", "/component/feature-ico
- +
- +
- +
@@ -49,7 +49,7 @@ css = ["/page/donate.css", "/component/feature-box.css", "/component/feature-ico const donorsElement = document.querySelector("[data-statistics-donors]"); if (!dollarsElement || !membersElement || !donorsElement) return; try { - const response = await fetch("https://graphite.rs/sponsorship-stats"); + const response = await fetch("https://graphite.art/sponsorship-stats"); const json = await response.json(); if (!json || !json.recurring || !json.one_time_prior_3_month_sum) throw new Error(); const recurringDollars = parseInt(json.recurring.cents) / 100; diff --git a/website/content/features.md b/website/content/features.md index a07164800..449f801cd 100644 --- a/website/content/features.md +++ b/website/content/features.md @@ -24,7 +24,7 @@ In 2025, stay tuned for performance improvements, a native multiplatform desktop
- Rust-Powered Graphics Editor: How Graphite's Syntax Trees Revolutionize Image Editing + Rust-Powered Graphics Editor: How Graphite's Syntax Trees Revolutionize Image Editing
@@ -73,267 +73,331 @@ Marrying vector and raster under one roof enables both art forms to complement e
-
+

โ€” Pre-Alpha โ€”

- + Editor systems; basic vector art tools
-
+

โ€” Alpha 1 โ€”

- + Better tools; node graph prototyping
-
+

โ€” Alpha 2 โ€”

- + Node graph integration in documents
-
+

โ€” Alpha 3 โ€”

- + Procedural vector editing and usability
-
+

โ€” Alpha 4 โ€”

- + Parametric animation
- - Instancer repeat nodes + + Instancer nodes for looped generation
- - Table-based graphical data + + Enhanced Pen, Path, and Shape tools +
+
+ + Table-based graphical data format +
+
+ + Data panel for graphical introspection +
+
+ + Layer clipping masks +
+
+ + All-around performance optimizations
- + + Blend tool to morph between shapes +
+
+ Desktop app (Windows, Mac, Linux)
- + GPU-accelerated raster rendering
- - Evolution of the graphical data format -
-
- - Robust vector mesh editing/rendering + + Expanded imaging model data format
- - Timeline panel for animation curves + + Context menus throughout the editor
- - Custom attributes for table data -
-
- - Signed distance field rendering -
-
- + Simplified main properties panel
- - Automatic image trace vectorization -
-
- - Brush tool rewrite -
-
- - Local file browser for saving/loading -
-
- - Local fonts access -
-
- - Variable color swatches -
-
- + Node version management
- + Stable document format
- - -
-

โ€” Beta โ€”

+ +
+

โ€” Beta 1 โ€”

- - Command palette and context menus + + Local fonts access
- - Stylus and touch interaction + + Saving over local files (web version)
- + + Timeline panel for animation curves +
+
+ + Nested documents as custom nodes +
+
+ + Variables and color swatches +
+
+ + Custom attributes for table data +
+
+ + Physical measurement units +
+
+ + Text-on-path tool support +
+
+ + Per-glyph text style controls +
+
+ + Robust vector mesh editing/rendering +
+
+ + Nondestructive shape builder tool +
+
+ + Automatic image trace vectorization +
+
+ Broader SVG support including filters
- - Shape builder tool + + Parametric art standalone export
- + + New and improved brush tool +
+
+ + Stylus and touch interaction +
+
+ + MIDI and audio-reactive visualization +
+ +
+

โ€” Beta 2 โ€”

+
+
+ Dockable and multi-window panels
- + + Command palette +
+
+ + Onion skinning mode for animation +
+
+ + Animatable deformation meshes/rigs +
+
+ + Simulation domains +
+
+ + Signed distance field rendering +
+
+ + Procedural PBR material generation +
+
+ Code editor for custom nodes
- - Document history management -
-
- - Offline edit resolution with CRDTs -
-
- + Asset libraries and node marketplace
- - Automation and batch processing + + Automation/batch processing tools
- - Standalone parametric documents -
-
- - Raw photo processing -
-
- + Select mode (marquee masking)
- + + Raster adjustments, filters, and effects +
+
+ Liquify and warp transforms
- + + Raw photo processing +
+ +
+

โ€” LTS Releases โ€”

+
+
+ + Advanced typesetting features +
+
+ PDF, EPS, AI, DXF, PSD, and TIFF
- + + CMYK, spot color, and ICC profiles +
+
+ HDR and WCG color handling
- - CMYK and other color spaces -
-
- - Advanced typography and typesetting -
-
- - Frozen-in-time graph references -
- -
-

โ€” 1.0 Release โ€”

-
-
- - Internationalization and accessibility -
-
- + Outliner panel (node graph tree view)
- + + Document history management +
+
+ + Offline edit resolution with CRDTs +
+
+ + History brush and clone stamp tools +
+
+ + Internationalization and accessibility +
+
+ AI nodes and tools (e.g. magic wand)
- + Procedural styling of paint brushes
- + Infinite generative vector patterns
- - Construction geometry mode + + Geometric constraint system solver
- - CAD style constraint relationships + + Responsive design layout solver
- - Responsive design constraint solvers -
-
- + Authoring animated SVGs, Lottie, etc.
- + Live video stream compositing
- - iPad app and keyboard-free controls + + Tablet app and keyboard-free controls
- - Cloud document storage + + Media collection manager/browser
- + + Cloud document storage/device sync +
+
+ Multiplayer collaborative editing
- + Predictive graph rendering/caching
- - Distributed graph rendering + + Multi-device distributed rendering
- - Cloud rendering accelerator service + + Hosted rendering accelerator service
- + โ€ฆand that's all just the beginningโ€ฆ
@@ -341,3 +405,45 @@ Marrying vector and raster under one roof enables both art forms to complement e
+ +
+ +
+ +## Roadmap spotlight: keyframe animation + +Coming early 2026, Graphite will expand its animation toolset beyond parametrically-driven motion to include traditional keyframe animation. The Timeline panel pictured below will let animators drive parameters using keyframes and curves through a traditional dopesheet interface. + +Node parameters can be set to a constant value in the Properties panel, exposed to the graph for procedural animation, or exposed to a channel in the upcoming Timeline panel for hand-authored keyframing. + +The panel will enable users to scrub through time with the playhead and choose between timing with discrete frames or continuous seconds. A dedicated curves editing mode (not pictured) will enable fine-tuning parameters with a labeled Y-axis, while the dopesheet allows individual channels to be expanded to view and edit the shape and smoothness of curves inline. + +Work-in-progress design mockup: + + + +
+ +
+ +
+ +
+ +## Roadmap spotlight: raster image editing + +The vision since Graphite's inception has been to open up the traditional raster image editing workflow to the greater degree of flexibility found in node-based compositors, without one approach compromising the ergonomics of the other. + +As with Graphite's current vector toolset, raster editing will interpret the user's interactive edits as modifications to the construction of layers in the underlying node graph rather than destructive alterations to layer pixel data (as in other image editors). By containing only a description of the user's editing operations without the data, documents will remain ultra tiny when source assets are linked externally. + +Brushes, selection tools, masks, filters, effects, adjustment layers, and other tools used to manipulate raster layers will all be presented in a familiar form when Graphite's raster toolset nears maturity by the end of beta. + +Work-in-progress design mockup: + + + + + +
+ +
diff --git a/website/content/learn/_index.md b/website/content/learn/_index.md index 2d7895984..9a3b983a2 100644 --- a/website/content/learn/_index.md +++ b/website/content/learn/_index.md @@ -9,9 +9,7 @@ js = ["/js/youtube-embed.js"] css = ["/component/youtube-embed.css"] +++ -Welcome to the Graphite user manual. Keep reading to to learn how the software can help bring your 2D creative ideas to life. - -You may choose to read this sequentially and learn from the structured introduction and sample projects. Or you may jump to chapters of interest that also serve as quick reference. +Welcome to the Graphite user manual. Keep reading to learn how the software can help bring your 2D creative ideas to life. ## More chapters on the way @@ -19,14 +17,14 @@ Additional manual chapters are being added over time. Check back every so often. ## Need help? -If you're ever stuck or confused, ask your questions in the `#๐Ÿงญuser-help` channel of the [Graphite Discord server](https://discord.graphite.rs) or post a thread in the [discussion board](https://github.com/GraphiteEditor/Graphite/discussions) on GitHub. +If you're ever stuck or confused, ask your questions in the `#๐Ÿงญuser-help` channel of the [Graphite Discord server](https://discord.graphite.art) or post a thread in the [discussion board](https://github.com/GraphiteEditor/Graphite/discussions) on GitHub. ## Jump right in -The fastest way to get started is to watch and follow along steps-by-step in the hands-on quickstart video: +The fastest way to get started is to watch and follow along steps-by-step in the hands-on quickstart tutorial:
- Graphite Tutorial 1 - Hands-On Quickstart + Vector Art Quickstart - Graphite, the Open Source 2D Graphics Suite
diff --git a/website/content/learn/_unpublished/graph/_index.md b/website/content/learn/_unpublished/graph/_index.md index 75a367fe5..db0ac3056 100644 --- a/website/content/learn/_unpublished/graph/_index.md +++ b/website/content/learn/_unpublished/graph/_index.md @@ -26,7 +26,7 @@ Layers and nodes are wired together using **links** which send data between the When a layer or node is selected, these buttons will show up on the left side of the control bar: -

The node/layer controls

+

The node/layer controls

| | | |-|-| diff --git a/website/content/learn/interface/_index.md b/website/content/learn/interface/_index.md index 0148aae34..58afa4082 100644 --- a/website/content/learn/interface/_index.md +++ b/website/content/learn/interface/_index.md @@ -13,39 +13,34 @@ This chapter formally introduces the concepts and terminology for the user inter The bar running across the top of the editor is called the **title bar**. In the (forthcoming) desktop release of Graphite, this acts as the draggable window frame. -

The title bar

+ ### Menu bar On the left, the [**menu bar**](./menu-bar) provides quick access to many editor, document, and artwork related controls. Its functions are covered in detail on the next page. -

The menu bar

+ -### Document title - -In the center, the **document title** displays the name of the active document. That name is given a `*` suffix if the file has unsaved changes. For example, *Painting.graphite** would be unsaved but *Painting.graphite* would have no changes following its last save. - -

The document title

- ### Window buttons -On the right, the **window buttons** provide platform-specific controls for the application. +On the right (and on Mac, the left), the **window buttons** provide platform-specific controls for the application. | | | |-|-| -| **Web** |

A button to enter fullscreen mode is displayed.

The label "*Go fullscreen to access all hotkeys*" indicates that some shortcut keys like CtrlN (macOS: โŒ˜N) are reserved by the web browser and can only be used in fullscreen mode. (An alternative to going fullscreen: include Alt in the shortcut combinations for browser-reserved hotkeys.)

Fullscreen button

| - - +| **Web** |

Fullscreen:

Fullscreen button

| +| **Windows** |

Minimize, maximize/restore down, close:

Minimize/maximize/close window buttons

| +| **Linux** |

Minimize, maximize/unmaximize, close:

Minimize/maximize/close window buttons

| +| **macOS** |

Close, minimize, fullscreen:

Close/minimize/fullscreen window buttons

| ## Workspace The **workspace** is the editor's main content area, filled with **panels** arranged next to one another. The **gutter** lines, located between neighboring panels, may be dragged to resize them. -

The workspace

+

The workspace

### Panels @@ -61,7 +56,7 @@ Beneath the panel header, the **panel content** displays the content for its pan The bar running across the bottom of the editor is called the **status bar**. -

Status bar

+

Status bar

### Input hints @@ -69,17 +64,17 @@ The **input hints** are presently the only occupant of the status bar. They indi Hints with a **`+`** mean that adding the indicated modifier key will change the base action. For example: in the following action, dragging with left-click held down will zoom the canvas; then additionally holding the Ctrl key will make the zoom action snap to whole increments. -

Example hint

+

Example hint

Hints with a **`/`** mean that either indicated input combination can be used to trigger the same action. For example: in the following action, either holding the space bar while dragging with the left mouse button held down, or just dragging with the middle mouse button held down, will both pan around the document in the viewport. -

Example hint

+

Example hint

The following chart describes each icon representing the mouse inputs you can perform so a hint's prescribed action occurs. | | Clicks | Drags | Others | |-|:-:|:-:|:-:| -| | | Drag icon
Drag | Mouse kept stationary icon
Stationary | -| **Left
mouse
button** | Left click icon
Left click | Left click drag icon
Left click drag | Left double-click icon
Left double-click | -| **Right
mouse
button** | Right click icon
Right click | Right click drag icon
Right click drag | Right double-click icon
Right double-click | -| **Middle
mouse
button** | Middle click icon
Middle click | Middle click drag icon
Middle click drag | Scroll up/down icons
Scroll up/down | +| **Left
mouse
button** | Left click icon

Left click | Left click drag icon

Left click drag | Left double-click icon

Left double-click | +| **Right
mouse
button** | Right click icon

Right click | Right click drag icon

Right click drag | Right double-click icon

Right double-click | +| **Middle
mouse
button** | Middle click icon

Middle click | Middle click drag icon

Middle click drag | Scroll up/down icons

Scroll up/down | +| **No
mouse
button** | | Drag icon

Drag | | diff --git a/website/content/learn/interface/document-panel.md b/website/content/learn/interface/document-panel.md index ea8bbee5a..428735847 100644 --- a/website/content/learn/interface/document-panel.md +++ b/website/content/learn/interface/document-panel.md @@ -28,14 +28,14 @@ Only the default mode is currently implemented. Others will be added in the futu | | | |-|-| -| The editing modes dropdown menu | The default, **Design Mode**, is for directly editing the artwork.

Once implemented, **Select Mode** will be where marquee selections are made to constrain the active tool's edits to a masked area of choice.

Once implemented, **Guide Mode** will be for creating guides and constraint systems used for alignment and constraint-based layout. | +| The editing modes dropdown menu | The default, **Design Mode**, is for directly editing the artwork.

Once implemented, **Select Mode** will be where marquee selections are made to constrain the active tool's edits to a masked area of choice.

Once implemented, **Guide Mode** will be for creating guides and constraint systems used for alignment and constraint-based layout. | --> ### Tool controls The left side of the control bar has controls pertaining to the active tool. It's empty for some tools. -

Example of the tool controls for the Select tool

+

Example of the tool controls for the Select tool

The example above shows the Select tool controls. Because the Select tool deals with selecting and transforming layers, its controls include: - The selection mode to determine if the deepest or shallowest layer in a nested hierarchy is selected when clicked. @@ -50,14 +50,14 @@ Depending on which tool is active, these will change to reflect the pertinent op The right side of the control bar has controls related to the active document and viewport. -

The viewport controls

+

The viewport controls

| | | |-|-| | Overlays |

When checked (default), overlays are shown. When unchecked, they are hidden. Overlays are the temporary contextual visualizations (like bounding boxes and vector manipulators) that are usually blue and appear atop the viewport when using tools.

| -| Snapping |

When checked (default), drawing and dragging shapes and vector points means they will snap to other areas of geometric interest like corners or anchor points. When unchecked, the selection moves freely.

Fine-grained options are available by clicking the overflow button to access its options popover menu. Each option has a tooltip explaining what it does by hovering the cursor over it.

Snapping options popover menu

Snapping options relating to **Bounding Boxes**:

  • **Align with Edges**: Snaps to horizontal/vertical alignment with the edges of any layer's bounding box.
  • **Corner Points**: Snaps to the four corners of any layer's bounding box.
  • **Center Points**: Snaps to the center point of any layer's bounding box.
  • **Edge Midpoints**: Snaps to any of the four points at the middle of the edges of any layer's bounding box.
  • **Distribute Evenly**: Snaps to a consistent distance offset established by the bounding boxes of nearby layers (due to a bug, **Corner Points** and **Center Points** must be enabled).

Snapping options relating to **Paths**:

  • **Align with Anchor Points**: Snaps to horizontal/vertical alignment with the anchor points of any vector path.
  • **Anchor Points**: Snaps to the anchor point of any vector path.
  • **Line Midpoints**: Snaps to the point at the middle of any straight line segment of a vector path.
  • **Path Intersection Points**: Snaps to any points where vector paths intersect.
  • **Along Paths**: Snaps along the length of any vector path.
  • **Normal to Paths**: Snaps a line to a point perpendicular to a vector path (due to a bug, **Intersections of Paths** must be enabled).
  • **Tangent to Paths**: Snaps a line to a point tangent to a vector path (due to a bug, **Intersections of Paths** must be enabled).

| -| Grid |

When checked (off by default), grid lines are shown and snapping to them becomes active. The initial grid scale is 1 document unit, helping you draw pixel-perfect artwork.

  • **Type** sets whether the grid pattern is made of squares or triangles.

    **Rectangular** is a pattern of horizontal and vertical lines:

    Snapping options popover menu

    It has one option unique to this mode:

    • **Spacing** is the width and height of the rectangle grid cells.

    **Isometric** is a pattern of triangles:

    Snapping options popover menu

    It has two options unique to this mode:

    • **Y Spacing** is the height between vertical repetitions of the grid.
    • **Angles** is the slant of the upward and downward sloped grid lines.
  • **Display** gives control over the appearance of the grid. The **Display as dotted grid** checkbox (off by default) replaces the solid lines with dots at their intersection points.
  • **Origin** is the position in the canvas where the repeating grid pattern begins from. If you need an offset for the grid where an intersection occurs at a specific location, set those coordinates.
| -| View Mode |

**Normal** (default): The artwork is rendered normally.

**Outline**: The artwork is rendered as a wireframe.

**Pixels**: **Not implemented yet.** The artwork is rendered as it would appear when exported as a bitmap image at 100% scale regardless of the viewport zoom level.

| +| Snapping |

When checked (default), drawing and dragging shapes and vector points means they will snap to other areas of geometric interest like corners or anchor points. When unchecked, the selection moves freely.

Fine-grained options are available by clicking the overflow button to access its options popover menu. Each option has a tooltip explaining what it does by hovering the cursor over it.

Snapping options popover menu

Snapping options relating to **Bounding Boxes**:

  • **Align with Edges**: Snaps to horizontal/vertical alignment with the edges of any layer's bounding box.
  • **Corner Points**: Snaps to the four corners of any layer's bounding box.
  • **Center Points**: Snaps to the center point of any layer's bounding box.
  • **Edge Midpoints**: Snaps to any of the four points at the middle of the edges of any layer's bounding box.
  • **Distribute Evenly**: Snaps to a consistent distance offset established by the bounding boxes of nearby layers (due to a bug, **Corner Points** and **Center Points** must be enabled).

Snapping options relating to **Paths**:

  • **Align with Anchor Points**: Snaps to horizontal/vertical alignment with the anchor points of any vector path.
  • **Anchor Points**: Snaps to the anchor point of any vector path.
  • **Line Midpoints**: Snaps to the point at the middle of any straight line segment of a vector path.
  • **Path Intersection Points**: Snaps to any points where vector paths intersect.
  • **Along Paths**: Snaps along the length of any vector path.
  • **Normal to Paths**: Snaps a line to a point perpendicular to a vector path (due to a bug, **Intersections of Paths** must be enabled).
  • **Tangent to Paths**: Snaps a line to a point tangent to a vector path (due to a bug, **Intersections of Paths** must be enabled).

| +| Grid |

When checked (off by default), grid lines are shown and snapping to them becomes active. The initial grid scale is 1 document unit, helping you draw pixel-perfect artwork.

  • **Type** sets whether the grid pattern is made of squares or triangles.

    **Rectangular** is a pattern of horizontal and vertical lines:

    Snapping options popover menu

    It has one option unique to this mode:

    • **Spacing** is the width and height of the rectangle grid cells.

    **Isometric** is a pattern of triangles:

    Snapping options popover menu

    It has two options unique to this mode:

    • **Y Spacing** is the height between vertical repetitions of the grid.
    • **Angles** is the slant of the upward and downward sloped grid lines.
  • **Display** gives control over the appearance of the grid. The **Display as dotted grid** checkbox (off by default) replaces the solid lines with dots at their intersection points.
  • **Origin** is the position in the canvas where the repeating grid pattern begins from. If you need an offset for the grid where an intersection occurs at a specific location, set those coordinates.
| +| Render Mode |

**Normal** (default): The artwork is rendered normally.

**Outline**: The artwork is rendered as a wireframe.

**Pixel Preview**: **Not implemented yet.** The artwork is rendered as it would appear when exported as a bitmap image at 100% scale regardless of the viewport zoom level.

**SVG Preview**: **Not implemented yet.** The artwork is rendered as it would appear when exported as an SVG image.

| | Zoom In |

Zooms the viewport in to the next whole increment.

| | Zoom Out |

Zooms the viewport out to the next whole increment.

| | Reset Tilt and Zoom to 100% |

Resets the viewport tilt to 0ยฐ. Resets the viewport zoom to 100% which matches the canvas and viewport pixel scale 1:1.

| @@ -71,23 +71,33 @@ This narrow bar runs vertically down the left side of the Document panel beside ### Tools -Located at the top of the tool shelf area, the **tool shelf** provides a selection of **tools** for interactively editing the artwork. +The tool shelf + +Located at the top of the tool shelf area, the **tool shelf** provides a selection of **tools** for interactively editing the artwork. It is composed of three sections: + +
| | | |-|-| -| The tool shelf |

The tool shelf is split into three sections: the **general tools** (gray icons), **vector tools** (blue icons), and **raster tools** (orange icons).

  • **General tools** are used for assorted editing tasks within the viewport.
  • **Vector tools** are used for drawing and editing vector shapes, paths, and text.
  • **Raster tools** are used for drawing and editing raster image content. The grayed out icons are placeholders for upcoming tools.

| +| **General tools** | (Gray icons) Used for assorted editing tasks within the viewport. | +| **Vector tools** | (Blue icons) Used for drawing and editing vector shapes, paths, and text. | +| **Raster tools** | (Orange icons) Used for drawing and editing raster image content. The grayed out icons are placeholders for upcoming tools. | + +
+ +
### Working colors -The **working colors** are the two colors used by the active tool. +The working colors -| | | -|-|-| -| The working colors |

The upper circle is the **primary color**. The lower circle is the **secondary color**.

There are two buttons located underneath: **Swap** which reverses the current color choices, and **Reset** which restores the primary color to black and the secondary color to white.

| +The **working colors** are the two colors used by the active tool. The upper circle is the **primary color**. The lower circle is the **secondary color**. + +There are two buttons located underneath: **Swap** which reverses the current color choices, and **Reset** which restores the primary color to black and the secondary color to white. The tool controls (above the viewport) for some of the tools offer choices for using the primary and secondary colors. For example, the vector drawing tools have **Fill** and **Stroke** options that use the current secondary and primary colors, respectively, as defaults: -

The Fill and Stroke controls for a vector tool's controls

+

The Fill and Stroke controls for a vector tool's controls

These options each allow choices of being driven by the primary working color, secondary working color, or a custom color set just for that tool. diff --git a/website/content/learn/interface/menu-bar.md b/website/content/learn/interface/menu-bar.md index a48caa55b..0d2c5368f 100644 --- a/website/content/learn/interface/menu-bar.md +++ b/website/content/learn/interface/menu-bar.md @@ -7,112 +7,131 @@ order = 1 The **menu bar** is the series of menus running across the top left of the editor's [**title bar**](../#title-bar). It provides organized access to many actions which are described on this page. -

The menu bar

+Clicking **File**, **Edit**, **Layer**, **Select**, **View**, **Window**, and **Help** opens a dropdown menu with clickable actions. Pay attention to the keyboard shortcut listed on the right of each row in the dropdown menus. Learning to use them can help speed up your workflow. -Clicking **File**, **Edit**, **Layer**, **Document**, **View**, and **Help** opens a dropdown menu with clickable actions. Pay attention to the keyboard shortcut listed on the right of each row in the dropdown menus. Learning to use them can help speed up your workflow. +## Menu actions reference The rest of this page is intended as a reference resource. Skip ahead to the next page if this is your first read-through of the manual. -## App button +### App button -

The app button

+The **app button** appears as the Graphite [logo](/logo). Clicking it opens the website [home page](/). -The **app button** shows the [Graphite logo](/logo). Clicking it opens the Graphite website [home page](/). - -## File - -

The File menu

+### File The **File menu** lists actions related to file handling: | | | |-|-| -| Newโ€ฆ |

Opens the **New Document** dialog for creating a blank canvas in a new editor tab.

The 'New Document' dialog

| -| Openโ€ฆ |

Opens the operating system file picker dialog for selecting a `.graphite` file from disk to be opened in a new editor tab.

| -| Open Demo Artworkโ€ฆ |

Opens the **Demo Artwork** dialog for loading a choice of premade sample artwork files provided for you to explore. Click the button below each image to open it.

The 'Demo Artwork' dialog

| -| Close |

Closes the active document. If it has unsaved changes (denoted by the `*` after the file name), you will be asked to save or discard the changes.

| -| Close All |

Closes all open documents. To avoid accidentally losing unsaved work, you will be asked to confirm that you want to proceed which will discard the unsaved changes in all open documents.

| -| Save |

Saves the active document by writing the `.graphite` file to disk. An operating system file download dialog may appear asking where to place it. That dialog will provide an opportunity to save over a previous version of the file, if you wish, by picking the identical name instead of saving another instance with a number after it.

| -| Importโ€ฆ |

Opens the operating system file picker dialog for selecting an image file from disk to be placed as a new bitmap image layer or SVG content into the active document.

| -| Exportโ€ฆ |

Opens the **Export** dialog for saving the artwork as a *File Type* of *PNG*, *JPG*, or *SVG*. *Scale Factor* multiplies the content's document scale, so a value of 2 would export 300x400 content as 600x800 pixels. *Bounds* picks what area to render: *All Artwork* uses the bounding box of all layers, *Selection* uses the bounding box of the currently selected layers, and an *Artboard: \[Name\]* uses the bounds of that artboard. *Transparency* exports PNG or SVG files with transparency instead of the artboard background color.

The 'Export' dialog

| -| Preferencesโ€ฆ |

Opens the **Editor Preferences** dialog for configuring Graphite's settings.

The 'Editor Preferences' dialog

| +| **Newโ€ฆ** |

Opens the **New Document** dialog for creating a blank canvas in a new editor tab.

The 'New Document' dialog

  • Name determines the initial filename of the new document.
  • Infinite Canvas, if set, skips adding an artboard and thereby starts with a boundless white canvas extending in all directions.
  • Dimensions sets the width and height, in pixels, of the initial artboard. Ignored if *Infinite Canvas* is ticked.

| +| **Openโ€ฆ** |

Opens the operating system file picker dialog for selecting a `.graphite` file from disk to be opened in a new editor tab.

| +| **Open Demo Artworkโ€ฆ** |

Opens the **Demo Artwork** dialog for loading a choice of premade sample artwork files provided for you to explore. Click the button below each image to open it.

The 'Demo Artwork' dialog

| +| **Close** |

Closes the active document. If it has unsaved changes (denoted by the `*` after the file name), you will be asked to save or discard the changes.

| +| **Close All** |

Closes all open documents. To avoid accidentally losing unsaved work, you will be asked to confirm that you want to proceed which will discard the unsaved changes in all open documents.

| +| **Save** |

Saves the active document by writing the `.graphite` file to disk. An operating system file download dialog may appear asking where to place it. That dialog will provide an opportunity to save over a previous version of the file, if you wish, by picking the identical name instead of saving another instance with a number after it.

| +| **Importโ€ฆ** |

Opens the operating system file picker dialog for selecting an image file from disk to be placed as a new bitmap image layer or SVG content into the active document.

| +| **Exportโ€ฆ** |

Opens the **Export** dialog for saving the artwork as a *File Type* of *PNG*, *JPG*, or *SVG*. *Scale Factor* multiplies the content's document scale, so a value of 2 would export 300x400 content as 600x800 pixels. *Bounds* picks what area to render: *All Artwork* uses the bounding box of all layers, *Selection* uses the bounding box of the currently selected layers, and an *Artboard: \[Name\]* uses the bounds of that artboard. *Transparency* exports PNG or SVG files with transparency instead of the artboard background color.

The 'Export' dialog

| +| **Preferencesโ€ฆ** |

Opens the **Editor Preferences** dialog for configuring Graphite's settings.

The 'Editor Preferences' dialog

| -## Edit - -

The Edit menu

+### Edit The **Edit menu** lists actions related to the editing workflow: | | | |-|-| -| Undo |

Steps back in the history of changes in the active document.

| -| Redo |

Steps forward in the history of changes in the active document.

| -| Cut |

Copies the selected layer(s) to the clipboard, then deletes them.

| -| Copy |

Copies the selected layer(s) to the clipboard.

| -| Paste |

Pastes the copied layer(s) from the clipboard into the document. It will end up directly above the selected layer, or otherwise at the base of the folder structure.

In the web version of Graphite, your browser will ask for permission to read from your clipboard which you must grant; alternatively, using the hotkey CtrlV (macOS: โŒ˜V) works without the browser needing this permission.

| +| **Undo** |

Steps back in the history of changes in the active document.

| +| **Redo** |

Steps forward in the history of changes in the active document.

| +| **Cut** |

Copies the selected layer(s) to the clipboard, then deletes them.

| +| **Copy** |

Copies the selected layer(s) to the clipboard.

| +| **Paste** |

Pastes the copied layer(s) from the clipboard into the document. It will end up directly above the selected layer, or otherwise at the base of the folder structure.

In the web version of Graphite, your browser will ask for permission to read from your clipboard which you must grant; alternatively, using the hotkey CtrlV (macOS: โŒ˜V) works without the browser needing this permission.

| +| **Duplicate** |

Creates a copy of the selected layer(s) directly above their original(s) in the layer stack.

| +| **Delete** |

Removes all selected layers and folders.

| +| **Convert to Infinite Canvas** |

Replaces all artboards in the document with standard layers. With no artboards present, the document becomes an infinite canvas.

| -## Layer - -

The Layer menu

+### Layer The **Layer menu** lists actions related to the layers within a document: | | | |-|-| -| New |

Creates a new layer in the active document. It will end up directly above the selected layer, or otherwise at the base of the folder structure.

| -| Select All |

Selects all layers and folders in the document.

| -| Deselect All |

Deselects everything in the document.

| -| Previous Selection |

Goes back to the previously selected set of layers/nodes in the selection history.

If the side of your mouse has navigation buttons, you can use the back button as a shortcut (not supported in Firefox).

| -| Next Selection |

Goes forward to the next selected set of layers/nodes in the selection history.

If the side of your mouse has navigation buttons, you can use the forward button as a shortcut (not supported in Firefox).

| -| Group Selected |

Creates a new folder in place of the selected layer(s), then moves them into that folder.

| -| Delete Selected |

Removes all selected layers and folders.

| -| Grab Selected |

Begin grabbing the selected layer(s) to translate (move) them around with your cursor's movement. Lock to an axis with X or Y then use the number keys to type a pixel distance value. Confirm with a left click or Enter. Cancel with a right click or Esc.

| -| Rotate Selected |

Begin rotating the selected layer(s) around their pivot point with your cursor's movement. Use the number keys to type an angle value in degrees. Confirm with a left click or Enter. Cancel with a right click or Esc.

| -| Scale Selected |

Begin scaling the selected layer(s) around their pivot point with your cursor's movement. Lock to an axis with X or Y. Use the number keys to type a scale multiplier value. Confirm with a left click or Enter. Cancel with a right click or Esc.

| -| Order >
Raise to Front |

Reorders the selected layer(s) above all others within their same folder(s), so they appear in the layer stack and render above those other layers.

| -| Order >
Raise |

Reorders the selected layers(s) up by one in the layer stack, so any layer that was immediately above the selected layer(s) ends up immediately below.

| -| Order >
Lower |

Reorders the selected layers(s) down by one in the layer stack, so any layer that was immediately below the selected layer(s) ends up immediately above.

| -| Order >
Lower to Back |

Reorders the selected layer(s) below all others within their same folder(s), so they appear in the layer stack and render below those other layers.

| +| **New** |

Creates a new layer in the active document. It will end up directly above the selected layer, or otherwise at the base of the folder structure.

| +| **Group** |

Creates a new folder in place of the selected layer(s), then moves them into that folder.

| +| **Ungroup** |

Removes the selected folder(s), moving their contents up one level in the layer stack.

| +| **Hide/Show** |

Toggles visibility of the selected layer(s), including or excluding them from rendering as part of the artwork.

| +| **Lock/Unlock** |

Toggles the locked state of the selected layer(s), preventing them from being selected by tools in the viewport.

| +| **Grab** |

Begin grabbing the selected layer(s) to translate (move) them around with your cursor's movement. Lock to an axis with X or Y then use the number keys to type a pixel distance value. Confirm with a left click or Enter. Cancel with a right click or Esc.

| +| **Rotate** |

Begin rotating the selected layer(s) around their pivot point with your cursor's movement. Use the number keys to type an angle value in degrees. Confirm with a left click or Enter. Cancel with a right click or Esc.

| +| **Scale** |

Begin scaling the selected layer(s) around their pivot point with your cursor's movement. Lock to an axis with X or Y. Use the number keys to type a scale multiplier value. Confirm with a left click or Enter. Cancel with a right click or Esc.

| +| **Arrange >
Raise to Front** |

Reorders the selected layer(s) above all others within their same folder(s), so they appear in the layer stack and render above those other layers.

| +| **Arrange >
Raise** |

Reorders the selected layers(s) up by one in the layer stack, so any layer that was immediately above the selected layer(s) ends up immediately below.

| +| **Arrange >
Lower** |

Reorders the selected layers(s) down by one in the layer stack, so any layer that was immediately below the selected layer(s) ends up immediately above.

| +| **Arrange >
Lower to Back** |

Reorders the selected layer(s) below all others within their same folder(s), so they appear in the layer stack and render below those other layers.

| +| **Arrange >
Reverse** |

Reorders the selected layers by swapping their positions from top to bottom. Reversal applies amongst each set of selected sibling layers (those with a shared parent).

| +| **Align >
Align Left** |

Moves the selected layer(s) so their left edges line up with the leftmost edge of the selection's bounding box.

| +| **Align >
Align Horizontal Center** |

Moves the selected layer(s) so their horizontal centers line up with the horizontal center of the selection's bounding box.

| +| **Align >
Align Right** |

Moves the selected layer(s) so their right edges line up with the rightmost edge of the selection's bounding box.

| +| **Align >
Align Top** |

Moves the selected layer(s) so their top edges line up with the topmost edge of the selection's bounding box.

| +| **Align >
Align Vertical Center** |

Moves the selected layer(s) so their vertical centers line up with the vertical center of the selection's bounding box.

| +| **Align >
Align Bottom** |

Moves the selected layer(s) so their bottom edges line up with the bottommost edge of the selection's bounding box.

| +| **Flip >
Flip Horizontal** |

Reflects the selected layer(s) horizontally within the selection's bounding box.

| +| **Flip >
Flip Vertical** |

Reflects the selected layer(s) vertically within the selection's bounding box.

| +| **Turn >
Turn -90ยฐ** |

Rotates the selected layer(s) a quarter turn counterclockwise about the selection's bounding box center.

| +| **Turn >
Turn 90ยฐ** |

Rotates the selected layer(s) a quarter turn clockwise about the selection's bounding box center.

| +| **Boolean >
Union** |

Combines all paths of the selected vector layer(s) while cutting out overlapping areas (even the interiors of a single path) +| **Boolean >
Subtract Front** |

Cuts overlapping areas out from the last of the selected vector layers.

| +| **Boolean >
Subtract Back** |

Cuts overlapping areas out from the first of the selected vector layers.

| +| **Boolean >
Intersect** |

Cuts away all but the overlapping areas shared by every path of the selected vector layer(s).

| +| **Boolean >
Difference** |

Cuts away the overlapping areas shared by every path of the selected vector layer(s), leaving only the non-overlapping areas.

| +| **Make Path Editable** |

Applies a path edit operation (the **Path node**) to the selected vector layer, capturing the geometry after other nondestructive operations to enable its direct modification by the **Path** and **Pen** tools.

| -## Document +### Select -

The Document menu

- -The **Document menu** lists actions related to the document and artwork: +The **Select menu** lists actions related to the selection of layers within a document: | | | |-|-| -| Clear Artboards |

Removes all artboards from the document, resulting in an infinite canvas.

| +| **Select All** |

Selects all layers and folders in the document.

| +| **Deselect All** |

Deselects everything in the document.

| +| **Select Parent** |

Selects the parent folder(s) of the currently selected layer(s).

| +| **Previous Selection** |

Goes back to the previously selected set of layers or nodes in the selection history.

If the side of your mouse has navigation buttons, you can use the back button as a shortcut (not supported in Firefox).

| +| **Next Selection** |

Goes forward to the next selected set of layers or nodes in the selection history.

If the side of your mouse has navigation buttons, you can use the forward button as a shortcut (not supported in Firefox).

| -## View - -

The View menu

+### View The **View menu** lists actions related to the view of the canvas within the viewport: | | | |-|-| -| Tilt |

Begins tilting the viewport angle based on your mouse movements.

While tilting, hold Shift to snap to 15ยฐ increments. Confirm with a left click or Enter. Cancel with a right click or Esc.

| -| Reset Tilt |

Sets the viewport tilt angle back to 0ยฐ.

| -| Zoom In |

Narrows the view to the next whole zoom increment, such as:

25%, 33.33%, 40%, 50%, 66.67%, 80%, 100%, 125%, 160%, 200%, 250%, 320%, 400%, 500%

| -| Zoom Out |

Widens the view to the next whole zoom increment, such as above.

| -| Zoom to Selection |

Zooms and frames the viewport to the bounding box of the selected layer(s).

| -| Zoom to Fit |

Zooms and frames the viewport to fit all artboards, or all artwork if using infinite canvas.

| -| Zoom to 100% |

Zooms the viewport in or out to 100% scale, making the document and viewport scales match 1:1.

| -| Zoom to 200% |

Zooms the viewport in or out to 200% scale, displaying the artwork at twice the actual size.

| -| Flip |

Mirrors the viewport horizontally, flipping the view of the artwork until deactivated.

| -| Rulers |

Toggles visibility of the rulers along the top/left edges of the viewport.

| +| **Tilt** |

Begins tilting the viewport angle based on your mouse movements.

While tilting, hold Shift to snap to 15ยฐ increments. Confirm with a left click or Enter. Cancel with a right click or Esc.

| +| **Reset Tilt** |

Sets the viewport tilt angle back to 0ยฐ.

| +| **Zoom In** |

Narrows the view to the next whole zoom increment, such as:

25%, 33.33%, 40%, 50%, 66.67%, 80%, 100%, 125%, 160%, 200%, 250%, 320%, 400%, 500%

| +| **Zoom Out** |

Widens the view to the next whole zoom increment, such as above.

| +| **Zoom to Selection** |

Zooms and frames the viewport to the bounding box of the selected layer(s).

| +| **Zoom to Fit** |

Zooms and frames the viewport to fit all artboards, or all artwork if using infinite canvas.

| +| **Zoom to 100%** |

Zooms the viewport in or out to 100% scale, making the document and viewport scales match 1:1.

| +| **Zoom to 200%** |

Zooms the viewport in or out to 200% scale, displaying the artwork at twice the actual size.

| +| **Flip** |

Mirrors the viewport horizontally, flipping the view of the artwork until deactivated.

| +| **Rulers** |

Toggles visibility of the rulers along the top/left edges of the viewport.

| -## Help +### Window -

The Help menu

+The **Window menu** lists actions related to the visibility of workspace panels within the application window: + +| | | +|-|-| +| **Properties** |

Toggles visibility of the **Properties panel** on the upper-right side of the workspace. It is used to inspect and edit the values of graphics operation (node) parameters. Selected layers or nodes display their parametric controls in this panel.

| +| **Layers** |

Toggles visibility of the **Layers panel** on the lower-right side of the workspace. It is used to organize and select the artboards and layers that form the structure of a document.

| +| **Data** |

Toggles visibility of the **Data panel** on the lower-left side of the workspace. It is used to introspect data flow from the output of a selected node for technical debugging of content generated within the node graph.

| + +### Help The **Help menu** lists actions related to information about Graphite: | | | |-|-| -| About Graphiteโ€ฆ |

Opens the **About Graphite** dialog for displaying release and license information. You can check it for the release date of the current editor version.

| -| User Manual |

Opens this [user manual](./learn).

| -| Report a Bug |

Opens a page to file a [new GitHub issue](https://github.com/GraphiteEditor/Graphite/issues/new).

| -| Visit on GitHub |

Opens the [Graphite GitHub repository](https://github.com/GraphiteEditor/Graphite).

| -| *Debug section* |

Developer-only actions. Users should ignore these.

| +| **About Graphiteโ€ฆ** |

Opens the **About Graphite** dialog for displaying release and license information. You can check it for the release date of the current editor version.

| +| **User Manual** |

Opens this [user manual](./learn).

| +| **Donate to Graphite** |

Opens the Graphite [development fund](/donate) page where you can contribute financially to support ongoing development of the project.

| +| **Report a Bug** |

Opens a page to file a [new GitHub issue](https://github.com/GraphiteEditor/Graphite/issues/new).

| +| **Visit on GitHub** |

Opens the [Graphite GitHub repository](https://github.com/GraphiteEditor/Graphite).

| +| **Developer Debug** |

A section with developer-only actions. Users should ignore these.

| diff --git a/website/content/learn/introduction/_index.md b/website/content/learn/introduction/_index.md index a4c8d41b3..451ad2ec5 100644 --- a/website/content/learn/introduction/_index.md +++ b/website/content/learn/introduction/_index.md @@ -22,7 +22,7 @@ One is available now, and more will be released on a regular basis throughout ea
- Graphite Tutorial 1 - Hands-On Quickstart + Vector Art Quickstart - Graphite, the Open Source 2D Graphics Suite
### Video 2 diff --git a/website/content/learn/introduction/features-and-limitations.md b/website/content/learn/introduction/features-and-limitations.md index ee2accdb1..b76da68c7 100644 --- a/website/content/learn/introduction/features-and-limitations.md +++ b/website/content/learn/introduction/features-and-limitations.md @@ -13,74 +13,42 @@ A lot is planned on the future [roadmap](/features#roadmap), but here's an overv ### Vector illustration and graphic design -| | | -|-|-| -|

Vector editing is the core competency of the Graphite editor at this stage in its development. That means you can create shape-based vector artwork and designs with the available tools.

Primitive geometry like rectangles and ellipses can be drawn and, as desired, modified into more complex shapes using the Path tool. Fully organic shapes may also be created from scratch with the Pen tool. They can then be given colors and gradients to add visual style. This cactus is an example of the style of artwork you can create with vector graphics.

| Example vector artwork of a potted cactus | +Example vector artwork of a potted cactus + +Vector editing is the core competency of the Graphite editor at this stage in its development. That means you can create shape-based vector artwork and designs with the available tools.

Primitive geometry like rectangles and ellipses can be drawn and, as desired, modified into more complex shapes using the Path tool. Fully organic shapes may also be created from scratch with the Pen tool. They can then be given colors and gradients to add visual style. This cactus is an example of the style of artwork you can create with vector graphics. ### Procedural design A procedural content generation workflow lets you describe *how* a creative decision becomes a visual outcome rather than doing it all yourself. For example, copying a shape 25 times around the inside of a circle would be tedious work if done by hand but it's easy for the computer to do it. And if you decide 10 instances may look better than 25, or you want to change the copied shape, or you opt for a different radial separation, it's easy to just update a numerical parameter. That saves you from laboriously placing every shape all over again. You're able to build a *procedure* that the computer carries out on your behalf. -The aforementioned example takes the form of the Circular Repeat node which is represented as this box-shaped entity with colored *connectors* on either end. *Nodes* encode certain operations (or functions) in the procedure that generates your artwork. Once you've drawn some content, you can see the nodes which generate it by opening the *node graph* with the 'Node Graph' button button located to the top right of the viewport. This example may have a node setup which looks like this: +The aforementioned example takes the form of the Circular Repeat node which is represented as this box-shaped entity with colored *connectors* on either end. *Nodes* encode certain operations (or functions) in the procedure that generates your artwork. Once you've drawn some content, you can see the nodes which generate it by opening the *node graph* with the 'Node Graph' button button located to the top right of the viewport. This example may have a node setup which looks like this: -

Path node, Fill node, Circular Repeat node in a sequence feeding into the Untitled Layer

+

Path node, Fill node, Circular Repeat node in a sequence feeding into the Untitled Layer

-Starting from the left, the Path node generates some geometry (in this case, drawn using the *Pen* tool). Next, the vector path data feeds through the Fill node to apply a blue color. At this point, the path data looks like so: +Starting from the left, the Path node generates some geometry (in this case, drawn using the *Pen* tool). Next, the vector path data feeds through the Fill node to apply a blue color. At this point, the path data looks like so: -

+

-Next, that is fed into the Circular Repeat node which has several parameters you can modify and get different output data based on your choices, like in these examples: +Next, that is fed into the Circular Repeat node which has several parameters you can modify and get different output data based on your choices, like in these examples: | | | -|-|-| -| | | -| | | -| | | -| | | +|:-:|:-:| +| | | +| | | +| | | +| | | + The node's properties offer controls over settings like *Angle Offset* (what angle to start at), *Radius* (distance from the center), and *Instances* (how many copies to distribute). These parameters can also be exposed into the graph so they are driven by the calculated numerical outputs of other nodes instead of values you pick by hand. ### Raster compositing Raster image editing is a growing capability that will develop over time into the central focus of Graphite. Raster imagery is composed of pixels which are grids of color that can represent anything visual, like paintings and photographs. The current feature set lets you import images, manipulate them using the node-based compositor, and apply nondestructive global effects like color adjustment filters. -A prototype Brush tool exists letting you draw simple doodles and sketches. However it is very limited in its capabilities and there are multiple bugs and performance issues with the feature. It can be used in a basic capacity, but don't expect to paint anything too impressive using raster brushes quite yet. The tool will be fully rewritten in the future. - -## Status and limitations - -Please make yourself aware of these factors to better understand and work around the rough edges in today's Graphite editor. - -### Evolving document format - -Saved documents will eventually fail to render in future versions of the Graphite editor because of code changes. Since node implementations and other systems are in flux, file format stability isn't possible yet during this alpha stage of development. If a file opens but there's a rendering error, you may need to open the node graph and replace outdated nodes by creating new ones near the site of an error. Later in the development roadmap, a redesigned file format with a `.gdd` (Graphite Design Document) extension will replace `.graphite` files and it will be built with seamless backwards-compatability in mind. - -### Limited raster tooling - -While you can import bitmap images, apply image effects in the node graph, and draw brush strokes, there is not much tooling yet to make the overall raster workflow that useful. Marquee selection is an upcoming feature slated for later in 2025 which will significantly improve the utility of raster editing in Graphite. - -Hardware accelerated rendering, to offload pixel processing from the CPU to GPU, is also planned for 2025. It will drastically improve the performance of working with millions of pixels. - -### Performance bottlenecks - -Graphite has several temporary performance bottlenecks that currently yield poor responsiveness when working with raster content, complex vector artwork, and large procedural node graphs. This is especially impactful for raster content. It also currently applies to large volumes of vector data, such as paragraphs worth of text (which is represented as vector paths). - -Each of these limitations will be resolved by finishing the implementations of incomplete systems that impose slowdowns in their current forms. For example, certain opportunities for node graph caching are not operational and GPU-accelerated rendering isn't enabled yet. - -Performance will be a high-priority focus throughout 2025. - -### Best-effort Safari support - -Old versions of Safari lack support for the web standards Graphite is built upon. The latest version of the browser still won't run Graphite as well as Chrome and you may encounter extra bugs because we have limited resources to regularly test for Safari issues. Feel free to file issues only if you're using the latest Safari version and find a bug that isn't present in Chrome. - -The latest Chrome, Edge, or Opera browser is recommended for the best-supported experience. Firefox works reasonably well, with only some minor loss of quality-of-life features. Brave is likely to encounter issues due to its aggressive degradation of web standards. +A prototype Brush tool exists letting you draw simple doodles and sketches. However it is very limited in its capabilities and there are multiple bugs and performance issues with the feature. It can be used in a basic capacity, but don't expect to paint anything too impressive using raster brushes quite yet. The tool will be fully rewritten in the future. diff --git a/website/content/license.md b/website/content/license.md index 98043dd0a..b5333a086 100644 --- a/website/content/license.md +++ b/website/content/license.md @@ -12,11 +12,11 @@ css = ["/layout/reading-material.css"]
-Graphite is open source software built by the community. The application is free to use by anyone for any purpose, even commercially. The artwork you produce is solely yours. +Graphite is open source software made by its community and distributed by *Graphite Labs, LLC*, the official [organization](/about#organization) that operates the project. Builds of the application are free to use by anyone for any purpose, even commercially. The artwork you produce is solely yours. -The source code [available on GitHub](https://github.com/GraphiteEditor/Graphite) (including the Graphite editor application, libraries, and other software materials) is provided under the Apache 2.0 license posted below, unless otherwise noted within the repository. +## Source code -Visual assets, including but not limited to brand graphics, logos, fonts, icon sets, SVG data, and sample artworks are excluded from this code license and held under copyright by their respective owners. Derivative works must substitute these assets before distributing modified releases of the software. This protects the integrity of the [brand](/logo) and encourages the community to [contribute](/volunteer) back to the official project instead of fragmenting the ecosystem. +The source code [available on GitHub](https://github.com/GraphiteEditor/Graphite) (including the Graphite editor application, libraries, and other software materials) is shared under the Apache License 2.0 posted below, unless otherwise noted within the repository. --- @@ -197,6 +197,28 @@ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION END OF TERMS AND CONDITIONS +## Branding + +Assets that contribute to the visual identity of the Graphite brand and software (including [logos](/logo) and icon sets) are not considered software code, and are licensed separately from the [source code license](#source-code) described above. These are kept in a [separate repository](https://github.com/Keavon/graphite-branded-assets/) because they are designed independently and are not within scope of the open source project. + +Official builds of Graphite may be compiled and redistributed freely under the terms of the Graphite Branding License, but derivative works (i.e. forks) must substitute these assets before distributing modified releases of the software. This protects the integrity of the brand and encourages developers to [contribute](/volunteer) back in support of the official community-based project instead of fragmenting the ecosystem with lookalikes. + +--- + +Graphite Branding License + +Copyright (c) 2021-2025 Graphite Labs, LLC. All rights reserved. + +This repository includes proprietary assets (the "Assets"), including but not limited to logos, icons, and branding materials. The Assets are not software source code and are consequently not licensed under the same terms as the other works of Graphite software materials. The intention of this license is to maintain the full permissiveness of the software code while reserving protections for the brand and visual identity of the official Graphite product. + +Permission is granted to use, reproduce, and distribute the Assets solely as part of unmodified build artifacts produced from the official Graphite repository at https://github.com/GraphiteEditor/Graphite, on master branch commits, using the official build process as documented therein. Any other use of the Assetsโ€”including copying, extraction, incorporation into modified or forked builds, or use in other projects or contextsโ€”is prohibited without prior written permission from the copyright holder. + +This license does not grant any rights under trademark law or affect the licensing of the software source code. + +THE ASSETS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY ARISING FROM THE USE OF THE ASSETS. + +This license is automatically terminated if the terms herein are violated. +
diff --git a/website/content/logo.md b/website/content/logo.md index c4ab5698d..6c34c4455 100644 --- a/website/content/logo.md +++ b/website/content/logo.md @@ -20,20 +20,23 @@ The hexagon represents one unit in the lattice grid chemical structure of graphe ## Usage policy -The Graphite logo is made available for community use, with some limitations. While the software is free and open source, the brand identity is more restrictive. Please be respectful of the Graphite brand by reviewing the usage policy. +The Graphite logo is made available for community use, with some limitations. While the software is free and open source, the brand identity is more restrictive. Please be respectful of the Graphite brand by reviewing this usage policy. -Please be advised that the logo is not part of the software's Apache 2.0 [license](/license). Users of the logo must adhere to the usage policy: +Be aware that the logo is not covered under the [Apache License 2.0](/license#source-code) of Graphite's source code. Its usage within Graphite software distributions is covered by the [Graphite Branding License](/license#branding). -1. Do not use the Graphite logo as your own. It should not be used as your primary, or most visually prominent, branding. Your usage should not imply that it's a part of the official Graphite project, nor that it's endorsed or affiliated. -2. Only use the logo when talking about, describing, referencing, or crediting the official Graphite project or software. If used as a hyperlink, it should point only to . -3. Do not modify the logo. The solid-colored version may only be recolored with another substitute solid color if doing so is necessary for visual consistency when presented alongside other logos of the same color. Sufficient blank space should be preserved around the logo so it does not compete with impinging design elements. -4. Commercial use of the logo (for example, merchandise sales) is not allowed without express written permission. +Outside the context of the Graphite application (or derivatives), community usage of the logo must adhere to the usage policy: + +1. Do not use the Graphite logo as your own. It should not be used as your primaryโ€”or most visually prominentโ€”branding, and may never be incorporated into your own logo. Your usage should not imply that it's a part of the official Graphite project, nor that it's endorsed or affiliated. +2. Your (product, service, website, company, channel, etc.) brand name should not begin with "Graphite", or use it as the most prominent word in the name. It may only be used as a secondary or descriptive word that comes after your own unique name. For example: "XYZ for Graphite" is acceptable, but "Graphite XYZ" is not since it implies affiliation. +3. Only use the logo when talking about, describing, referencing, or crediting the official Graphite project or software. If used as a hyperlink, it should point only to . +4. Do not modify the logo. The solid-colored version may only be recolored with another substitute solid color if doing so is necessary for visual consistency when presented alongside other logos of the same color. Sufficient blank space should be preserved around the logo so it does not overlap or compete with impinging design elements. +5. Commercial use of the logo (for example, merchandise sales) is not allowed without express written permission. If in doubt, please get in touch by email to request clarification or permission. ## Download -Download the complete [logo kit](https://static.graphite.rs/logos/graphite-logo-kit.zip) or a specific version in PNG or SVG format below. +Download the complete [logo kit](https://static.graphite.art/logos/graphite-logo-kit.zip) or a specific version in PNG or SVG format below. @@ -43,18 +46,18 @@ Download the complete [logo kit](https://static.graphite.rs/logos/graphite-logo-
@@ -62,18 +65,18 @@ Download the complete [logo kit](https://static.graphite.rs/logos/graphite-logo-
@@ -81,18 +84,18 @@ Download the complete [logo kit](https://static.graphite.rs/logos/graphite-logo-
diff --git a/website/content/press.md b/website/content/press.md index 614c6da59..079caf33c 100644 --- a/website/content/press.md +++ b/website/content/press.md @@ -18,7 +18,7 @@ Materials for journalists and creators looking to share Graphite with their audi Please get in touch if you'd like to conduct an interview or have questions answered. -Send an email to [contact@graphite.rs](mailto:contact@graphite.rs) and you can usually expect a quick reply. +Send an email to [contact@graphite.art](mailto:contact@graphite.art) and you can usually expect a quick reply. ## Logo diff --git a/website/content/volunteer/_index.md b/website/content/volunteer/_index.md index 766db78fe..19e5d989a 100644 --- a/website/content/volunteer/_index.md +++ b/website/content/volunteer/_index.md @@ -22,7 +22,7 @@ css = ["/page/volunteer.css", "/component/feature-box.css"]
- Flavor graphic depicting a library of knowledge in a digital realm + Flavor graphic depicting a library of knowledge in a digital realm Get started by reading the contributor guide: @@ -58,12 +58,12 @@ The Graphite editor is built much like a game engine, split across user interfac
-Flavor graphic depicting a fountain pen, ink pots, and a book +Flavor graphic depicting a fountain pen, ink pots, and a book Assign yourself the *"๐Ÿ™Œ Interested in helping with art or marketing"* role in the *#welcome* Discord channel. Then mention your experience and how you'd like to help in the *#introductions* channel. -Volunteer on Discord +Volunteer on Discord
@@ -94,11 +94,11 @@ Help write, edit, and design content for this website, social media, newsletters
-Flavor graphic depicting a magnifying glass on the search for a software bug +Flavor graphic depicting a magnifying glass on the search for a software bug Assign yourself the *"๐Ÿ’ Volunteer to get pinged regularly for QA testing"* or *"๐Ÿค– Interested in contributing code"* roles in the *#welcome* Discord channel. In the latter case, drop by the *#development* channel to get advice writing your first node. -Volunteer on Discord +Volunteer on Discord
diff --git a/website/content/volunteer/guide/_index.md b/website/content/volunteer/guide/_index.md index a3d1518f5..45e0e5c3e 100644 --- a/website/content/volunteer/guide/_index.md +++ b/website/content/volunteer/guide/_index.md @@ -10,8 +10,8 @@ book = true Welcome, potential contributor! We're excited to have you join the Graphite project and it's our goal to make the process as smooth as possible. This guide will serve as your library of knowledge to help you get started contributing to the project. If you find any information missing or unclear, please let us know through Discord or submit a pull request to help document the process for future contributors. -The next page will cover how to compile the Graphite source code. But first, make sure you've joined our [Discord server](https://discord.graphite.rs) and assigned yourself the *"๐Ÿค– Interested in contributing code"* role from the `#๐Ÿ™‚welcome` channel. Done that? Alright, proceed! +The next page will cover how to compile the Graphite source code. But first, make sure you've joined our [Discord server](https://discord.graphite.art) and assigned yourself the *"๐Ÿค– Interested in contributing code"* role from the `#๐Ÿ™‚welcome` channel. Done that? Alright, proceed!

-Flavor graphic depicting a library of knowledge in a digital realm +Flavor graphic depicting a library of knowledge in a digital realm

diff --git a/website/content/volunteer/guide/codebase-overview/_index.md b/website/content/volunteer/guide/codebase-overview/_index.md index 0316f447e..9938a6665 100644 --- a/website/content/volunteer/guide/codebase-overview/_index.md +++ b/website/content/volunteer/guide/codebase-overview/_index.md @@ -12,7 +12,7 @@ css = ["/component/youtube-embed.css"] The best introduction for getting up-to-speed with Graphite contribution comes from watching this webcast recording. Before asking questions in Discord, please watch the full video because it gives a comprehensive overview of most things you will need to know.
- Workshop: Intro to Coding for Graphite + Workshop: Intro to Coding for Graphite
## Codebase structure diff --git a/website/content/volunteer/guide/codebase-overview/debugging-tips.md b/website/content/volunteer/guide/codebase-overview/debugging-tips.md index 581f9ea15..e6a8c8610 100644 --- a/website/content/volunteer/guide/codebase-overview/debugging-tips.md +++ b/website/content/volunteer/guide/codebase-overview/debugging-tips.md @@ -9,7 +9,7 @@ The Wasm-based editor has some unique limitations about how you are able to debu ## Comparing with deployed builds -When tracking down a bug, first check if the issue you are noticing also exists in `master` or just your branch. Open up [dev.graphite.rs](https://dev.graphite.rs) which always deploys the lastest commit, compared to [editor.graphite.rs](https://editor.graphite.rs) which is manually deployed from time to time for the sake of stability. +When tracking down a bug, first check if the issue you are noticing also exists in `master` or just your branch. Open up [dev.graphite.art](https://dev.graphite.art) which always deploys the lastest commit, compared to [editor.graphite.art](https://editor.graphite.art) which is manually deployed from time to time for the sake of stability. Use *Help* > *About Graphite* in the editor to view any build's Git commit hash. diff --git a/website/content/volunteer/guide/graphene/_index.md b/website/content/volunteer/guide/graphene/_index.md index 738b3431e..5667bf35a 100644 --- a/website/content/volunteer/guide/graphene/_index.md +++ b/website/content/volunteer/guide/graphene/_index.md @@ -46,11 +46,11 @@ This sliding scale of latency/performance concerns maps directly to programming We designed Graphene to operate in all three regimes: -| Regime | Usage | -|:------------|:----------------------------------------------------------------------| +| Regime | Usage | +|-|-| | Interpreted | While editing. Simple and currently the only mode that's implemented. | -| JIT | While editing. Dynamically bridges the gap between both other regimes by selectively substituting branches of the graph with interpreted and compiled nodes to keep latency low and work towards higher execution performance. | -| Compiled | When exported. The entire graph is compiled as a standalone program. | +| JIT | While editing. Dynamically bridges the gap between both other regimes by selectively substituting branches of the graph with interpreted and compiled nodes to keep latency low and work towards higher execution performance. | +| Compiled | When exported. The entire graph is compiled as a standalone program. | ### Building upon the Rust compiler @@ -89,7 +89,6 @@ Since Graphene is fundamentally a programming language, throughout this document - FONTS ARE NOT INSTALLED! Before running Zola, execute `npm run install-fonts` from the `/website` directory.") }} + {{ throw(message = "------------------------------------------------------------> FONTS ARE NOT INSTALLED! Before running Zola, execute `npm install` from the `/website` directory.") }} {%- endif -%} {#- RETRIEVE FROM TEMPLATES AND PAGES: CSS AND JS TO LOAD EITHER AS A LINK OR INLINE -#} @@ -103,7 +103,7 @@
@@ -113,7 +113,7 @@ Blog Volunteer Donate - Launch + Launch
@@ -140,7 +140,7 @@ Press Contact - Copyright © {{ now() | date(format = "%Y") }} Graphite Labs, LLC (an open source organization) + Copyright © {{ now() | date(format = "%Y") }} Graphite Labs, LLC (an open source community organization)
diff --git a/website/templates/macros/replacements.html b/website/templates/macros/replacements.html index 619dc29d7..f34f76ca8 100644 --- a/website/templates/macros/replacements.html +++ b/website/templates/macros/replacements.html @@ -40,16 +40,12 @@ {% endmacro text_balancer %} {% macro hierarchical_message_system_tree() %} -{%- set content = load_data(path = "other/editor-structure/replacement.html", format = "plain", required = false) -%} +{%- set content = load_data(path = "../../hierarchical_message_system_tree.html", format = "plain", required = false) -%} {%- set fallback = "
THIS CONTENT IS FILLED IN WHEN CI BUILDS THE WEBSITE.
 
-TO TEST IT LOCALLY, RUN:
-
-cd website/other/editor-structure
-
-AND THEN:
+TO TEST IT LOCALLY, FROM THE `website` DIRECTORY, RUN:
 
 cargo test --package graphite-editor --lib -- messages::message::test::generate_message_tree
-node generate.js ../../../hierarchical_message_system_tree.txt replacement.html
" -%} +npm run generate-editor-structure" -%} {{ content | default(value = fallback) | safe }} {% endmacro hierarchical_message_system_tree %} diff --git a/website/other/bezier-rs-demos/tsconfig.json b/website/tsconfig.json similarity index 50% rename from website/other/bezier-rs-demos/tsconfig.json rename to website/tsconfig.json index 4d4d94dd7..b21f8c12e 100644 --- a/website/other/bezier-rs-demos/tsconfig.json +++ b/website/tsconfig.json @@ -2,25 +2,42 @@ "compilerOptions": { "target": "ESNext", "module": "ESNext", - "strict": true, - "importHelpers": true, "moduleResolution": "node", + "strict": true, + "allowJs": true, + "checkJs": true, + "noEmit": true, + "importHelpers": true, "experimentalDecorators": true, "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, + "verbatimModuleSyntax": true, "sourceMap": true, + "types": ["node"], "baseUrl": ".", "paths": { - "@/*": ["src/*"] + "/*": ["./*"] }, "lib": ["ESNext", "DOM", "DOM.Iterable", "ScriptHost"] }, - "include": ["src/**/*.ts", "src/**/*.d.ts", "*.ts", "*.js", "*.cjs"], - "exclude": ["node_modules"], + "include": [ + // TypeScript and JSDoc-typed JavaScript files + "**/*.ts", + "**/*.js", + // Also include build scripts, which aren't included above because of the dot-prefixed directory + ".build-scripts/**/*.ts", + ".build-scripts/**/*.js" + ], + "exclude": [ + // Ignore generated directories + "node_modules", + "public", + // Ignore vendored code + "static/*.js" + ], "ts-node": { "compilerOptions": { - "module": "commonjs", "useDefineForClassFields": false, "noImplicitOverride": true }